* 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
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
Method 1: Download Pre-built Release (Recommended)
- Go to the GitHub Releases page and download the latest
opencli-extension.zip. - Unzip the file and open
chrome://extensions, enable Developer mode (top-right toggle). - Click Load unpacked and select the unzipped folder.
Method 2: Load Unpacked Source (For Developers)
- Open
chrome://extensionsand enable Developer mode. - 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.