{"id":25517449,"url":"https://github.com/zackiles/browser-manager","last_synced_at":"2026-04-19T14:02:51.486Z","repository":{"id":278296361,"uuid":"934335944","full_name":"zackiles/browser-manager","owner":"zackiles","description":"Simple, error-proof, cross-platform, silent, and version specific browser installer. Can be used as a depedency free CLI, or a Deno library. ","archived":false,"fork":false,"pushed_at":"2025-02-20T00:30:53.000Z","size":116,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-29T00:26:15.789Z","etag":null,"topics":["arc","brave","browser","chrome","chromium","cli","deno","edge"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zackiles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-17T16:54:48.000Z","updated_at":"2025-07-19T00:17:43.000Z","dependencies_parsed_at":"2025-05-22T08:31:52.938Z","dependency_job_id":null,"html_url":"https://github.com/zackiles/browser-manager","commit_stats":null,"previous_names":["zackiles/browser-manager"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/zackiles/browser-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackiles%2Fbrowser-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackiles%2Fbrowser-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackiles%2Fbrowser-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackiles%2Fbrowser-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zackiles","download_url":"https://codeload.github.com/zackiles/browser-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackiles%2Fbrowser-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32009239,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arc","brave","browser","chrome","chromium","cli","deno","edge"],"created_at":"2025-02-19T15:22:13.462Z","updated_at":"2026-04-19T14:02:51.481Z","avatar_url":"https://github.com/zackiles.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Browser Manager\n\nSimple, error-proof, cross-platform, silent, and version specific browser installer. Can be used as a depedency free CLI, or a Deno library. Currently supports Chrome, Chromium, Edge, Brave, and Arc browsers, and works on Linux, Mac, and Windows.\n\n## Features\n\n- 🌐 Cross-platform support (macOS, Linux, Windows)\n- 🏗️ Multiple architecture support (x86_64, arm64)\n- 🔄 Automatic version detection and installation\n- 🎯 Precise version targeting\n- 🔒 Secure downloads with checksum verification\n- 📦 Available as both a Deno/JSR library and CLI\n\n## Quick Start\n\n### As a CLI\n\nInstall the native binary:\n\n```bash\n# Using curl\ncurl -fsSL https://raw.githubusercontent.com/zackiles/browser-manager/main/install.sh | bash\n\n# Or using wget\nwget -qO- https://raw.githubusercontent.com/zackiles/browser-manager/main/install.sh | bash\n```\n\nTo remove the installed binary, run:\n\n```bash\n# Using curl\ncurl -fsSL https://raw.githubusercontent.com/zackiles/browser-manager/main/remove.sh | bash\n\n# Or using wget\nwget -qO- https://raw.githubusercontent.com/zackiles/browser-manager/main/remove.sh | bash\n```\n\nThen use the CLI:\n\n```bash\n# Basic usage\nbrowser-manager \u003cbrowser\u003e \u003ccommand\u003e [options]\n\n# Examples\nbrowser-manager chrome install                    # Install latest Chrome version\nbrowser-manager edge install --version \"120.0.6099.109\"  # Install specific Edge version\nbrowser-manager brave remove                      # Remove Brave browser\nbrowser-manager chromium getInstallationHistory   # View Chromium installation history\nbrowser-manager arc getLatestVersion             # Get latest Arc version\nbrowser-manager version                          # Display CLI version\n\n# Available commands\ninstall               # Install a browser\nremove               # Remove a browser\ngetInstallationHistory  # View installation history\ngetLatestVersion     # Get latest available version (as a string)\nversion              # Display CLI version\n\n# Options\n--version \u003cversion\u003e         # Specify version to install\n--custom-base-path \u003cpath\u003e  # Use custom installation path\n--help                     # Show help message\n--silent                   # Disable all non-error output (by default, debug logs are enabled)\n```\n\n### As a Library\n\n```typescript\nimport { chromium } from \"jsr:@browser-tools/browser-manager\"\n\n// Enable debug logs (optional)\n// By default, only errors are shown. Set this to see progress bars and debug info.\nDeno.env.set('BROWSER_MANAGER_DEBUG', '1')\n\n// Install latest version of Chromium (platform and arch auto-detected)\nawait chromium.install()\n\n// Or specify platform/arch manually if needed\nawait chromium.install({\n  platform: \"mac\",    // Optional: \"mac\" | \"linux\" | \"windows\"\n  arch: \"arm64\",      // Optional: \"arm64\" | \"x64\"\n})\n```\n\n### Browser Methods\n\nEach browser instance (`chrome`, `chromium`, `edge`, `brave`, `arc`) exposes the following methods:\n\n#### install(params?)\nInstall a specific version of the browser. Platform and architecture are automatically detected if not specified.\n\n```typescript\nimport { chrome, type BrowserParams } from \"jsr:@browser-tools/browser-manager\"\n\n// Install latest version with auto-detected platform/arch\nawait chrome.install()\n\n// Install with specific version\nawait chrome.install({\n  version: \"120.0.6099.109\"\n})\n\n// Install with all options specified\nawait chrome.install({\n  platform: \"windows\",  // Optional: auto-detected if not specified\n  arch: \"x64\",         // Optional: auto-detected if not specified\n  version: \"120.0.6099.109\", // Optional: latest version if not specified\n  customBasePath: \"/custom/install/path\"  // Optional: local temporary directory if not specified\n})\n```\n\n**Important Notes:**\n\n1. **Arc Browser Limitations**: Arc browser only supports installing the latest version. The `version` parameter is ignored for Arc installations as the browser auto-updates to the latest version.\n\n2. **Installation Methods**: Browsers are installed differently depending on the type:\n   - Chromium: Direct archive extraction to the installation path\n   - Chrome, Edge, Brave: Require running platform-specific installers\n   - Installation method is handled automatically based on the browser type\n\n3. **Version Resolution**: If a specific version isn't found, the system will attempt to find and install the closest available version (rounding up). For example, requesting version \"119.0.0\" might install \"119.0.2\" if that's the closest available version.\n\n4. **Platform \u0026 Architecture**: By default, the system automatically detects your operating system and CPU architecture. You only need to specify these if you want to install for a different platform or architecture than your current system.\n\n#### remove(params?)\nRemove an installed browser. Platform and architecture are automatically detected if not specified.\n\n```typescript\n// Remove latest installation with auto-detected platform/arch\nawait edge.remove()\n\n// Remove specific version\nawait edge.remove({\n  version: \"120.0.6099.109\"\n})\n\n// Remove with all options specified\nawait edge.remove({\n  platform: \"linux\",  // Optional: auto-detected if not specified\n  arch: \"x64\",       // Optional: auto-detected if not specified\n  version: \"120.0.6099.109\"\n})\n```\n\n#### getInstallationHistory(params?)\nGet history of all installations for a browser. Platform and architecture are automatically detected if not specified.\n\n```typescript\n// Get history for current platform/arch\nconst history = await brave.getInstallationHistory()\n\n// Get history for specific platform/arch\nconst history = await brave.getInstallationHistory({\n  platform: \"mac\",  // Optional: auto-detected if not specified\n  arch: \"arm64\"    // Optional: auto-detected if not specified\n})\n\n// Returns array of InstallationInfo:\n// [{\n//   browser: string,\n//   version: string,\n//   platform: string,\n//   arch: string,\n//   downloadUrl: string,\n//   isCustomPath: boolean,\n//   basePath: string,\n//   installDate: string\n// }]\n```\n\n#### getLatestVersion(platform?, arch?)\nGet the latest available version for a browser. Platform and architecture are automatically detected if not specified.\n\n```typescript\n// Get latest version for current platform/arch\nconst version = await arc.getLatestVersion()\n\n// Get latest version for specific platform/arch\nconst version = await arc.getLatestVersion(\"mac\", \"arm64\")\n// Returns version string, e.g. \"1.21.1\"\n```\n\n### Types\n\nThe library exports several TypeScript types for better type safety:\n\n```typescript\ntype SupportedPlatform = \"windows\" | \"mac\" | \"linux\"\ntype SupportedArch = \"x64\" | \"arm64\"\n\ninterface BrowserParams {\n  platform: string\n  version?: string\n  arch?: string\n  basePath?: string\n  installPath?: string\n  customBasePath?: string\n}\n\ninterface InstallationInfo {\n  browser: string\n  version?: string\n  platform: string\n  arch?: string\n  downloadUrl: string\n  isCustomPath: boolean\n  basePath: string\n  installDate: string\n}\n```\n\n## Supported Browsers\n\n- Chromium\n- Google Chrome\n- Microsoft Edge\n- Brave Browser\n- Arc Browser\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzackiles%2Fbrowser-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzackiles%2Fbrowser-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzackiles%2Fbrowser-manager/lists"}