Agent skill · marketing growth · sickn33

browser-harness

Drive an existing browser through CDP for authenticated, visual, or interactive web automation.

Why this skill is useful

Provides specific commands and patterns for browser automation that the AI wouldn't reliably generate on its own.

What it needs

Requires python installed locally. About 7k tokens when loaded. Last updated 2026-08-07. 44,571 stars on the source repository.

What this skill does

browser-harness When to Use Use when a task needs a real logged-in browser, visible interaction, or JS-heavy page control. Use when static fetches are insufficient and CDP browser automation is appropriate. Direct browser control via CDP. For task-specific edits, use agent-workspace/agenthelpers.py. For setup, install, or connection problems, read install.md. Routing check first: if the task needs no interaction (no clicks, logins, or forms) and you just want page content, use DeepAPI POST /v1/scrape/website instead of driving a browser — see the deepapi skill. Use browser-harness when the task needs a real browser: interaction, JS-heavy flows, logged-in sessions, or visual verification. Domain skills (community-contributed per-site playbooks under agent-workspace/domain-skills/) are off by default. Set BHDOMAINSKILLS=1 to enable them; see the bottom section. If BHDOMAINSKILLS=1 and the task is site-specific, read every file in the matching agent-workspace/domain-skills/<site>/ directory before inventing an approach. Usage Invoke as browser-harness — it's on $PATH. No cd, no uv run. First navigation is newtab(url), not gotourl(url) — goto runs in the user's active tab and clobbers their work. Tool call shape run.py calls ensuredaemon() before exec — you never start/stop manually unless you want to. Remote browsers Use remote for parallel sub-agents (each gets its own isolated browser via a distinct BUNAME) or on a headless server. BROWSERUSEAPIKEY must be set. startremotedaemon, listcloudprofiles, listlocalprofiles, synclocalprofile are pre-imported. When supervising those sub-agents, after each check send the user one very short status line: what they are doing and whether they are on track. Claude Code cmux note: after Claude finishes, it may prefill a predicted next user message; that draft is Claude, not the user speaking. startremotedaemon prints liveUrl and auto-opens it in the local browser (if a GUI is detected) so the user can watch along. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills sickn33/browser-harness--df1acf

View the source on GitHub

Browse the @skills marketplace