Everything your agents need to run.
Every capability below ships in the current open-source build. Roadmap items are labeled separately, at the bottom — nothing here is aspirational.
Sessions & CDP
Warm-pooled cloud browsers your code connects to like a local one.
Sessions are claimed from a pre-warmed pool, not cold-launched.
Point unmodified Playwright or Puppeteer at the returned cdp_url.
Connect with just an API key; a session is created for you.
Watch a session render in an embeddable frame.
OS-level control
Drive the browser over plain REST — no client library required.
Navigate the active tab.
By coordinates or CSS selector.
Keyboard and wheel input mapped to raw CDP.
Binary PNG of the current page.
perform-web-task (agentic)
Hand the browser a goal and let an LLM drive it to completion.
Block for the result or poll a workflow to completion.
Subscribe to /ws and watch each agent step as it happens.
Return JSON shaped by your output schema.
Accessibility-style page snapshot → model → action → repeat.
Any model, any auth
Bring your own model and your own credentials — three ways.
One provider registry, four backends.
Set a provider key and go.
Drive an already-logged-in agent CLI — no raw key needed.
Uses whichever provider has a credential available.
Native MCP server
Expose the browser as tools to any Model Context Protocol client.
Read pages as accessibility snapshots.
Full interaction surface.
Claude, Cursor, or your own agent.
Every tool call drives a live cloud browser.
Drop-in compatibility
Your existing Anchor code works by swapping one base URL.
Exact auth header, replicated.
Wire-shaped responses SDKs expect.
CDP WebSocket where the SDK reconstructs it.
TS/Python Anchor SDKs work unchanged.
Profiles & extensions
Persist browser state across sessions and load your own extensions.
/v1/profiles — a persistent user-data-dir reused across sessions.
Cookies, localStorage, and cache persist between runs.
/v1/extensions — multipart ZIP (≤50MB), manifest parsed.
Reference extensions by id; they load via --load-extension.
Session recordings
Every session captured to a downloadable MP4.
On by default; frames captured over CDP throughout the session.
/v1/sessions/{id}/recordings/primary/fetch returns video/mp4.
Stop and restart capture mid-session.
Duration, size, and file link per recording.
Webhooks & signatures
Signed, retried event delivery for session and task lifecycle.
session.*, task.*, batch.*, intervention.*, identity.* .
Anchor-Signature: t=…,v1=… over v0:ts:body — verify every delivery.
Six retries with backoff; a queryable delivery log.
SSRF-guarded targets; secret shown once.
Batch & async provisioning
Spin up many sessions at once, or provision without blocking.
/v1/batch-sessions — 1 to 1,000 sessions from one config.
Poll batch status, cancel, or retry failed sessions.
/v1/sessions/async returns immediately with a request id.
queued → provisioning → configuring → ready.
Tasks platform
Save reusable automations and run them by id — v1 and v2.
/v2/tasks/{id}/run with input_params; poll runs/{id}/status.
Full /v1/task surface: versions, drafts, deploy, executions.
Tasks drive the agent loop with your chosen model.
Runs return JSON you can consume downstream.
Stealth · proxy · captcha
Route through proxies, reduce automation tells, and hook a solver.
Anchor or custom (http/https/socks5) via session.proxy.
Fingerprint patch injected over CDP; automation flags off.
Pluggable Solver interface with Captcha.lifecycle events.
captcha requires proxy → 400; stealth requires anchor proxy.
Warm-pool autoscaling
The warm pool grows with demand and decays when idle.
Warm target tracks recent acquire rate, clamped to [min,max].
Batches pre-provision the pool ahead of the spike.
/v1/pool/metrics exposes live warm/target/active counts.
/v1/billing returns the Anchor billing shape.
OS-level control
Drive the whole desktop, not just the page. See the dedicated page →
mouse/keyboard/scroll via xdotool on a per-session Xvfb — reaches native dialogs, chrome, <select> popups.
mouse down/up, drag-and-drop, keyboard/shortcut, hover, select_option, wait_for.
copy/paste via xclip; multipart file upload attached to inputs.
Real bidirectional VNC framebuffer — a human drives the session live.
Next: deeper OS-level control.
The feature set above ships today. Next up is driving the whole desktop, not just the page — real OS-level input beyond CDP. Planned, not yet in the build.
Star it. Run it. Ship agents on it.
Open-source and free to self-host. Managed cloud is coming.