unbrowse

Discover and reuse website APIs automatically, with cached skills shared across all agents. Captures network traffic on first visit to learn a site's API endpoints (20-80s), then executes cached skills in under 200ms on subsequent calls Publishes discovered API structures to a shared marketplace where skills are scored and reusable by any agent Handles authentication automatically by extracting cookies from Chrome/Firefox; supports interactive login for gated sites CLI-first workflow with --path , --extract , and --limit flags for structured data extraction without piping to jq or Python

INSTALLATION
npx skills add https://github.com/unbrowse-ai/unbrowse --skill unbrowse
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$2a

Then run once on the host machine:

npx unbrowse setup

That bootstraps the local runtime, accepts ToS, registers an agent identity, and pairs your wallet for x402 earnings.

Why this changed

The skill path put a long policy + CLI document into the agent's context window on every invocation. The MCP server exposes the same capabilities as discoverable tools with structured schemas and result-size caps (25 KB), so agents get the right shape without paying for the prose. The MCP tools are also versioned per release, where the skill was a frozen blob.

What MCP gives you

Discovery + execute:

  • unbrowse_resolve — given an intent + URL, return a ranked endpoint shortlist with schema, sample values, params, and next_step hints.
  • unbrowse_execute — call a chosen endpoint with path / extract / limit projection. Result is wire-capped at 25 KB.
  • unbrowse_feedback — required after every execute.
  • unbrowse_search — search the marketplace by intent + domain.
  • unbrowse_skills, unbrowse_skill — list and inspect cached skills.

Browse session (when resolve has no skill yet):

  • unbrowse_go, unbrowse_snap, unbrowse_click, unbrowse_fill, unbrowse_type, unbrowse_press, unbrowse_select, unbrowse_scroll, unbrowse_submit, unbrowse_eval, unbrowse_screenshot, unbrowse_text, unbrowse_markdown, unbrowse_cookies, unbrowse_sync, unbrowse_close.

Settings + review + publish:

  • unbrowse_settings — toggle share_pointers, configure capture pipeline.
  • unbrowse_review, unbrowse_publish — review captured endpoints and publish to the marketplace.
  • unbrowse_health — server health check.

Workflow resources + prompts (read-only): workflow_publish://<skill>, workflow_contract://<skill>/<endpoint>, workflow_dag://<skill>/<endpoint>, and the plan_workflow_execution prompt.

CLI is not deprecated

The unbrowse CLI is the same binary that backs the MCP server. It remains supported for shell use, scripts, and CI. Only the skill path (this file, shipped via unbrowse-ai/unbrowse) is deprecated.

CLI Flags

**Auto-generated from src/cli.ts CLI_REFERENCE — do not edit manually. Run bun scripts/sync-skill-md.ts to sync.**

Commands

Command

Usage

Description

setup

