Files
jackwener__opencli/docs/guide/browser-bridge.md
jakevin 57534cf8b3 feat(daemon): replace 5min idle timeout with long-lived daemon model (#641)
* docs: add daemon lifecycle redesign spec

Replace the aggressive 5-minute idle timeout with a long-lived daemon
model that stays running for hours, reducing restart overhead during
development cycles.

* docs: add daemon lifecycle redesign implementation plan

8-task TDD plan for replacing aggressive 5-minute idle timeout with
long-lived daemon model (4h default, dual-condition exit).

* feat(daemon): add DEFAULT_DAEMON_IDLE_TIMEOUT constant (4 hours)

* feat(daemon): replace fixed 5min timeout with dual-condition idle manager (4h default)

* feat(extension): reduce WS reconnect backoff cap from 60s to 5s

* feat(daemon): improve CLI connection-waiting UX with progress messages and 200ms polling

* feat(daemon): add opencli daemon status/stop/restart commands

* test(daemon): add tests for daemon status/stop commands

* fix(daemon): address code review issues — stale constant, restart robustness, timer cleanup, test coverage

* docs: update daemon documentation for new lifecycle and CLI commands

- troubleshooting.md: replace manual curl/pkill with `opencli daemon status/stop/restart`
- browser-bridge.md (en/zh): add Daemon Lifecycle section
- README.md: add `opencli daemon status` to Quick Start
- README.zh-CN.md: add daemon management commands to tips
2026-03-31 22:17:54 +08:00

2.4 KiB

Browser Bridge Setup

⚠️ Important: Browser commands reuse your Chrome login session. You must be logged into the target website in Chrome before running commands.

OpenCLI connects to your browser through a lightweight Browser Bridge Chrome Extension + micro-daemon (zero config, auto-start).

Extension Installation

  1. Go to the GitHub Releases page and download the latest opencli-extension.zip.
  2. Unzip the file and open chrome://extensions, enable Developer mode (top-right toggle).
  3. Click Load unpacked and select the unzipped folder.

Method 2: Load Unpacked Source (For Developers)

  1. Open chrome://extensions and enable Developer mode.
  2. Click Load unpacked and select the extension/ directory from the repository.

Verification

That's it! The daemon auto-starts when you run any browser command. No tokens, no manual configuration.

opencli doctor            # Check extension + daemon connectivity

How It Works

┌─────────────┐     WebSocket      ┌──────────────┐     Chrome API     ┌─────────┐
│  opencli    │ ◄──────────────► │  micro-daemon │ ◄──────────────► │  Chrome  │
│  (Node.js)  │    localhost:19825  │  (auto-start) │    Extension       │ Browser  │
└─────────────┘                    └──────────────┘                    └─────────┘

The daemon manages the WebSocket connection between your CLI commands and the Chrome extension. The extension executes JavaScript in the context of web pages, with access to the logged-in session.

Daemon Lifecycle

The daemon auto-starts on first browser command and stays alive for 4 hours by default. It exits only when both conditions are met: no CLI requests for the timeout period AND no Chrome extension connected.

opencli daemon status    # Check daemon state (PID, uptime, extension, memory)
opencli daemon stop      # Graceful shutdown
opencli daemon restart   # Stop + restart

Override the timeout via the OPENCLI_DAEMON_TIMEOUT environment variable (milliseconds). Set to 0 to keep the daemon alive indefinitely.