ワンクリックで
browser-harness
">"
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
">"
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Assist with Colibri: pure-C LLM inference engine for running GLM-5.2 (744B MoE) on consumer machines with ~25 GB RAM. Use when setting up, building, converting models, running inference, configuring expert streaming and caching, optimizing speculative decoding (MTP), GPU integration, and integrating Colibri into production pipelines. Includes build setup, model download & conversion, chat/inference modes, performance tuning, and API integration patterns.
Discover and apply curated prompts from the prompts.chat collection to optimize AI interactions. Use when refining prompt engineering, finding domain-specific prompt templates, improving response quality, or building prompt-based workflows. Triggers on: prompt optimization, prompt templates, prompt engineering, prompt library, curated prompts, prompt discovery, and AI prompt patterns.
Turn ONE topic into a finished Vox-style paper-collage explainer / ad video, end to end on the Atlas Cloud API + local ffmpeg — script, collage keyframes, motion, voice-over, music, captions, all automated. Use this whenever the user wants a "Vox style" video, a paper/torn-paper collage animation, a "motion collage", a narrated explainer or short ad built from AI-generated collage posters, a scrapbook-style tribute, or wants to turn a topic / product / person into a punchy narrated collage video — even if they don't say the word "Vox". Also use when reproducing Stav Zilber / rom1trs / Higgsfield-style collage ad workflows, or when the user asks for a motion collage or a scrapbook-style tribute. Triggers: "vox video", "collage video", "motion collage", "paper collage explainer", "make a collage ad", "turn this topic into a collage video".
Assist with Motion Previs Studio v4: a cross-platform desktop app for AI-film previsualization. Use when setting up, configuring, troubleshooting, or extending motion-previs-studio for pose extraction, depth mapping, camera motion solving, control layer export, and bundle production for AI-video workflows (Seedance, ComfyUI, Blender, Runway, Kling). Includes build setup, feature integration, UI/logic debugging, and export pipeline optimization.
Work with Lapian Notes / 拉片笔记 (github.com/bkingfilm/lapian-notes) — a local- first React/Vite tool that turns a film into an editable shot-by-shot study notebook: local frame extraction, AI-assisted structure analysis (bring your own AI, no API key required), story-line swimlane timeline, structure tree, and audience-emotion curve. Use when the user asks about Lapian Notes, "拉片笔记", "拉片" (shot-by-shot film analysis) tooling, cloning/running this repo (npm run dev, run.bat/run.command), the AI-analysis-package (ZIP) round-trip workflow, or contributing a PR to lapian-notes. Not for generic video editing (use `opencut` for that) or generic film-analysis theory unrelated to this codebase.
Set up, run, and contribute to TokHub (github.com/yaojingang/TokHub) — an open-source AI API relay monitoring, recommendation, and OpenAI-compatible gateway system with L1/L2/L3 channel health probing, usage metering, alerts, audit, and Docker self-hosting. Use when the user asks about TokHub, "AI API 中转站监控", cloning/running the Go + React monorepo (TOKHUB_ROLE, sqlc, TimescaleDB, NATS), the L1/L2/L3 probe algorithm, the OpenAI-compatible `/gateway/v1/*` endpoint, or contributing a PR to TokHub. Do not use for connecting a running agent to a live TokHub instance's own API (that is covered by the project's own bundled `agent-skills/tokhub` skill inside the TokHub repo, not this one).
| name | browser-harness |
| description | > |
| license | MIT |
| compatibility | Requires Python 3.10+ and Chrome/Chromium with remote debugging enabled. Works from Claude Code, Codex CLI, Antigravity (`agy`), Gemini CLI, and OpenCode when the agent can edit/run the local Python workspace. Includes a Claude-safe screenshot patch for PIL file-handle and image-size issues. |
| allowed-tools | Bash Read Write Edit Glob Grep WebFetch |
| metadata | {"tags":"browser-harness, browser-automation, self-healing, cdp, chrome-devtools-protocol, llm-browser, codex, antigravity, claude-code, claude-vision-safe, screenshot, domain-skills","version":"1.1.0","source":"https://github.com/browser-use/browser-harness","platforms":"Claude Code, Codex, Antigravity, Gemini CLI, OpenCode"} |
Keyword:
browser-harness·self-healing browser·llm browser automation·cdp agentDirect WebSocket connection between an LLM agent and Chrome via Chrome DevTools Protocol. The agent can inspect the page, write helper code, reuse domain skills, and verify the task without an extra browser abstraction layer.
Browser Harness is the canonical replacement for the removed agent-browser skill in this catalog. Use it for clean browser verification, autonomous browser tasks, and platform-portable CDP control across Claude Code, Codex, Antigravity, Gemini CLI, and OpenCode.
agent-workspace/agent_helpers.py.agent-workspace/domain-skills/.scrapling.agentation.playwriter.react-grab.Pick one primary packet before writing commands:
--remote-debugging-port=9222.agy) uses the same workspace and Chrome debugging endpoint.agent-workspace/domain-skills/.Browser Harness can be set up by an agent from any platform that can run shell commands:
git clone https://github.com/browser-use/browser-harness.git
cd browser-harness
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Claude Code can also use the project-native setup prompt:
Set up https://github.com/browser-use/browser-harness for me
Requirements:
http://localhost:9222/json reachable from the agent runtimeUse a separate profile so the harness can safely create clean sessions:
# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
# Linux
google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
# Windows PowerShell
& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
--remote-debugging-port=9222 --user-data-dir="$env:TEMP\chrome-debug"
Verify:
curl -s http://localhost:9222/json
| Platform | Use browser-harness when | Setup note |
|---|---|---|
| Claude Code | You need autonomous browser work or Claude-safe screenshots | Apply the screenshot patch before image-heavy work |
| Codex CLI | You need local CDP automation from a repo task | Keep .venv inside the checkout and run commands from that shell |
Antigravity (agy) | You need the same browser harness from Antigravity workflows | Ensure agy can see the checkout and localhost:9222 |
| Gemini CLI / OpenCode | You need portable browser automation without platform-specific MCP wiring | Use the same local CDP and Python workspace |
For Codex and Antigravity, do not assume Claude Code plugin commands exist. Prefer explicit local commands:
cd ~/browser-harness
source .venv/bin/activate
python -c "import browser_harness; print('browser-harness OK')"
curl -s http://localhost:9222/json
If Claude throws image recognition, image upload, PNG read, or tool errors around screenshots, patch src/browser_harness/helpers.py so screenshots are decoded and resized in memory, and PIL file handles are closed before saving overlays.
Required changes:
diff --git a/src/browser_harness/helpers.py b/src/browser_harness/helpers.py
--- a/src/browser_harness/helpers.py
+++ b/src/browser_harness/helpers.py
@@
-import base64, importlib.util, json, math, os, sys, time, urllib.request
+import base64, importlib.util, io, json, math, os, sys, time, urllib.request
@@
- img = Image.open(path)
+ with Image.open(path) as src:
+ img = src.copy()
@@
- open(path, "wb").write(base64.b64decode(r["data"]))
+ data = base64.b64decode(r["data"])
if max_dim:
from PIL import Image
- img = Image.open(path)
+ img = Image.open(io.BytesIO(data))
if max(img.size) > max_dim:
img.thumbnail((max_dim, max_dim))
- img.save(path)
+ buf = io.BytesIO()
+ img.save(buf, format="PNG")
+ data = buf.getvalue()
+ with open(path, "wb") as f:
+ f.write(data)
Why this matters:
Image.open(path) keeps a lazy file handle unless copied or closed.io.BytesIO avoids the write-read-write cycle.with open(path, "wb") produces a stable file for Claude vision upload.Recommended screenshot call for Claude:
path = capture_screenshot(max_dim=1800)
Use max_dim=1800 on high-DPI displays to stay under common 2000px-per-side image limits.
Give the agent a natural-language task:
Open the local app, complete the signup form, and verify that the dashboard appears.
Navigate to GitHub, open the first open issue, and summarize the acceptance criteria.
Fill in the contact form at example.com and confirm the success message.
The agent should:
agent-workspace/agent_helpers.py.agent-workspace/agent_helpers.py or agent-workspace/domain-skills/.Domain skills are site-specific playbooks. Keep them small and reusable:
agent-workspace/domain-skills/
├── github.py
├── linkedin.py
└── your-site.py
Example:
def login(page, username: str, password: str):
"""Log into mysite.com."""
page.goto("https://mysite.com/login")
page.fill("#username", username)
page.fill("#password", password)
page.click("button[type=submit]")
page.wait_for_url("**/dashboard")
Use Browser Use Cloud only when local Chrome is insufficient and the target permits automation:
from browser_harness import BrowserUseCloud
client = BrowserUseCloud(api_key="YOUR_API_KEY")
result = client.run("Extract the dashboard data and return a CSV summary")
print(result)
local-cdp; escalate only when the local CDP endpoint cannot satisfy the job.agent_helpers.py or domain skills.scrapling for stateless scraping and playwriter for already-open authenticated browser reuse.cd ~/browser-harness
source .venv/bin/activate
python -c "import browser_harness; print('browser-harness OK')"
curl -s http://localhost:9222/json