OpenCLI Browser Automation CLI

Turn logged-in Chrome workflows and supported websites into commands that people and AI agents can run.

Stars
★ 31k
Last updated
today
License
Apache-2.0
Primary language
JavaScript

At a glance

How it runs
CLIDesktop appAgent plugin / skill
Works with
Universal · cross-platformClaude CodeChatGPT · Codex (Partial support)
Cost
Free, no paid service needed
Setup effort
Medium · a few setup steps
You'll need
Node.js >= 20Chrome or ChromiumOpenCLI Browser Bridge extensionShell / CLINetwork accessLocal filesystem
Typical use
A developer who needs Hacker News headlines in a script can run opencli hackernews top --limit 5 and request JSON or CSV output.
Not a fit if
  • Teams needing fully offline or air-gapped runs; needs local Chrome and a daemon
  • Firefox or Safari users; browser automation only supports Chrome/Chromium
  • Users unwilling to stay logged in; most commands rely on existing browser sessions

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

  1. A developer who needs Hacker News headlines in a script can run opencli hackernews top --limit 5 and request JSON or CSV output.
  2. An operator already signed in to Xiaohongshu, Zhihu, LinkedIn, or X can use the relevant adapter for supported searches, reading, publishing, or social actions.
  3. A Claude Code or Cursor user can install the opencli-browser skill so an agent can complete forms, click controls, and extract data in that user’s logged-in Chrome.
  4. An engineer automating an internal website can use opencli-adapter-author plus browser reconnaissance and verification to create a reusable command.
  5. A team with gh, Docker, Vercel, or an in-house binary can run opencli external register <name> to expose that tool through the same command-discovery surface.
  6. A user downloading supported media or articles can invoke a site-specific download command; Bilibili video downloads additionally require yt-dlp.

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.

What are this agent's strengths and limitations?

Pros
  • Combines site adapters, arbitrary-page browser control, Electron/CDP desktop adapters, and local CLI passthrough under the single opencli command.
  • Uses the user’s existing Chrome or Chromium login state through Browser Bridge, avoiding a separate site-login flow for browser-backed work.
  • opencli browser exposes 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.
Limitations
  • 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-dlp for 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 browser requires 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 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.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
OpenCLI Browser Automation CLI This agent 49 · Major gaps CLIFree ★ 31k today JavaScript Claude Code
Open Browser 47 · Major gaps CLIFree + model costs ★ 9.6k 7mo ago TypeScript ChatGPT · Claude.ai · OpenAI API · Claude API
Obscura Headless Browser 75 · Good CLIFree ★ 30k 1d ago Rust Claude.ai
Lightpanda Browser 66 · Some gaps CLIFree ★ 41k 1d ago Zig OpenAI API · Claude API

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
49/ 100 5-point scale 2.5 / 5
This review covers the source as of Aug 09, 2026. The project has shipped 5 stable release(s) since, which have not been re-reviewed. The score and verdict describe the reviewed version only. Recent releases ↓
Trust 8/29
Reliability 9/14
Adaptability 12/18
Convention 10/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust8 / 29 · 1.4/5

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.

Reliability9 / 14 · 3.2/5

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.

Adaptability12 / 18 · 3.3/5

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.

Convention10 / 18 · 2.8/5

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.

Effectiveness7 / 13 · 2.7/5

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.

Verifiability3 / 8 · 1.9/5

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.

Risks and how to mitigate them
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • 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.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision 27ba33fcb8ad New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v2.0.2
    Release notes excerpt
    What's Changed * fix(release): verified OIDC publishing for 2.0.2 by @jackwener in https://github.com/jackwener/OpenCLI/pull/2686 Full Changelog: https://github.com/jackwener/OpenCLI/compare/v2.0.1...v2.0.2
    View on GitHub ↗
  2. v2.0.1
    Release notes excerpt
    Includes Chrome extension 1.0.26. Update the extension to receive the navigation fix. Features - Add a validated Douyin single-content detail reader (#2667). Fixes - Avoid duplicate browser navigations during extension tab lease creation, which can cause Chromium's Navigation rejected. error without --trace (#2487, #2679). - Reject native input on hidden pages without replaying the action (#2664). - Wait for complete Ctrip flight captures in the foreground (#2663). - Capture page-owned TikTok profile responses and the current identity (#2662). …
    View on GitHub ↗
  3. v2.0.0 OpenCLI 2.0.0
    Release notes excerpt
    A major release focused on agent experience: a smaller CLI surface, predictable JSON results, native Chrome APIs, and evidence-driven adapter development. Includes Chrome extension 1.0.25. Breaking changes and migration - Browser sessions are explicit options: use opencli browser <command> ... --session research instead of positional session names. …
    View on GitHub ↗

FAQ

Do I need to provide website passwords to OpenCLI?
The documented browser path uses an already logged-in Chrome or Chromium session. Sign in within the target browser profile first; choose among multiple profiles with OPENCLI_PROFILE or opencli profile use.
Can it work with a site that has no built-in adapter?
Yes. 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?
Run 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.
Can I use it in CI or on a server?
The repository documents global npm installation for CLI-only, CI, and server environments, with Node.js >= 20 required. Features that rely on a logged-in browser still require a reachable Chrome or Chromium instance, or a configured CDP endpoint.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents