{"id":51009911,"url":"https://github.com/superbereza/browser-skill","last_synced_at":"2026-06-21T01:07:40.963Z","repository":{"id":364220740,"uuid":"1263265350","full_name":"superbereza/browser-skill","owner":"superbereza","description":"Drive a real browser from a coding agent: a CLI over a persistent Playwright daemon, with compact clickable page snapshots.","archived":false,"fork":false,"pushed_at":"2026-06-12T05:24:54.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-12T07:12:58.222Z","etag":null,"topics":["ai-tools","browser-automation","claude-code","cli","playwright","skills"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/superbereza.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-08T19:35:11.000Z","updated_at":"2026-06-12T05:24:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/superbereza/browser-skill","commit_stats":null,"previous_names":["superbereza/browser-skill"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/superbereza/browser-skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superbereza%2Fbrowser-skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superbereza%2Fbrowser-skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superbereza%2Fbrowser-skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superbereza%2Fbrowser-skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/superbereza","download_url":"https://codeload.github.com/superbereza/browser-skill/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superbereza%2Fbrowser-skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34590370,"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-20T02:00:06.407Z","response_time":98,"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-tools","browser-automation","claude-code","cli","playwright","skills"],"created_at":"2026-06-21T01:07:40.364Z","updated_at":"2026-06-21T01:07:40.955Z","avatar_url":"https://github.com/superbereza.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# browser\n\nAn adaptation of Playwright into a small CLI for driving a real browser from a\ncoding agent. Same engine underneath — exposed as a handful of `browser` commands on\na persistent daemon, with opinionated defaults chosen to make agent-driven browsing\nactually pleasant.\n\nThe agent sees each page as a compact snapshot of the accessibility tree, where\nevery interactive element carries a short ref like `[ref=e7]`; it clicks and types by\nref, with a fallback ladder down to CSS selectors, coordinates, and JS. A background\ndaemon keeps one connection and the page's refs in memory, so commands share state\nwithout reconnecting — it starts on first use, stops when idle.\n\nThe browser is real and headed, on a dedicated profile you sign into once. Launch\ntargets macOS; commands work cross-platform once attached.\n\nMeant for automating browser tasks you'd otherwise do by hand.\n\n## How it works\n\nBuilt on **Patchright**, a patched Playwright fork, attached to the browser over CDP.\nThe patches keep the agent's automation traffic from tripping the CDP-level signals\nsome sites use to flag automation, so ordinary use behaves like an ordinary session.\nEverything else is plain Playwright underneath.\n\nThe pieces:\n\n- **CLI + daemon** — a thin `browser …` client talks to a background daemon holding\n  one Patchright/CDP connection, the current page, and the snapshot refs. State lives\n  in the daemon; it auto-starts on first use and auto-stops when idle.\n- **Snapshot** — Playwright's `aria_snapshot` plus `[ref=eN]` refs; click/type by\n  ref, falling back to CSS selectors, pixel coordinates, and JS.\n- **Profile** — a dedicated profile you sign into once; sessions persist across runs.\n- **Captcha** — detected deterministically; the agent works through it with the\n  vision tools or hands it to you, with an optional solver you can wire up.\n\n## Install\n\nThis repo is its own marketplace:\n\n```text\n/plugin marketplace add superbereza/browser-skill\n/plugin install browser@browser-skill\n```\n\nThe first `browser` call bootstraps a venv (Python \u003e=3.10) and installs deps; `browser launch`\nstarts a dedicated-profile browser and attaches.\n\nmacOS for `launch`. The dedicated profile is signed out on first run — log in once\nand sessions persist. Full usage: [`skills/browser/SKILL.md`](skills/browser/SKILL.md).\n\n## Design notes\n\nRationale for the non-obvious calls lives in [`docs/decisions/`](docs/decisions/):\n\n- [Patchright as the engine](docs/decisions/2026-06-09-patched-playwright.md)\n- [Persistent daemon, not a stateless CLI](docs/decisions/2026-06-09-daemon-not-stateless-cli.md)\n- [Built-in `aria_snapshot`, no custom AX filter](docs/decisions/2026-06-09-builtin-aria-snapshot.md)\n- [Dedicated profile](docs/decisions/2026-06-09-dedicated-profile-not-real.md)\n- [Captcha handling](docs/decisions/2026-06-09-captcha-handling.md)\n\n## Status\n\nv0.2.0. Smoke-tested on macOS: launch/attach, snapshot + refs, navigation,\nclick/type/press/scroll/hover/select, tabs, upload/download, dialog, eval, wait. The\noptional `playwright-captcha` solver path is scaffolded, not yet wired. Per-site guides\nfor `airbnb` / `aviasales` / `chatgpt` ship under `skills/browser/site-guides/`.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuperbereza%2Fbrowser-skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuperbereza%2Fbrowser-skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuperbereza%2Fbrowser-skill/lists"}