Skip to main content

agentcloak

Agent-native stealth browser -- see, interact, and automate the web.

You need a browser. Your agents do too.

PyPI Python License Last commit

English | 中文

Highlights

  • Pages as structured text -- every page becomes an accessibility tree with [N] indexed elements; agents act on refs or a unique CSS selector for known controls
  • CLI + Skill on-demand loading -- agents call cloak via Bash; the Skill lazy-loads at ~300 tokens (vs ~6,000 for MCP tool definitions)
  • CloakBrowser built-in stealth -- 57 C++ patches on Chromium for realistic browser fingerprinting; agents browse without being misidentified as bots
  • Session reuse -- save/restore login profiles (cookies + localStorage auto-persisted across launches, so SPAs that stash auth tokens client-side stay logged in) + RemoteBridge to operate your real Chrome browser
  • Network config -- proxy (SOCKS5/HTTP), DNS-over-HTTPS control, and custom Chromium args via cloak config set
  • Workspace-aware sessions -- one daemon serves every Git worktree or plain directory with its own pages, queue and refs; login stays shared by default, with opt-in per-workspace storage
  • Evidence you can trust -- screenshots report URL, title, viewport, DPR and pixel size; --expect-url / --expect-path reject silent redirects; --annotate labels [N] refs on the image; record captures WebM or frame archives
  • Realistic input and emulation -- timed drag with per-step samples, coordinate hover, key aliases, live viewport/DPR changes, color-scheme and reduced-motion emulation (touch/pointer needs a headed browser)
  • Recoverable by design -- bounded per-session queues, session close --force for frozen pages, request hold/release, pending-request observation, and one locked daemon per state directory
  • Spells + API capture -- wrap common site operations as one-liners; capture traffic, analyze patterns, generate spells automatically
  • Web reverse engineering -- CDP-native debugger, network route interception, WebSocket/SSE capture, init-script hooks, and source-map decode -- one tool covers 90%+ of browser RE
  • MCP server with 43 tools -- full compatibility with MCP-native clients (Claude Code, Codex, Cursor, etc.)

Installation

Requires Python 3.12+

Manual installation
# Recommended -- isolated environment, no PEP 668 hassle
uv tool install agentcloak     # or: pipx install agentcloak

cloak skill install            # installs the Skill bundle to your agent platform
cloak doctor --fix             # verify environment + download CloakBrowser

Why uv tool / pipx? Modern Ubuntu/Debian and many other distros block pip install outside a venv (PEP 668 "externally-managed-environment"). uv tool install and pipx install each create a dedicated isolated environment for the package, so the install just works.

If you'd rather stick with pip, use a venv first:

python -m venv .venv && source .venv/bin/activate
pip install agentcloak

Everything is included: CLI (agentcloak and cloak shorthand), MCP server (agentcloak-mcp), CloakBrowser stealth backend, and httpcloak TLS fingerprint proxy. The patched Chromium binary (~200 MB) downloads automatically on first use to ~/.cloakbrowser/.

System dependencies (headless Linux only):

CloakBrowser runs in headless mode by default (v0.2.0+) — no extra dependencies needed. If you opt into headed mode (headless = false for stronger anti-detection) on a server without a display, agentcloak auto-starts Xvfb:

sudo apt-get install -y xvfb

Desktop Linux, macOS, and Windows need no extra dependencies.

Quick Start

The daemon starts automatically on the first command.

# Navigate and get the page snapshot in one call
cloak navigate "https://example.com" --snap

stdout is the answer itself — text-first, no JSON parsing required:

https://example.com/ | Example Domain

# Example Domain | https://example.com/ | 8 nodes (1 interactive) | seq=1
  heading "Example Domain" level=1
  [1] link "Learn more" href="https://iana.org/domains/example"
# Interact using [N] refs (positional or --index N) -- --snap returns a fresh snapshot
cloak fill 3 "search query" --snap
cloak press Enter

# Take a screenshot (stdout = file path)
cloak screenshot

Errors go to stderr with a recovery hint and a non-zero exit code:

Error [element_not_found]: Element [99] not in selector_map (1 entries)
  -> run 'snapshot' to refresh the selector_map, or re-snapshot if the page changed

Need the legacy JSON envelope for scripts? Pass --json (or set AGENTCLOAK_OUTPUT=json):

cloak --json snapshot | jq -r '.data.tree_text'

The --snap flag on navigate and action commands keeps the observe-act loop tight -- no separate snapshot call needed between steps.

See the full Quick Start tutorial for login persistence, profile management, and API capture.

Usage Modes

Skill + CLI (recommended) MCP Server
How it works Skill auto-loads when browser is needed; agent calls cloak via Bash agentcloak-mcp exposes 43 tools over stdio
Context cost ~300 tokens (on-demand) ~6,000 tokens (persistent)
Best for Claude Code, any Bash-capable agent MCP-native clients without Bash

Skill + CLI -- three commands. The cloak skill install subcommand copies the bundle from the wheel and symlinks every detected agent platform to a single canonical source under ~/.agentcloak/skills/agentcloak/:

# 1. Install agentcloak (CLI + daemon + stealth browser)
uv tool install agentcloak    # or: pipx install agentcloak (or pip install inside a venv)

# 2. Verify the environment (downloads CloakBrowser binary on first run)
cloak doctor --fix

# 3. Install the Skill bundle (interactive menu picks your agent platform)
cloak skill install

Non-interactive variants for scripted setup:

cloak skill install --platform claude         # ~/.claude/skills/
cloak skill install --platform codex          # ~/.codex/skills/
cloak skill install --platform all            # every detected platform
cloak skill install --path /custom/skills/dir # arbitrary location
Agent platform Skill location
Claude Code ~/.claude/skills/agentcloak/
Codex ~/.codex/skills/agentcloak/
Cursor .cursor/skills/agentcloak/
OpenCode .opencode/skills/agentcloak/
Other Use --path to point at your agent's skill directory

Run cloak skill update after upgrading agentcloak to refresh the bundle (symlinked installs pick up changes automatically — copy-installs need a re-run). cloak skill uninstall removes every link the installer created.

See the Skill installation guide for the offline curl+tar alternative and Windows notes.

MCP Server -- one-command setup for Claude Code:

claude mcp add agentcloak -- agentcloak-mcp
Other MCP clients (Codex, Cursor, uvx)

Add to .codex/mcp.json or .cursor/mcp.json:

{
  "mcpServers": {
    "agentcloak": {
      "command": "agentcloak-mcp"
    }
  }
}

Or run without installing via uvx:

{
  "mcpServers": {
    "agentcloak": {
      "command": "uvx",
      "args": ["agentcloak[mcp]"]
    }
  }
}

See the full MCP setup guide for details.

Browser Backends

Backend Stealth Use case
CloakBrowser (default) 57 C++ patches, fingerprint / JS-challenge resistant Most sites, anti-bot protected pages
Playwright Standard Chromium Development, testing, no stealth needed
RemoteBridge (experimental) Real browser fingerprint Operate your own Chrome on another machine

See the backends guide for configuration details and trade-offs.

Configuration

Set AGENTCLOAK_HOME to isolate the full state directory (config, profiles and runtime records). Each directory has one daemon owner; use a distinct AGENTCLOAK_PORT for a parallel instance. See the configuration reference.

cloak config list                                       # all settings with sources
cloak config set browser.proxy "socks5://host:1080"     # set a value
cloak config get browser.proxy                          # read a value
cloak config add browser.extra_args "--lang=ja-JP"      # append to a list
cloak config unset browser.proxy                        # reset to default

Key network settings:

# ~/.agentcloak/config.toml
[browser]
proxy = "socks5://user:pass@host:1080"   # upstream proxy (SOCKS5/HTTP)
dns_over_https = false                    # default: disabled, respects system DNS
extra_args = ["--disable-background-networking"]

All settings also accept environment variables (AGENTCLOAK_PROXY, AGENTCLOAK_DNS_OVER_HTTPS, AGENTCLOAK_EXTRA_ARGS). Per-profile overrides can live at ~/.agentcloak/profiles/<name>/config.toml (same schema, only the fields you set — loaded when that profile is launched). See the config reference for the full list.

Architecture

graph TD
    subgraph Surface["Surface Layer"]
        Skill["Skill + CLI<br/>~300 tokens"]
        MCP["MCP Server<br/>43 tools"]
    end

    subgraph Engine["Engine"]
        Daemon["Daemon<br/>FastAPI + uvicorn + seq counter"]
    end

    subgraph Backends["Browser Backends"]
        Cloak["CloakBrowser<br/>stealth default"]
        PW["Playwright<br/>fallback"]
        Bridge["RemoteBridge<br/>real Chrome"]
    end

    Skill --> Daemon
    MCP --> Daemon
    Daemon --> Cloak
    Daemon --> PW
    Daemon --> Bridge

All backends extend a unified BrowserContextBase ABC. The base owns ~900 lines of shared behaviour (action dispatch, batch, dialog, self-healing); subclasses only implement 45 atomic operations. Layer isolation is enforced: CLI cannot import browser internals, daemon cannot import CLI, backends import neither.

See the architecture docs for a deeper walkthrough.

Documentation

Topic Link
Installation docs/en/getting-started/installation.md
Quick Start tutorial docs/en/getting-started/quickstart.md
CLI reference docs/en/reference/cli.md
MCP tools reference docs/en/reference/mcp.md
Configuration docs/en/reference/config.md
Platform support docs/en/reference/platform-support.md
Browser backends docs/en/guides/backends.md
MCP setup docs/en/guides/mcp-setup.md
Architecture docs/en/explanation/architecture.md

Security

For vulnerability reports, see SECURITY.md.

Contributing

Contributions are welcome. See CONTRIBUTING.md for development setup, code style, and PR guidelines.

Acknowledgments

Built on CloakBrowser (stealth Chromium) and httpcloak (TLS fingerprint proxy).

Design informed by bb-browser, browser-use, OpenCLI, GenericAgent, pinchtab, open-codex-computer-use, and Scrapling.

License

MIT

Metadata

Release files for agentcloak 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agentcloak 0.4.0
File Size Uploaded
agentcloak-0.4.0.tar.gz 954.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agentcloak 0.4.0
File Interpreter ABI Platform
agentcloak-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / agentcloak-0.4.0.tar.gz

Download URL agentcloak-0.4.0.tar.gz
Size 954.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0c02dbfe75bbc9eef51f2cb318fdcda96b96a24feeb133a50462e812a2930d18
BLAKE2b-256 checksum
How to use checksums
bae49ab48f5baf4b6007f38f4c0333f1768ea4a8bb3aaad326af538d66067ea1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

Release files / agentcloak-0.4.0-py3-none-any.whl

Download URL agentcloak-0.4.0-py3-none-any.whl
Size 566.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a2d4a947ec0b3791fc95f98bab5442ec25d9e1af5028945a5eb5efc722a25147
BLAKE2b-256 checksum
How to use checksums
33621b29157aceff5117d8b422ec7fdffa7649a460a1e68512e8bcfed41a510a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page