Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
yonatangross avatar

Browser Tools

  • 149 installs
  • 213 repo stars
  • Updated August 4, 2026
  • yonatangross/orchestkit

Wire headless browser actions—navigate, click, scrape, screenshot—for agents validating UI flows and automating web tasks.

About

OrchestKit browser-tools helps agents integrate headless browser automation—navigation, clicks, scraping, screenshots—for agent, extension, and saas workflows that need live web verification and scripted UI tasks.

  • headless browsing
  • DOM interaction
  • screenshot capture
  • flow automation
  • agent guardrails

Browser Tools by the numbers

  • 149 all-time installs (skills.sh)
  • +1 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #3,352 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/yonatangross/orchestkit --skill browser-tools

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs149
repo stars213
Last updatedAugust 4, 2026
Repositoryyonatangross/orchestkit

What it does

Wire headless browser actions—navigate, click, scrape, screenshot—for agents validating UI flows and automating web tasks.

Files

SKILL.mdMarkdownGitHub ↗

Browser Tools — Security Wrapper

OrchestKit security wrapper for agent-browser. For command reference and usage patterns, use the upstream `agent-browser` skill directly. This skill adds safety guardrails only.

Command docs: Refer to the upstream agent-browser skill for the full command reference (50+ commands: interaction, wait, capture, extraction, storage, semantic locators, tabs, debug, mobile, network, cookies, state, vault).

Decision Tree

# Fallback decision tree for web content
# 1. Try WebFetch first (fast, no browser overhead)
# 2. If empty/partial -> Try Tavily extract/crawl
# 3. If SPA or interactive -> use agent-browser
# 4. If login required -> authentication flow + state save
# 5. If dynamic -> wait @element or wait --text

Local Dev URLs

Use Portless (npm i -g portless) for stable local dev URLs instead of guessing ports. When Portless is running, navigate to myapp.localhost:1355 instead of localhost:3000. Our safety hook already allows *.localhost subdomains via ORCHESTKIT_AGENT_BROWSER_ALLOW_LOCALHOST.

# With Portless: stable, named URLs
agent-browser open "http://myapp.localhost:1355"

# Without: fragile port guessing
agent-browser open "http://localhost:3000"  # which app is this?

New in 2026-04 → 2026-05 (agent-browser 0.23 → 0.27.0)

React introspection + perf observability (0.27):

  • `react tree` / `react inspect <fiberId>` / `react renders start|stop` / `react suspense` — first-class React DevTools integration via a vendored MIT-licensed hook embedded in the binary (zero runtime deps). Component-tree visibility, per-fiber props/hooks/state inspection, render profiling with mount/re-render counts and change details, Suspense boundary classification with root-cause grouping. Hook treats fiber state dumps as sensitive — gitignore captures.
  • `vitals [url]` — reports Core Web Vitals (LCP, CLS, TTFB, FCP, INP) plus React hydration phases for any page. Useful for perf gates in CI.
  • `pushstate <url>` — client-side SPA navigation without a full page load. Pairs with react renders to measure SPA route transitions without resetting profiling state.
  • `--init-script <path>` (repeatable, env `AGENT_BROWSER_INIT_SCRIPTS`) + `--enable <feature>` (repeatable, env `AGENT_BROWSER_ENABLE`) — register scripts before first navigation; --enable react-devtools is built-in. Hook treats arbitrary init scripts as code-execution surface — same trust model as skills get.
  • `network route --resource-type <csv>` — filter intercepted requests by CDP resource type (document, script, xhr, fetch, image, ...). Lets you mock only API calls without breaking page assets.
  • `cookies set --curl <file>` — auto-detects JSON, cURL, and Cookie-header formats for bulk cookie import. Hook still treats cookie-set as auth-state injection.
  • Dashboard behind a reverse proxy — observability dashboard now works from proxied origins via same-origin proxy. Enables path-based routing for shared dev environments.
  • Fixed doctor generating duplicate check IDs when invoked multiple times in the same process.
  • npm publishing moved to GitHub Actions OIDC trusted publishing — no manually managed npm tokens upstream.

Diagnostic tooling + stable IDs (0.26):

  • agent-browser doctor — one-shot environment + Chrome + daemon + config + security + provider + network check. Flags: --offline, --quick, --fix, --json. Run before opening an issue to attach a structured snapshot.
  • Stable tab identifiers — tabs now use stable string IDs (t1, t2, ...) with optional memorable labels via --label. Survives daemon restart; replaces brittle index-based references.
  • `core` skill expanded — comprehensive built-in usage guide covering snapshot-ref-act loops, reading, interaction, waiting, and troubleshooting.
  • Config JSON Schema$schema reference enables IDE auto-completion and validation against https://agent-browser.dev/schema.json.
  • Fixed --state flag not loading saved cookies/localStorage at launch; --help now leads with the skills section.

