{"id":29422129,"url":"https://github.com/browsemake/browser-cli","last_synced_at":"2026-06-07T05:01:48.412Z","repository":{"id":302349409,"uuid":"1012122505","full_name":"browsemake/browser-cli","owner":"browsemake","description":"AI agent browser automation tool that just works","archived":false,"fork":false,"pushed_at":"2026-04-12T02:31:32.000Z","size":85,"stargazers_count":78,"open_issues_count":2,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-12T04:24:17.382Z","etag":null,"topics":["ai","ai-agents","browser-automation","cli","command-line-tool","llm","playwright"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/browsemake.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-01T21:08:55.000Z","updated_at":"2026-04-09T12:23:02.000Z","dependencies_parsed_at":"2025-07-22T03:06:54.457Z","dependency_job_id":"19475c4a-1a50-4b77-b4a3-8630914428ce","html_url":"https://github.com/browsemake/browser-cli","commit_stats":null,"previous_names":["halfjuice/br-cli","browsemake/br-cli","browsemake/browser-cli"],"tags_count":193,"template":false,"template_full_name":null,"purl":"pkg:github/browsemake/browser-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browsemake%2Fbrowser-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browsemake%2Fbrowser-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browsemake%2Fbrowser-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browsemake%2Fbrowser-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/browsemake","download_url":"https://codeload.github.com/browsemake/browser-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browsemake%2Fbrowser-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34009201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"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":["ai","ai-agents","browser-automation","cli","command-line-tool","llm","playwright"],"created_at":"2025-07-12T04:02:07.523Z","updated_at":"2026-06-07T05:01:48.393Z","avatar_url":"https://github.com/browsemake.png","language":"JavaScript","funding_links":[],"categories":["\u003ca name=\"ai\"\u003e\u003c/a\u003eAI / ChatGPT"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"full\" src=\"https://github.com/user-attachments/assets/ac1cd9e3-f811-4af7-9338-7d6d0c80fcd7\" /\u003e\n\u003c/p\u003e\n\n\n\u003ch1 align=\"center\"\u003eBrowser CLI \u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \n  [![Discord](https://img.shields.io/discord/1391101800052035714?color=7289DA\u0026label=Discord\u0026logo=discord\u0026logoColor=white)](https://discord.gg/N7crMvEX)\n  [![Twitter Follow](https://img.shields.io/twitter/follow/browse_make?style=social)](https://x.com/intent/user?screen_name=browse_make)\n  \n\u003c/div\u003e\n\n`br` is a command line tool used by any capable LLM agent, like ChatGPT, [Claude Code](https://github.com/anthropics/claude-code) or [Gemini CLI](https://github.com/google-gemini/gemini-cli).\n\nhttps://www.npmjs.com/package/@browsemake/browser-cli\n\n## Why Broswer CLI?\n- **Just works**: simply browser automation, coding not required, leave the rest workflow to the most powerful LLM agent\n- **AI first**: designed for LLM agent, readable view from HTML, and error hint\n- **Secure**: can be run locally, no credential passed to LLM \n- **Robust**: browser persisted progress across session, and track history action for replay\n\n## Install\n```bash\nnpm install -g @browsemake/browser-cli\n```\n\n## Usage\nType instruction to AI agent (Gemini CLI / Claude Code / ChatGPT):\n\n```\n\u003e You have browser automation tool 'br', use it to go to amazon to buy me a basketball\n```\n\nUse command line directly by human:\n\n```bash\nbr start\nbr goto https://github.com/\n```\n\n## Demos\n\nGrocery (Go to Amazon and buy me a basketball)\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://www.loom.com/share/b7aeba65bb0b4c4bb5bbef9b59b4b9dc\"\u003e\n      \u003cimg style=\"max-width:300px;\" src=\"https://github.com/user-attachments/assets/3cd46b9a-6ef9-4987-a952-fcd22890334c\"\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\nNavigate to GitHub repo:\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://www.loom.com/share/0ef198e259864ae08afa9ae9f78acfac\"\u003e\n      \u003cimg style=\"max-width:300px;\" src=\"https://cdn.loom.com/sessions/thumbnails/0ef198e259864ae08afa9ae9f78acfac-3e42df07f2040874-full-play.gif\"\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n\nPrint invoice\n\nDownload bank account statement\n\nSearch for job posting\n\n## Features\n- **Browser Action**: Comprehensive action for browser automation (navigation, click, etc.)\n- **LLM friendly output**: LLM friendly command output with error correction hint\n- **Daemon mode**: Always-on daemon mode so it lives across multiple LLM sessions\n- **Structured web page view**: Accessibility tree view for easier LLM interpretation than HTML\n- **Secret management**: Secret management to isolate password from LLM\n- **History tracking**: History tracking for replay and scripting\n\n## Command\n\n### Start the daemon\n```bash\nbr start\n```\nIf starting the daemon fails (for example due to missing Playwright browsers),\nthe CLI prints the error output so you can diagnose the issue.\n\n### Navigate to a URL\n```bash\nbr goto https://example.com\n```\n\n### Click an element\n\n```bash\nbr click \"button.submit\"\n```\n\nCommands that accept a CSS selector (like `click`, `fill`, `scrollIntoView`, `type`) can also accept a numeric ID. These IDs are displayed in the output of `br view-tree` and allow for direct interaction with elements identified in the tree.\n\n### Scroll element into view\n\n```bash\nbr scrollIntoView \"#footer\"\n```\n\n### Scroll to percentage of page\n\n```bash\nbr scrollTo 50\n```\n\n### Fill an input field\n\n```bash\nbr fill \"input[name='q']\" \"search text\"\n```\n\n### Fill an input field with a secret\n\n```bash\nMY_SECRET=\"top-secret\" br fill-secret \"input[name='password']\" MY_SECRET\n```\n\nWhen retrieving page HTML with `br view-html`, any text provided via\n`fill-secret` is masked to avoid exposing secrets.\n\n### Type text into an input\n\n```bash\nbr type \"input[name='q']\" \"search text\"\n```\n\n### Press a key\n\n```bash\nbr press Enter\n```\n\n### Scroll next/previous chunk\n\n```bash\nbr nextChunk\nbr prevChunk\n```\n\n### View page HTML\n\n```bash\nbr view-html\n```\n\n### View action history\n\n```bash\nbr history\n```\n\n### Clear action history\n\n```bash\nbr clear-history\n```\n\n### Capture a screenshot\n\n```bash\nbr screenshot\n```\n\n### View accessibility and DOM tree\n\n```bash\nbr view-tree\n```\n\nOutputs a hierarchical tree combining accessibility roles with DOM element\ninformation. It also builds an ID-to-XPath map for quick element lookup.\n\n### List open tabs\n\n```bash\nbr tabs\n```\n\n### Switch to a tab by index\n\n```bash\nbr switch-tab 1\n```\n\n### Stop the daemon\n\n```bash\nbr stop\n```\n\nThe daemon runs a headless Chromium browser and exposes a small HTTP API. The CLI communicates with it to perform actions like navigation and clicking elements.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrowsemake%2Fbrowser-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrowsemake%2Fbrowser-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrowsemake%2Fbrowser-cli/lists"}