Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@dokobot/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@dokobot/cli
Connect your browser to AI agents. Free and privacy-first. Powered by Dokobot.
Supports Chrome, Edge, and Brave on macOS, Linux, Windows, and WSL2.
- Free forever. Local mode gives you unlimited reads with no API key, no account, no usage limits.
- Privacy-first. Local mode keeps all data on your machine. Remote mode supports end-to-end encryption so the server never sees your content in plaintext.
- Works with any AI agent. Claude Code, Cursor, Codex, Hermes Agent, OpenClaw, WorkBuddy, Windsurf, or any tool that speaks MCP.
Install
npm i -g @dokobot/cliPrerequisites
Install the Dokobot extension first. The CLI connects to your browser through this extension. Works with Chrome, Edge, and Brave — all support Chrome Web Store extensions.
Quick Start
Local mode (free, unlimited)
dokobot install-bridge # Install native messaging bridge (one-time)
dokobot install-skill # Install skill for your AI agent (one-time)
dokobot read --local https://dokobot.ai/aboutRemote mode (cloud API)
dokobot config # Configure your API key
dokobot install-skill # Install skill for your AI agent (one-time)
dokobot read https://dokobot.ai/about
dokobot search "latest AI news"Commands
read <url>
Read a web page and output clean text.
# Local mode (free, unlimited, no API key needed)
dokobot read --local https://dokobot.ai/about
# Remote mode (via cloud API)
dokobot read https://dokobot.ai/about
# With options
dokobot read --local https://dokobot.ai/about --screens 3 --timeout 30
dokobot read https://dokobot.ai/about --device <id> --format chunks| Option | Description |
|---|---|
--local |
Connect directly to your local browser |
--device <id> |
Target device ID |
--screens <n> |
Number of screens to capture (default: auto) |
--timeout <seconds> |
Read timeout in seconds (default: 60) |
--format <type> |
Response format: text (default) or chunks |
--reuse-tab |
Reuse existing tab instead of opening a new one |
--session-id <id> |
Continue from a previous session |
-o, --output <file> |
Write output to a file instead of stdout |
When a page has more content to scroll, the output includes a session ID. Use --session-id to continue reading.
# Save output to a file
dokobot read --local https://dokobot.ai/about -o page.mddownload images <url>
Download images from a web page through the browser extension. Works for images behind login, private galleries, or pages that require scrolling to lazy-load.
# Local mode — files stream straight to disk, no size limit
dokobot download images --local https://dokobot.ai/about
# Remote mode — images come back encrypted when E2E is enabled
dokobot download images https://dokobot.ai/about -o ./pics
# Filter by dimensions, format, and count
dokobot download images --local https://dokobot.ai/about --min-width 800 --format jpg,png --max 20| Option | Description |
|---|---|
--local |
Connect directly to your local browser |
--device <id> |
Target device ID |
-o, --output <dir> |
Output directory (default: ~/Downloads/dokobot/<timestamp>) |
--screens <n> |
Number of screens to scroll for lazy-loading (default: auto) |
--reuse-tab |
Reuse existing tab matching the URL instead of opening a new one |
--min-width <n> / --max-width <n> |
Filter by image width in px |
--min-height <n> / --max-height <n> |
Filter by image height in px |
--format <list> |
Comma-separated formats (e.g. jpg,png,webp) |
--max <n> |
Maximum number of images to download |
--min-size <size> / --max-size <size> |
Filter by file size (e.g. 500, 10k, 2m) |
--include-bg |
Also collect CSS background-image URLs |
--timeout <seconds> |
Extraction timeout in seconds (default: 90) |
search <query>
Search the web and return results.
dokobot search "dokobot mcp integration"
dokobot search "latest AI news" --num 10| Option | Description |
|---|---|
--num <n> |
Number of results, 1-10 (default: 5) |
install-bridge
Install the native messaging bridge for local mode. This connects your CLI directly to the browser extension without going through the server. Supports Chrome, Edge, and Brave.
dokobot install-bridge # Interactive browser selection
dokobot install-bridge --browser chrome # Install for Chrome only
dokobot install-bridge --browser chrome,edge # Install for multiple browsers
dokobot install-bridge --uninstall # RemoveAfter installing, restart your browser or reload the extension.
WSL2: On Windows Subsystem for Linux, the bridge is installed to the Windows side automatically. The CLI writes a .bat launcher, native messaging manifest, and registry keys so that Windows Chrome/Edge/Brave can communicate with Node.js running inside WSL2.
install-skill
Download and install the Dokobot skill for your AI agent. Supports multi-select.
dokobot install-skill # Interactive agent selection
dokobot install-skill --agent claude-code # Install for one agent
dokobot install-skill --agent claude-code,cursor # Install for multiple agents
dokobot install-skill -o ./my-skills # Custom skills directorySupported agents: antigravity, claude-code (or claude), codebuddy, codex, cursor, hermes (or hermes-agent), openclaw, opencode, qwen-code (or qwen), trae, windsurf, workbuddy.
doko list
List available devices, including local bridges and remote dokos.
dokobot doko listShows local bridges (connected via native messaging) and remote dokos (connected via cloud API) with their online/offline status.
doko close <sessionId>
Close an active read session and release the browser tab.
dokobot doko close <sessionId>
dokobot doko close --local <sessionId>| Option | Description |
|---|---|
--local |
Connect directly to your local browser |
--device <id> |
Target device ID (local mode) |
feedback
Send feedback or report a bug directly from the CLI.
dokobot feedback # Interactive mode
dokobot feedback -t bug -m "Something broke" -e me@example.com # Non-interactive| Option | Description |
|---|---|
-t, --type <type> |
Feedback type: bug, feature, general |
-m, --message <text> |
Feedback message (opens $EDITOR if omitted) |
-e, --email <email> |
Email for follow-up (optional) |
In interactive mode, the CLI prompts you to select a type, opens your editor for the message, and optionally asks for an email. If you have an API key configured, the feedback is linked to your account.
config
View or edit CLI configuration. Supports both interactive editing and non-interactive set/get/unset for scripts and AI agents.
dokobot config show # Show current configuration
dokobot config # Edit configuration interactively
# Non-interactive (script- and agent-friendly)
dokobot config set apiKey <key> # Set API key
dokobot config set serverUrl https://dokobot.ai
dokobot config set encryption <password> # Enable E2E encryption (requires apiKey)
dokobot config get apiKey # Print value to stdout
dokobot config get encryption # "enabled (key version N)" or "disabled"
dokobot config unset apiKey # Remove a field
dokobot config unset encryption # Disable E2E encryptionValid keys: apiKey, serverUrl, encryption.
Exit codes: get exits non-zero when a scalar field is unset; set/unset exit non-zero on errors (unknown key, wrong password, missing apiKey, etc.). Errors go to stderr, values go to stdout — safe for $(dokobot config get serverUrl).
The encryption key is a feature switch: the set value is the password, but only the derived AES key is stored on disk (never the password itself). set encryption requires apiKey to be configured first, because the key derivation needs to fetch the salt from the server.
update
Check for and auto-install CLI updates. Auto-update runs in the background on every CLI invocation (once per 24 hours). New versions take effect on the next run.
dokobot update # Check now and trigger update
dokobot update --status # Show install source, channel, and auto-update state
dokobot update --channel stable # Switch to stable channel (lags latest by ~1 week)
dokobot update --channel latest # Switch to latest channel (default)
dokobot update --disable # Disable background auto-update
dokobot update --enable # Re-enable background auto-updateDisable auto-update entirely with the DOKOBOT_DISABLE_AUTO_UPDATE=1 environment variable.
Auto-update is supported for npm i -g installs. If you installed via pnpm, yarn, bun, or Volta, the CLI will detect the install source and show a manual update command instead.
telemetry
Manage anonymous usage metrics. See the Telemetry section below for what is collected and why.
dokobot telemetry status # Show current state and install id
dokobot telemetry disable # Opt out
dokobot telemetry enable # Opt back in
dokobot telemetry reset-consent # Forget the install id and re-show the notice on next runEnd-to-End Encryption
Remote reads and image downloads support end-to-end encryption. When enabled, page content and image bytes are encrypted on the server and only decrypted locally by your CLI.
dokobot config # Set encryption password during interactive setup
dokobot config set encryption <password> # Or non-interactivelyYou can also set the password via the DOKO_ENCRYPTION_PASSWORD environment variable or the --password flag. The CLI uses scrypt key derivation with AES-256-GCM encryption.
If encryption is configured, remote read results and download images bytes are automatically encrypted and decrypted. The CLI will warn if the server returns unencrypted data when a key is configured, and fail fast if the encryption key doesn't match.
Global Options
| Option | Description |
|---|---|
--api-key <key> |
API key (or set DOKO_API_KEY env) |
--password <password> |
Encryption password (or set DOKO_ENCRYPTION_PASSWORD env) |
--server <url> |
Server URL (default: https://dokobot.ai) |
--verbose |
Enable verbose logging |
Telemetry
This CLI collects anonymous usage metrics to help us diagnose onboarding failures: command success/failure, error classifications, OS / Node / CLI versions, and an anonymous install id. It does not collect URLs, page content, API keys, or anything from config and --version. The first time you run a real command, a one-time notice appears on stderr. Telemetry runs in a detached background process and never blocks the CLI.
Opt out:
dokobot telemetry disable # persistent
export DOKOBOT_TELEMETRY_DISABLED=1 # per-shell or CILicense
MIT