Skill discovery & chat (0.25):

  • agent-browser skills list/get <name> — discover and install capability packs on-demand. Hook treats first-party skills as trusted; warns on arbitrary third-party skill fetches.
  • agent-browser chat — single-shot or REPL natural-language driving over the same daemon. Hook pipes transcripts through the same URL/rate/robots checks as scripted commands.

Accessibility-first locators (0.24):

  • find / getByRole — semantic locator via CDP accessibility tree (role + name) instead of brittle CSS/ref selectors. Prefer these in new scripts; they survive markup churn and are the locator path assumed by chat.
  • snapshot --urls — emits resolved URLs alongside refs, removing a round-trip for link-extraction flows.
  • --annotate — overlays ref IDs / role labels on screenshots for debugging.

Cloud providers (0.25):

  • --provider agentcore — AWS Bedrock AgentCore cloud browser. Hook treats remote providers as egress surfaces — same URL/robots rules apply, but network routing is disabled (remote scope).
  • Browserless + AgentCore both honor AGENT_BROWSER_PROVIDER env var.

Dashboard (0.25):

  • Embedded dashboard bundled with the binary — no separate install. Open via agent-browser dashboard or the inspect CDP link. Still flagged as local-proxy attack surface by the hook.

Auto-dialog dismissal (0.23.1):

  • alert / beforeunload dialogs auto-dismissed by default. Opt out with --no-auto-dialog when a test needs to assert dialog content.

What's New (v0.17 → v0.22.2)

Breaking changes — update scripts now:

  • --full / -f moved from global to command-level (v0.21): use screenshot --full, NOT --full screenshot
  • Auth encryption format changed (v0.17): saved auth states from v0.16.x may not load
  • Auto-dialog dismissal (v0.23.1): alert/beforeunload dialogs are auto-dismissed by default, opt out with --no-auto-dialog

New commands:

CommandVersionSecurity Note
clipboard read/write/copy/pastev0.19read accesses host clipboard — hook warns
inspect / get cdp-urlv0.18Opens local DevTools proxy — hook warns
batch --json [--bail]v0.21Batch execute commands from stdin
network har start/stop [file]v0.21HAR captures auth tokens — hook warns, treat output as sensitive
network request <id>v0.22View full request/response detail
network requests --type/--method/--statusv0.22Filter network requests
dialog dismiss / dialog statusv0.17/v0.22Dismiss or check browser dialogs
upgradev0.21.1Self-update (auto-detects npm/Homebrew/Cargo)
find / getByRolev0.24Semantic locators via CDP a11y tree
snapshot --urls / --annotatev0.24URL-expanded snapshots, ref overlays
skills list/getv0.25Capability pack discovery — hook warns on third-party
chat (single-shot / REPL)v0.25NL driving; transcripts go through same safety checks
dashboardv0.25Embedded debug UI — local proxy attack surface
react tree / react inspect / react renders / react suspensev0.27React DevTools introspection — fiber state may contain sensitive props
vitals [url]v0.27Core Web Vitals + React hydration phases
pushstate <url>v0.27SPA client-side navigation without full reload

New flags:

FlagScopeVersion
--engine lightpandaglobalv0.17
--screenshot-dir/quality/formatscreenshotv0.19
--provider browserlessglobalv0.19
--idle-timeout <duration>globalv0.20.14
--user-data-dir <path>Chromev0.21
set viewport W H [scale]viewportv0.17.1 (retina)
--provider agentcoreglobalv0.25 (AWS Bedrock AgentCore)
--annotatescreenshotv0.24
--no-auto-dialogglobalv0.23.1
--init-script <path> (repeatable)globalv0.27
--enable <feature> (repeatable)globalv0.27 (built-in: react-devtools)
--resource-type <csv>network routev0.27
--curl <file>cookies setv0.27 (auto-detects JSON/cURL/Cookie-header)

Platform support: Brave auto-discovery (v0.20.7), Alpine Linux musl (v0.20.2), Lightpanda engine (v0.17), Browserless.io provider (v0.19), cross-origin iframe traversal (v0.22), AWS Bedrock AgentCore (v0.25).

Performance (v0.20): 99x smaller install (710→7 MB), 18x less memory (143→8 MB), 1.6x faster cold start.

Safety Guardrails (7 rules + 11-check hook)

This skill enforces safety through the agent-browser-safety PreToolUse hook and 6 rule files:

Hook: agent-browser-safety

