mirror of
https://github.com/jackwener/OpenCLI.git
synced 2026-09-14 18:25:42 +08:00
57534cf8b3
* 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
50 lines
2.4 KiB
Markdown
50 lines
2.4 KiB
Markdown
# 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)
|
|
|
|
1. Go to the GitHub [Releases page](https://github.com/jackwener/opencli/releases) 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.
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
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.
|