[--opencode auto

global

upgrade

Print the right upgrade command (npm i -g unbrowse@latest or @preview).

health

Quick local server health check. Returns version + uptime.

mcp

[--no-auto-start]

Run the stdio MCP server. Used by Claude/Cursor; not for direct shell use.

account

[--register] [--email user@example.com] [--reset-key] [--json]

Show local account, wallet, and contribution mode. --register mints a new key (replaces old register command).

mode

Re-prompt for contribution mode: private / share / share + earn (changes whether captured skills go to the marketplace).

dashboard

[--no-open]

Open the website dashboard and pair this CLI install through localhost.

settings

[--auto-publish on

off] [--publish-blacklist d1,d2] [--publish-promptlist d1,d2]

fetch

[opts]

--bundle-source <js

run

<url> "task"

One-shot agent path. Chooses direct cached/API replay first, captures+indexes on miss, retries, then opens browser only when interaction is needed. Accepts positional task text or --intent/--task/--query.

resolve

--intent "..." [--url "..."] [--domain "..."] [--no-execute]

Advanced: resolve an intent against marketplace + local cache only. --task and --query are accepted aliases for --intent. Auto-executes the top safe GET endpoint by default; --no-execute returns metadata only.

execute

--skill ID --endpoint ID [-p key=val ...] [--params '{json}']

Execute a specific endpoint. Call after unbrowse resolve --no-execute returned a shortlist. Pass replay params via repeated -p flags or --params with a JSON object.

explain

--intent "..." --url "..." [--top N]

Print top-N candidate endpoints + evidence so an LLM (or you) can pick. No heuristic verdict — just primitives + evidence.

capture

--url --intent [--retries N]

--corpus --out [--retries N]

auth

<url>

Open a visible browser so you can sign in to a site; cookies persist for future run/fetch/resolve. (Old names: auth-capture, login.)

note

<read

write

skills

List all locally-cached skills (skill_id, domain, endpoint count).

skill

<id>

Get full SkillManifest for one skill (intent, endpoints, schemas).

feedback

--skill ID --endpoint ID --rating 1-5

Submit feedback after presenting endpoint results to the user (mandatory after resolve+execute).

annotate

--skill ID --endpoint ID --text 'tip' [--constraint 'param:rule:msg']

Contribute best practices, constraints, or gotchas for an endpoint.

review

--skill ID --endpoints '[...]'

Push reviewed descriptions/schema metadata back to a captured skill before publish.

index

--skill ID

Recompute local graph/contracts/export from cached skill state. Cheap; doesn't hit the network.

publish

--skill ID [--confirm-publish] [--endpoints '[...]']

Publish reviewed skill to the marketplace. Re-indexes locally first; --confirm-publish bypasses the safety prompt.

publish-bundle

--preset path [--hosts codex,claude,openclaw] [--site-url url]

Derive foundry bundle/share/host artifacts from one preset and write the public share manifest.

cleanup-stale

[--skill ID] [--domain host] [--limit N]

Verify skills against live endpoints and evict stale cached entries.

go

<url> [--session id]

Open a fresh Kuri browser tab (or reuse via --session). Step 1 of the browse workflow.

snap

[--session id] [--filter interactive]

A11y snapshot with @eN refs. Inspect the page state — gives you the refs to click/fill.

click

[--session id] <ref>

Click element by @eN ref from snap.

fill

[--session id] <ref> <value>

Fill input by @eN ref with the given value.

type

<text>

Type into the focused element with key events (use after click).

press

<key>

Press a key (Enter, Tab, Escape, ArrowDown, ...).

select

<ref> <value>

Select option by @eN ref + value (for elements).

scroll

[up

down

submit

[--session id] [--form-selector sel] [--submit-selector sel] [--wait-for hint]

Submit current form. Browser-native by default; site-state assist + same-origin rehydrate are explicit opt-ins.

screenshot

[--session id]

Capture screenshot (base64 PNG).

text

[--session id]

Get page text content.

markdown

[--session id]

Get page as Markdown.

cookies

[--session id]

Get page cookies.

eval

[--session id] <expression>

Evaluate JavaScript in the page context (e.g. inspect hidden inputs, read JS state).

back

[--session id]

Browser back.

forward

[--session id]

Browser forward.

sync

[--session id]

Checkpoint capture, keep tab open, queue background index + publish.

close

[--session id]

Final checkpoint, queue background index + publish, close session. End-of-flow.

inspect

[--session id] [--all]

Inspect live capture evidence, candidate endpoints, and next actions for the active session.

sessions

--domain "..." [--limit N]

List recent session logs for a domain (debug).

stats

[--flywheel

--earnings] [--json]

Global flags

Flag

Description

--pretty

Pretty-print JSON output (indented).

--no-auto-start

Don't auto-spawn the local server if it's down.

--raw

Skip post-processing. On fetch: keep HTML/JSON bytes (no markdown). On resolve/execute: skip server-side projection.

--skip-browser

setup: skip browser-engine install.

--opencode auto

global

resolve/execute flags

Flag

Description

--no-execute

Resolve only; return shortlist without auto-executing.

--schema

Show response schema + extraction hints (no data).

--path "data.items[]"

Drill into the result before extract/output.

--extract "field1,alias:deep.path"

Pick specific fields (no piping).

--limit N

Cap array output to N items.

--endpoint ID

Pick a specific endpoint by ID. (Alias: --endpoint-id.)

--dry-run

Preview mutations without applying.

--params '{...}'

Extra params as JSON.

-p key=val

Single param via repeated flag (alternative to --params JSON).

--require-proof

Filter resolve to only endpoints with independently verified proofs.

Sunset timeline

  • v6.14.0 (this release): skill path marked deprecated; loaders should warn.
  • One minor cycle (v6.15.x): critical fixes only on the skill repo.
  • After that: skill repo archived; the README will redirect to the MCP install path.

Help

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card