OpenCLI Browser Automation CLI
Turn logged-in Chrome workflows and supported websites into commands that people and AI agents can run.
Per-dimension scores and reasoning
Evidence shows: the project accesses the user's logged-in Chrome via a browser bridge extension and local daemon, with a broad permission scope but no explicit least-privilege design; no explicit user confirmation mechanism before commands; data flow (e.g., DOM snapshots, network interception) is documented but not detailed; sensitive data handling (e.g., cookies, login state) is not clearly specified; dependencies are few but no security audit is provided; external effects (e.g., clicks, form fills) are documented but without confirmation; no rollback mechanism; publisher identity is unverified. Deductions: lack of evidence for least privilege, user confirmation, data flow transparency, and sensitive data handling.
Evidence shows: good consistency among README, package.json, CI config, and test files; dependencies are available on npm but version availability not verified; test files show handling of failure scenarios (e.g., skip, retry) but no detailed error message documentation. Deductions: dependency availability unverified, error message documentation incomplete.
Evidence shows: clear target audience (humans and AI agents), diverse scenarios (site adapters, browser automation, CLI hub); capability boundaries documented in README (e.g., supported sites and commands); trigger precision defined via commands and skills; environment fit (Node.js version, browser extension) documented. Deductions: capability boundaries may be incomplete, environment fit details limited.
Evidence shows: clear information architecture (README, docs, skills); detailed install notes (npm, OpenCLIApp, extension); stable naming (commands and skills consistent); rich examples and FAQ; known limitations partially mentioned (e.g., Node.js >=20, browser extension); license is Apache-2.0; version number exists but no changelog; maintenance responsibility unclear. Deductions: missing changelog, unclear maintenance responsibility.
Evidence shows: diverse output formats (table, json, yaml, md, csv) for usability; high marginal value (turning websites into CLI, supporting AI agents); cost-benefit not specified (e.g., resource consumption, performance). Deductions: cost-benefit lacks evidence.
Evidence shows: README claims partially supported by documentation (e.g., command lists, skills); test files provide some verification (e.g., e2e tests); but no separation of facts and inferences. Deductions: insufficient claim traceability, lack of cross-source corroboration, facts and inferences not clearly separated.
- The project requires access to the user's logged-in Chrome, with a broad permission scope; review the browser extension's permission declarations and the local daemon's network behavior.
- No explicit user confirmation mechanism found; AI agents may automatically perform clicks, form fills, etc., so use with caution.
- Dependencies have not been security-audited; check dependency versions and known vulnerabilities.
- Publisher identity is unverified; confirm the source is trustworthy before installation.
What does this agent do, and when should you use it?
OpenCLI is a command-line automation layer for websites, browser sessions, Electron apps, and local tools. Its Browser Bridge Chrome extension and local daemon connect commands to a Chrome or Chromium session, including its existing site logins. The repository ships site adapters and `opencli browser` primitives for agent-driven navigation, DOM inspection, form interaction, extraction, and network-response inspection. Built-in commands can emit table, JSON, YAML, Markdown, or CSV output and use Unix `sysexits.h`-style exit codes for scriptable failure handling. It also supports plugins, user-authored adapters, registered local CLIs, and CDP-based adapters for selected Electron desktop applications.
After installing @jackwener/opencli or OpenCLIApp and the OpenCLI Browser Bridge extension, OpenCLI starts a local daemon when needed. opencli doctor checks browser connectivity, while opencli profile list, profile rename, and profile use manage multiple Chrome profiles. Existing adapters run commands such as opencli hackernews top --limit 5 and opencli bilibili hot -f json; for arbitrary pages, an AI agent can use opencli browser <session> commands including open, state, click, fill, extract, network, and tab. New adapters follow the documented opencli browser recon analyze <url>, recon init <site>/<name>, implementation, and recon verify <site>/<name> flow. Site knowledge is stored under ~/.opencli/sites/<site>/, while private local adapter drafts can be initialized in ~/.opencli/clis/.
- A developer who needs Hacker News headlines in a script can run
opencli hackernews top --limit 5and request JSON or CSV output. - An operator already signed in to Xiaohongshu, Zhihu, LinkedIn, or X can use the relevant adapter for supported searches, reading, publishing, or social actions.
- A Claude Code or Cursor user can install the
opencli-browserskill so an agent can complete forms, click controls, and extract data in that user’s logged-in Chrome. - An engineer automating an internal website can use
opencli-adapter-authorplus browser reconnaissance and verification to create a reusable command. - A team with
gh, Docker, Vercel, or an in-house binary can runopencli external register <name>to expose that tool through the same command-discovery surface. - A user downloading supported media or articles can invoke a site-specific
downloadcommand; Bilibili video downloads additionally requireyt-dlp.
What are this agent's strengths and limitations?
- Combines site adapters, arbitrary-page browser control, Electron/CDP desktop adapters, and local CLI passthrough under the single
openclicommand. - Uses the user’s existing Chrome or Chromium login state through Browser Bridge, avoiding a separate site-login flow for browser-backed work.
opencli browserexposes granular operations for DOM state, network responses, tabs, and form controls, which gives AI agents inspectable browser primitives.- Supports plugins, adapter initialization and verification, persisted site knowledge, and structured output formats for turning an ad-hoc workflow into a reusable command.
- Documents distinct exit codes for empty results, bridge outages, timeouts, authentication requirements, and configuration errors.
- Browser automation depends on Chrome or Chromium, the Browser Bridge extension, and a local daemon; a disconnected or conflicting extension can stop the workflow.
- The npm installation path requires Node.js >= 20, and some capabilities add dependencies, such as
yt-dlpfor Bilibili video downloads. - Many operations depend on the user’s active browser login; expired sessions or Unauthorized responses require logging in again in the browser.
opencli browserrequires an explicit session and involves tab targets, window placement, and tab-lease lifecycle management, adding operational overhead for manual use.- The repository lists many sites and commands, but practical availability can vary with target-site behavior, login state, and adapter maintenance.
How do you install or deploy this agent?
For desktop use, install OpenCLIApp and open it once, then use its System page to install or repair the opencli command. For CLI-only, CI, or server use, install Node.js >= 20, run node --version, then run npm install -g @jackwener/opencli. Install the OpenCLI Browser Bridge extension from the Chrome Web Store, or download the extension archive from Releases and load its unpacked directory in chrome://extensions with Developer mode enabled. Run opencli doctor to verify the connection; for authenticated sites, sign in through the relevant Chrome profile first.
How do you use this agent?
Run opencli list to inspect registered commands, then try opencli hackernews top --limit 5 or opencli bilibili hot -f json. With multiple Chrome profiles, run opencli profile list, then assign and select an alias with opencli profile rename <contextId> work and opencli profile use work. For agent use, install the browser skill with npx skills add jackwener/opencli --skill opencli-browser. Browser commands require an explicit session immediately after browser, for example opencli browser work open <url>; use opencli browser work tab list and --tab <targetId> for a specific tab. Finish interactive work with opencli browser work close to release the session’s tab lease.
How does this agent compare with similar options?
Compared with directly maintaining Playwright scripts and separate login flows, OpenCLI is positioned around reusing an existing logged-in Chrome session and packaging common workflows as adapters behind a unified CLI. It can also connect to remote Chrome or Electron applications through OPENCLI_CDP_ENDPOINT when configured.
FAQ
Do I need to provide website passwords to OpenCLI?
OPENCLI_PROFILE or opencli profile use.Can it work with a site that has no built-in adapter?
opencli browser provides navigation, DOM reading, clicking, filling, extraction, and network inspection. You can also create and verify a reusable site adapter with opencli-adapter-author.What should I check when the browser bridge fails?
opencli doctor and confirm that the Browser Bridge extension is installed and enabled. For an attach failure involving a chrome-extension:// URL, the documentation suggests temporarily disabling other extensions that may interfere.