Websites as APIs: read pages, run site tasks via learned APIs, cloud browser with saved logins.
One address for any MCP client. You sign in at unbrowse.ai once, after adding it.
At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
| Access to | Read | Change |
|---|---|---|
| Unbrowse | Not stated: unbrowse | |
From the sign-in at unbrowse.ai, as the endpoint publishes it. You approve it there.
Odel could not list its tools without signing in.
Every website, even those without an official API or MCP, still rely on a first party API to talk to their backend. Unbrowse calls these website's first party APIs to make agentic browsing 50-100x faster and 95% cheaper than using a browser.
This is the open-source client for the hosted Unbrowse service
(https://unbrowse.ai): the @unbrowse/sdk TypeScript client for its REST API, and the
unbrowse CLI built on it.
Install the agent skill:
npx skills add unbrowse-ai/unbrowse --skill unbrowse
Connect your agent:
claude mcp add --transport http unbrowse https://unbrowse.ai/mcp
Complete OAuth sign-in in your client. From a terminal: npx unbrowse login (OAuth in your browser, nothing to paste), then npx unbrowse run 'top stories on hacker news'.
Install · CLI · MCP · SDK · Troubleshooting
unbrowse learn). Unbrowse compiles the requests into a
one-call capability. Next time is step 2.Passwords stay in the Unbrowse password manager; the CLI never takes one.
More: docs/how-it-works.md · Paper: Internal APIs Are All You Need (arXiv:2604.00694)
unbrowse login [--key ub_live_…] sign in (browser OAuth) or store an API key
unbrowse discover <query> your capabilities, then the public registry
unbrowse run <task…> [--set k=v] run a task from your IP (--from-unbrowse: from Unbrowse); waits for a verified result
unbrowse resume <runId> k=v… answer what the run asked for, on the same run
unbrowse scrape <url> read one page as markdown
unbrowse index <url> teach Unbrowse a site: each flow becomes a tool
unbrowse learn a.har b.har compile two recordings into a capability
unbrowse logins saved logins, masked
unbrowse registry [query] public compiled sites (no account)
All commands: docs/cli.md. Exit codes: 0 ok, 1 error, 2 input required, 3 sign-in or login needed, 4 not verified.
import { Unbrowse } from "@unbrowse/sdk";
const ub = new Unbrowse(); // UNBROWSE_API_KEY
const run = await ub.wait((await ub.run({ task: "top stories on Hacker News", idempotencyKey: crypto.randomUUID() })).runId);
Supported REST methods: docs/sdk.md.
Agents connect to the hosted MCP (https://unbrowse.ai/mcp, see docs/install.md)
and follow skill/SKILL.md. The CLI is the REST alternative. unbrowse mcp runs a local
stdio proxy to the hosted MCP for hosts that need stdio or plain tool names (unbrowse_scrape).
Plugins for Claude Code, Codex, Grok Build, OpenClaw, Hermes and elizaOS bundle the skill and make Unbrowse the host's browser: plugins/. Grok, ChatGPT, Claude, Perplexity, Le Chat and Gemini CLI connect as a custom connector: docs/connect.md.
Check your current account plan and unbrowse usage for quota and pricing.
docs/pricing.md
bun install
bun test packages # SDK route tests + CLI tests against a local stand-in API
bun run typecheck
bun run build # packages/sdk/dist, packages/cli/dist/cli.js (Node 18.17+)
bun run cli help
CI/CD publishes on a version tag: docs/release.md.
What is here and what stays hosted: docs/open-source.md. MIT © Unbrowse AI