Local CLI (stealth-cli)
The same Camoufox engine on your own machine — a CLI, a Node SDK, a background daemon, an HTTP server and an MCP server.
What it is
stealth-cli is the browser component the cloud platform runs, published on npm for local use. It launches Camoufox on your machine: browse, search, screenshot, extract and crawl from the terminal; drive it from Node; keep a daemon warm; expose it as an HTTP API or as an MCP server to a coding assistant. It talks to no cloud — nothing here needs a project API key.
npm install -g stealth-clinpx camoufox-js fetch # downloads the Camoufox browser onceNode ≥ 20.
Commands
| Command | What it does |
|---|---|
stealth browse <url> | Visit a page and print it — -f text, json, snapshot (the accessibility tree with refs) or markdown |
stealth screenshot <url> -o page.png | PNG or JPEG, full page or viewport; --annotate labels every interactive element with its ref |
stealth search <engine> <query> | Search across 14 engines with anti-detection (google, duckduckgo, youtube, github, …) |
stealth extract <url> | Links, images, meta, headings, CSS selectors |
stealth crawl <url> | Recursive crawl with depth, filter and delay control |
stealth open [url] | A headed browser for a human sign-in; exits when the windows close |
stealth interactive | A stdin REPL: goto, click, type, eval, … |
stealth pdf <url>, batch <file>, monitor <url>, fingerprint | PDF, batch, change monitoring, fingerprint check |
stealth daemon start|stop|status | A background browser: ~1 s per command instead of ~6 s |
stealth profile, proxy, config | Persistent identities, a proxy pool with rotation and health checks, global defaults |
stealth serve | An HTTP API with bearer-token auth |
stealth mcp | An MCP server |
stealth browse https://example.com -f markdownstealth screenshot https://example.com -o page.png --annotatestealth search google "web scraping tools" -f jsonstealth daemon start && stealth browse https://example.comMCP server
Add stealth browsing to Claude Desktop, Cursor or any MCP client:
{ "mcpServers": { "stealth": { "command": "stealth", "args": ["mcp"] } }}This is the local engine as an MCP server, not the cloud platform: it runs Camoufox on the machine the client runs on.
Node SDK
import { launchBrowser, closeBrowser, navigate, getMarkdown, takeScreenshot } from 'stealth-cli'; const handle = await launchBrowser({ profile: 'work', humanize: true }); // `stealth profile create work` firsttry { await navigate(handle, 'https://example.com'); const { text } = await getMarkdown(handle, { maxChars: 20000 }); await takeScreenshot(handle, { path: 'labelled.png', annotate: true });} finally { await closeBrowser(handle);}The local SDK and the cloud SDKs share the observation and action vocabulary — refs, the tree, the same action names — so code written against one reads naturally against the other.
Full reference
The package README on npm covers every command, option, the HTTP server's endpoints, the MCP tools, profiles, sessions, proxies, humanize mode and error handling: [stealth-cli on npm](https://www.npmjs.com/package/stealth-cli).
