JSPM

  • Created
  • Published
  • Downloads 1587
  • Score
    100M100P100Q147969F
  • License MIT

Dokobot CLI - Connect your browser to AI agents

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. Arc is supported on macOS, 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/cli

    Prerequisites

    Install the Dokobot extension first. The CLI connects to your browser through this extension. Works with Chrome, Edge, Brave, and Arc — all support Chrome Web Store extensions.

    Quick Start

    Local mode (free, unlimited)

    dokobot install-bridge    # Install native messaging bridge (one-time)
    dokobot install-skill --id <skillId>  # Install a skill (get ID from https://dokobot.ai/skill)
    dokobot read --local https://dokobot.ai/about

    Remote mode (cloud API)

    dokobot config            # Configure your API key
    dokobot install-skill --id <skillId>  # Install a skill (get ID from https://dokobot.ai/skill)
    dokobot read https://dokobot.ai/about
    dokobot search "latest AI news"

    Running under Codex (or other sandboxed agents)

    Codex executes shell commands inside a sandbox by default. dokobot needs to talk to a local browser bridge over a Unix socket, which the sandbox blocks — you'll see errors like No local bridge running or Bridge process not responding even though the bridge is actually up.

    dokobot install-bridge writes the required rule to ~/.codex/rules/default.rules for you when it detects an existing ~/.codex/ directory. dokobot uninstall-bridge removes the rule once the last bridge is uninstalled.

    If you only use remote mode (no install-bridge), or if you're driving dokobot from Codex without going through install-bridge, add this manually and restart Codex:

    prefix_rule(
      pattern = ["dokobot"],
      decision = "allow",
      justification = "Dokobot CLI runs outside the Codex sandbox.",
    )

    See the Codex rules documentation for details. Other sandboxed agents have similar mechanisms; check their docs.

    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.

    If the target page appears to be blocked by Cloudflare, the CLI prints a warning so you know the returned text may not be the real page content.

    # Save output to a file
    dokobot read --local https://dokobot.ai/about -o page.md

    download 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.

    Requires the Dokobot browser extension v0.2.0 or later.

    # 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)

    screenshot <url>

    Capture a full-page (scrolling) screenshot via the browser extension. Output is JPEG.

    Requires the Dokobot browser extension v0.3.0 or later.

    # Local mode — file is written directly to disk
    dokobot screenshot --local https://dokobot.ai/about -o page.jpg
    
    # Remote mode — bytes come back encrypted when E2E is enabled
    dokobot screenshot https://dokobot.ai/about -o page.jpg
    
    # Cap how far down the page to capture (default: 20 screens)
    dokobot screenshot --local https://en.wikipedia.org/wiki/Anthropic --max-screens 3 -o top3.jpg
    Option Description
    --local Connect directly to your local browser
    --device <id> Target device ID
    -o, --output <file> Output file path (default: ~/Downloads/dokobot/<timestamp>/screenshot.jpg)
    --max-screens <n> Maximum number of screens to capture (default: 20)
    --reuse-tab Reuse existing tab matching the URL instead of opening a new one
    --timeout <seconds> Screenshot timeout in seconds (default: 90)

    The screenshot uses Chrome DevTools Protocol to capture beyond the viewport, so the browser tab does not need to be focused or visible. Dokobot's own overlays and popup iframe are hidden during capture.

    --max-screens is also a hard upper bound — the capture is always clipped to this many viewports, never beyond. This protects Chrome from running out of memory on infinite-scroll feeds (X/Twitter, Threads, old reddit) or runaway SPAs that report a content height of hundreds of thousands of pixels. If the page is taller than the cap and you didn't specify --max-screens explicitly, the CLI prints a one-line warning to stderr suggesting a larger value.

    stdout is JSON: { page: { url, title, ... }, image: { url: "file://...", filename, size, contentType, width, height, pageHeight, truncated? } }.

    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, Brave, and Arc.

    dokobot install-bridge                    # Interactive single-browser selection
    dokobot install-bridge --browser chrome   # Install for Chrome only
    dokobot install-bridge --browser arc      # Install for Arc only

    install-bridge installs one browser at a time. After writing the native messaging files, it waits for the browser extension to connect:

    1. Make sure Dokobot is installed from https://dokobot.ai/install.
    2. Restart the selected browser, or reload the Dokobot extension.

    If activation does not complete, send feedback at https://dokobot.ai/feedback.

    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/Arc can communicate with Node.js running inside WSL2.

    uninstall-bridge

    Remove the native messaging bridge installation.

    dokobot uninstall-bridge                  # Interactive single-browser selection
    dokobot uninstall-bridge --browser chrome # Remove bridge from Chrome only

    uninstall-bridge removes one browser at a time. After uninstalling, restart the selected browser or reload the Dokobot extension.

    install-skill

    Install a skill from the Skill Gallery for your AI agent. Browse the gallery to find skills and copy their IDs.

    Before installing a skill, complete the Dokobot setup guide: https://dokobot.ai/guide

    dokobot install-skill --id <skillId>               # Install a specific skill (get ID from the Skill Gallery)
    dokobot install-skill --id <skillId> --agent claude-code  # Install for a specific agent
    dokobot install-skill --id <skillId> -o ./my-skills       # Custom skills directory
    Option Description
    --agent <name> Target agent(s), comma-separated
    --id <skillId> Install a specific skill by its ID from the skill gallery
    -o, --output <path> Custom skills directory

    Supported agents: antigravity, claude-code (or claude), codebuddy, codex, cursor, hermes (or hermes-agent), openclaw, opencode, qwen-code (or qwen), trae, windsurf, workbuddy.

    uninstall-skill

    Remove an installed skill by its ID from all detected agents.

    dokobot uninstall-skill --id <skillId>
    Option Description
    --id <skillId> (required) The skill ID to uninstall

    doko list

    List available devices, including local bridges and remote dokos.

    dokobot doko list

    Shows local bridges (connected via native messaging) and remote dokos (connected via cloud API) with their online/offline status. When available, each entry also includes the browser and extension version.

    close <sessionId>

    Close an active read session and release the browser tab. The CLI auto-routes: local bridge if one is running, otherwise the remote API.

    dokobot close <sessionId>
    Option Description
    --device <id> Target device ID (when multiple local bridges run)

    Legacy aliases dokobot doko close <sid> and dokobot doko close-session <sid> remain available.

    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 encryption

    Valid 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-update

    Disable 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 run

    End-to-End Encryption

    Remote reads, image downloads, and screenshots support end-to-end encryption. When enabled, page content and binary 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-interactively

    You 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, download images bytes, and screenshot 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 CI

    License

    MIT