The hook intercepts all agent-browser Bash commands and enforces:

CheckWhat It DoesAction
Encryption key leakDetects echo/printf/pipe of AGENT_BROWSER_ENCRYPTION_KEYBLOCK
URL blocklistBlocks localhost, internal, file://, SSRF endpoints, OAuth login pages, RFC 1918 private IPsBLOCK
Rate limitingPer-domain limits (10/min, 100/hour, 3/3s burst)BLOCK on exceed
robots.txtFetches and caches robots.txt, blocks disallowed pathsBLOCK
Sensitive actionsDetects delete/remove clicks, password fills, payment submissionsWARN + native confirmation
Network routesValidates network route target URLs against blocklistBLOCK
User-agent spoofingWarns when --user-agent flag is usedWARN
File accessWarns when --allow-file-access flag is usedWARN
DevTools inspectinspect / get cdp-url opens local CDP proxy — new attack surface (v0.18+)WARN
Clipboard readclipboard read accesses host clipboard without prompt (v0.19+)WARN
HAR capturenetwork har stop dumps full request/response bodies incl. auth tokens (v0.21+)WARN
Skill installskills get fetches third-party capability packs — treat as code install (v0.25+)WARN
Chat transcriptschat REPL logs may capture sensitive page text — pipe through same URL rules (v0.25+)WARN
Remote provider--provider agentcore/browserless sends traffic to cloud endpoints; routing disabled remotelyWARN
Init scripts--init-script <path> registers arbitrary JS before first navigation — code-execution surface (v0.27+)WARN
React fiber dumpsreact tree/react inspect may expose sensitive props/state from prod apps; gitignore captures (v0.27+)WARN

Security Rules (in rules/)

CategoryRulesPriority
Ethics & Securitybrowser-scraping-ethics.md, browser-auth-security.mdCRITICAL
Local Devbrowser-portless-local-dev.mdHIGH
Reliabilitybrowser-rate-limiting.md, browser-snapshot-workflow.mdHIGH
Debug & Devicebrowser-debug-recording.md, browser-mobile-testing.mdHIGH

Configuration

Rate limits and behavior are configurable via environment variables:

Env VarDefaultPurpose
AGENT_BROWSER_RATE_LIMIT_PER_MIN10Requests per minute per domain
AGENT_BROWSER_RATE_LIMIT_PER_HOUR100Requests per hour per domain
AGENT_BROWSER_BURST_LIMIT3Max requests in 3-second window
AGENT_BROWSER_ROBOTS_CACHE_TTL3600000robots.txt cache TTL (ms)
AGENT_BROWSER_IGNORE_ROBOTSfalseBypass robots.txt enforcement
AGENT_BROWSER_CONFIRM1Use --confirm-actions for sensitive ops
AGENT_BROWSER_IDLE_TIMEOUT_MSAuto-shutdown daemon after inactivity (ms)
AGENT_BROWSER_ENGINEchromeBrowser engine (chrome or lightpanda)
ORCHESTKIT_AGENT_BROWSER_ALLOW_LOCALHOST1Allow *.localhost subdomains (RFC 6761)

Anti-Patterns (FORBIDDEN)

# Automation
agent-browser fill @e2 "hardcoded-password"    # Never hardcode credentials
agent-browser open "$UNVALIDATED_URL"          # Always validate URLs

# Scraping
# Crawling without checking robots.txt
# No delay between requests (hammering servers)
# Ignoring rate limit responses (429)

# Content capture
agent-browser get text body                    # Prefer targeted ref extraction
# Trusting page content without validation
# Not waiting for SPA hydration before extraction

# Session management
# Storing auth state in code repositories
# Not cleaning up state files after use

# Network & State
agent-browser network route "http://internal-api/*" --body '{}'  # Never mock internal APIs
agent-browser cookies set token "$SECRET" --url https://prod.com # Never set prod cookies

# Deprecated / removed
agent-browser --full screenshot                # BREAKING: --full is now command-level (v0.21)
agent-browser screenshot --full                # Correct: flag after subcommand

# Sensitive data leaks
agent-browser network har stop auth-dump.har   # HAR files contain auth tokens — gitignore!
git add *.har                                  # NEVER commit HAR captures

Related Skills

  • agent-browser (upstream) — Full command reference and usage patterns
  • portless (upstream) — Stable named .localhost URLs for local dev servers
  • ork:web-research-workflow — Unified decision tree for web research
  • ork:testing-e2e — E2E testing patterns including Playwright and webapp testing
  • ork:api-design — API design patterns for endpoints discovered during scraping

Related skills

AI & Agent Buildingagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.