Agent skill
run-agent-browser
Quellcode ansehen: yigitkonur/skills-by-yigitkonur
Installation
npx skills add yigitkonur/skills-by-yigitkonur --skill run-agent-browser46
Installationen
EU-hosted inference API
Power your AI agent skills with open-source models.
Drop-in OpenAI-compatible API. No data leaves Europe.
MiniMax
MiniMax M3
$0.40 / $1.40
per M tokens
Z.ai
GLM 5.3 Flash
$0.20 / $0.60
per M tokens
MoonshotAI
Kimi K3
$4.00 / $18.00
per M tokens
DeepSeek
DeepSeek V4.1 Flash
$0.40 / $1.40
per M tokens
run-agent-browser
Drive agent-browser as a live terminal REPL: one command, read the result, then decide the next. Never chain ad hoc browser work in a script or && unless the user asked for a reusable harness.
Escalate; never dead-end. If a tier fails, diagnose once, then move to the next tier. If every automated tier fails, ask the user for credentials / a CDP URL / a deploy decision — do not stop with "can't."
Authority
agent-browser skills get core
agent-browser COMMAND --help
agent-browser --versionInstalled CLI help wins on syntax. This skill owns runtime selection and failure escalation for this host.
Priority ladder (always start at tier 1)
| Tier | When | How |
|---|---|---|
| 1. Plain local | Default for every new task | Unset provider env; launch local Chrome with stealth args |
| 2. Steel CDP | Tier 1 fails (no Chrome, display, sandbox, or user asked for managed CDP) | Source Steel env; attach via --cdp; details in references/cdp-and-steel.md |
| 3. Cloud provider | Tier 2 fails or unavailable | Browser Use → Kernel → Browserless → Browserbase (or user-named); if Browser Use returns CDP WebSocket connect failed: HTTP error: 400 Bad Request, skip it and fall through — do not retry it (see tier 3 below); details in references/providers.md |
| 4. Ask user | All tiers fail or no credentials | Request CDP URL, provider key, or approval to install/deploy — then configure and retry |
Special cases (skip the ladder only when clearly required):
| Need | Route |
|---|---|
| Public URL text only | agent-browser read URL (no browser) |
| Google AI Overview / AI Mode / Gemini capture | Patchright scrape API — references/managed-cdp-pool.md (not CDP) |
| User-launched Chrome with existing auth | --auto-connect or connect <port|url> — references/cdp-and-steel.md |
| Electron / Slack / AgentCore sandbox | agent-browser skills get <name> specialized skill |
Stealth is the default (every tier)
Always prefer anti-automation defaults. There is no official agent-browser-plugin-stealth npm package (404); use built-ins + provider stealth flags:
# Local / Steel launch args (tier 1; also apply when launching unmanaged Chrome)
STEALTH_ARGS='--disable-blink-features=AutomationControlled'
# Browserless: stealth ON by default (BROWSERLESS_STEALTH=true)
# Kernel: stealth OFF by default — always set KERNEL_STEALTH=true for this skill
# Proxy (optional, all tiers): --proxy "$AGENT_BROWSER_PROXY" when configuredNever put proxy passwords, API keys, or cookie values in command output, commits, or chat.
Tier 1 — plain local (start here)
No rc file auto-sources a provider env into a fresh zsh shell (the default here) — but .bashrc auto-sources agent-browser-kernel.env (AGENT_BROWSER_PROVIDER=kernel), and manually source-ing any provider file during tier-3 work leaves that variable exported for the rest of the shell. Always unset it for tier 1 regardless of which shell or prior command ran, or you will silently hit a cloud provider instead of local Chrome.
SESSION="local-$(agent-browser session id --scope cwd --prefix task)"
env -u AGENT_BROWSER_PROVIDER \
agent-browser --session "$SESSION" \
--args "--disable-blink-features=AutomationControlled" \
open https://example.com
env -u AGENT_BROWSER_PROVIDER agent-browser --session "$SESSION" snapshot -i
env -u AGENT_BROWSER_PROVIDER agent-browser --session "$SESSION" get title
env -u AGENT_BROWSER_PROVIDER agent-browser --session "$SESSION" closeTreat as tier-1 failure and escalate when you see: Chrome/Chromium not found, display/Xvfb errors, sandbox/--no-sandbox crashes, CDP bind failures, repeated blank pages with no DOM, or the user is on a machine without a local browser (CI, remote-only laptop).
If the error is specifically Cannot use --cdp and -p/--provider together, you mixed tiers — drop -p/AGENT_BROWSER_PROVIDER for CDP, or drop --cdp for a provider.
Tier 2 — Steel CDP (self-hosted on this fleet)
Read references/cdp-and-steel.md before changing endpoints or diagnosing attach failures. Short path:
source "$HOME/.config/steel-browser-cdp.env" # no-op if missing — then ask user / deploy
# If STEEL_AGENT_BROWSER_CDP is empty: ask user for a CDP websocket URL, or offer to deploy Steel
# (deploy path: Coolify compose in crawler-service/deploy/steel-browser/ — use deploy-coolify-cloud skill)
SESSION="steel-$(agent-browser session id --scope cwd --prefix task)"
# Optional clean slate (Steel is single-session / shared page — see reference)
curl -fsS -X POST "$STEEL_API_URL/v1/sessions/release" >/dev/null 2>&1 || true
env -u AGENT_BROWSER_PROVIDER \
agent-browser --session "$SESSION" --cdp "$STEEL_AGENT_BROWSER_CDP" \
open https://example.com
env -u AGENT_BROWSER_PROVIDER agent-browser --session "$SESSION" --cdp "$STEEL_AGENT_BROWSER_CDP" snapshot -i
env -u AGENT_BROWSER_PROVIDER agent-browser --session "$SESSION" --cdp "$STEEL_AGENT_BROWSER_CDP" close
curl -fsS -X POST "$STEEL_API_URL/v1/sessions/release" >/dev/null 2>&1 || true # full reset; close only detachesCritical Steel facts (do not skip): one shared Chromium with effectively one page; serialize Steel tasks; --session isolates daemon state only; close detaches, POST …/v1/sessions/release resets. Full semantics, ports, tailnet URLs, and troubleshooting: references/cdp-and-steel.md.
Escalate to tier 3 when: env file missing and user has no CDP URL; health//json/version fail; attach refused after one recovery attempt; or Steel serialization blocks a needed parallel task.
If the user only has a raw CDP link (any host), use tier-2 mechanics with that URL:
env -u AGENT_BROWSER_PROVIDER agent-browser --session cdp-user --cdp "$USER_SUPPLIED_CDP_WS" open https://example.comTier 3 — cloud providers (ask, configure, retry)
Read references/providers.md for env files, stealth defaults, and install. Order when the user has not named a provider:
- Browser Use (
-p browseruse) — key often already on this host, but see the known-broken note below before relying on it - Kernel (
-p kernel) — setKERNEL_STEALTH=true; verified working on this host - Browserless (
-p browserless) — stealth on by default; verified working on this host - Browserbase (
-p browserbase) — only if key present / user provides
Known issue (this host, agent-browser 0.33.2, checked 2026-08-03): -p browseruse fails deterministically with ✗ CDP WebSocket connect failed: HTTP error: 400 Bad Request on every attempt — different session names, with/without -v/--debug, fresh shell, doc-verbatim syntax. This is not a bad key: an authenticated API probe returns 200, session creation via the raw API succeeds, and the returned webSocketDebuggerUrl accepts a raw WebSocket upgrade directly — so the break is inside agent-browser's own Browser Use connect path, not the account or network. Treat one 400 Bad Request from -p browseruse as a known failure signal, not a transient blip — do not retry it, fall straight to Kernel.
# Example: Browser Use (do NOT print the key)
source "$HOME/.config/agent-browser-browseruse.env" # if present
# If BROWSER_USE_API_KEY empty → ask user for the key; write to that env file (chmod 600); source; retry
# If it returns "CDP WebSocket connect failed: HTTP error: 400 Bad Request" → known-broken on this host, skip to Kernel
SESSION="prov-$(agent-browser session id --scope cwd --prefix task)"
env -u AGENT_BROWSER_PROVIDER \
agent-browser --session "$SESSION" -p browseruse \
open https://example.comAlways pass -p <name> explicitly in commands (do not rely on a sticky global AGENT_BROWSER_PROVIDER for the whole session — it breaks Steel/CDP later). Never combine -p with --cdp.
If no provider key exists: ask the user which provider they want and for the API key (or dashboard invite). Offer to:
- write
~/.config/agent-browser-<provider>.env(chmod 600) and a guarded~/.zshrcsource line; - open the provider dashboard URL from
references/providers.md; - re-run the failed step after config.
Do not invent keys. Do not paste key values into chat, commits, or logs — confirm with "key present / length only."
Tier 4 — still blocked
Ask for one of, then configure and retry from the matching tier:
- A CDP websocket URL (
ws:///wss://) or host:port for an existing Chrome - A provider name + API key (Browser Use / Kernel / Browserless / Browserbase)
- Approval to install local Chrome /
agent-browser(npm i -g agent-browser,agent-browser install) - Approval to deploy self-hosted Steel (this fleet: Coolify compose under
deploy/steel-browser/)
Core interaction loop (any tier)
Use the same runtime prefix on every command in the flow:
# PREFIX is tier-1 env -u … --session … --args … OR tier-2 … --cdp … OR tier-3 … -p <name>
$PREFIX open https://example.com
$PREFIX snapshot -i # refs like @e3 — never @ref=e3
$PREFIX click @e3
$PREFIX wait --url "**/expected"
$PREFIX snapshot -i # refs stale after navigation — always re-snapshot
$PREFIX get url
$PREFIX get title
$PREFIX errors
$PREFIX closeVerify outcomes separately from action success. Screenshots when visual proof matters.
Helpers
| Path | Use |
|---|---|
scripts/check-agent-browser-version.sh |
Read-only CLI + Steel + pool health |
scripts/inspect-page.sh |
Steel page capture harness |
assets/templates/*.sh |
Reusable workflows (only when user asked for a harness) |
references/cdp-and-steel.md |
Steel endpoints, single-session semantics, release, tailnet, CDP attach |
references/providers.md |
Browser Use / Browserbase / Browserless / Kernel setup, stealth, credentials |
references/managed-cdp-pool.md |
Patchright Google AI/Gemini scrape API |
references/commands.md |
Everyday command routing |
references/sessions-and-refs.md |
Refs, tabs, restore, auth vault |
references/safety.md |
Recovery ladder, shared-runtime safety |
references/trust-boundaries.md |
Secrets, injection, outward actions |
references/advanced.md |
Proxy, recording, engines, React |
Output contract
Report: final URL/title + user-visible outcome; which tier ran (and any escalation); session name; deterministic checks; cleanup performed (incl. Steel sessions/release if used); artifacts + sensitivity; credentials requested or files written (names only, never values); any install/deploy recommendation left for the user.
Installationen
Sicherheitsprüfung
Quellcode ansehen
yigitkonur/skills-by-yigitkonur
Mehr aus dieser Quelle
Give agents clean web context
Search and extract the public web as Markdown or structured JSON through one API or hosted MCP server.
Verwandte Skills
Mehr aus dieser Quelle: yigitkonur/skills-by-yigitkonur
So verwenden Sie diesen Skill
Install run-agent-browser by running npx skills add yigitkonur/skills-by-yigitkonur --skill run-agent-browser in your project directory. Führen Sie den obigen Installationsbefehl in Ihrem Projektverzeichnis aus. Die Skill-Datei wird von GitHub heruntergeladen und in Ihrem Projekt platziert.
Keine Konfiguration erforderlich. Ihr KI-Agent (Claude Code, Cursor, Windsurf usw.) erkennt installierte Skills automatisch und nutzt sie als Kontext bei der Code-Generierung.
Der Skill verbessert das Verständnis Ihres Agenten für run-agent-browser, und hilft ihm, etablierte Muster zu befolgen, häufige Fehler zu vermeiden und produktionsreifen Code zu erzeugen.
Was Sie erhalten
Skills sind Klartext-Anweisungsdateien — kein ausführbarer Code. Sie kodieren Expertenwissen über Frameworks, Sprachen oder Tools, das Ihr KI-Agent liest, um seine Ausgabe zu verbessern. Das bedeutet null Laufzeit-Overhead, keine Abhängigkeitskonflikte und volle Transparenz: Sie können jede Anweisung vor der Installation lesen und prüfen.
Kompatibilität
Dieser Skill funktioniert mit jedem KI-Coding-Agenten, der das skills.sh-Format unterstützt, einschließlich Claude Code (Anthropic), Cursor, Windsurf, Cline, Aider und anderen Tools, die projektbezogene Kontextdateien lesen. Skills sind auf Transportebene framework-agnostisch — der Inhalt bestimmt, für welche Sprache oder welches Framework er gilt.