jackwener / OpenCLI
git clone https://github.com/jackwener/OpenCLI.git
v2.0.2 · 2d ago
Make Any Website into CLI & Use your logged-in browser by AI agent.
+11
stars, 24h · #1,326
+~77
stars, 7 days · #1,652
+~330
stars, 30 days · #1,606
31k
★ total · +0% this week
3.0k
forks · 278 open issues
Star history (as recorded here)
LanguageJavaScript
LicenseApache-2.0
Created2026-03-14 (7mo ago)
Last push2d ago
Watchers66
OwnerUser
GitHub topics
Links
- GitHub: github.com/jackwener/OpenCLI
- Homepage: https://opencli.info/
- Releases · Issues · Hacker News mentions
README excerpt
# OpenCLI
> **Convert any website into a CLI & run Browser Use on your logged-in Chrome.**
> Turn websites and browser sessions into deterministic interfaces for humans and AI agents.
> Or run Browser Use against any page — navigate, fill forms, click, extract, automate.
OpenCLI is a **general-purpose browser automation CLI for AI agents** and an **agent-browser alternative**. Navigate, inspect, click, fill forms, extract, and screenshot websites without a site adapter. Built-in adapters add reusable, deterministic site commands. See OpenCLI vs agent-browser and migration.
OpenCLI gives you one surface for three different kinds of automation:
- **Use built-in adapters** for sites like Bilibili, Zhihu, Xiaohongshu, Reddit, HackerNews, Twitter/X, and many more.
- **Let AI Agents operate any website** — install the `opencli-browser` skill in your AI agent (Claude Code, Cursor, etc.), and it can navigate, click, type/fill, extract, and inspect any page through your logged-in browser via `opencli browser` primitives.
- **Write new adapters** end-to-end with `opencli browser` + the `opencli-adapter-author` skill, which guides from first recon through field decoding, code, and `opencli adapter test`.
## Agent command contract
Commands default to JSON: `{ "ok": true, "data": ... }`; failures return
`{ "ok": false, "error": { "code": "...", "message": "...", "hint": "..." } }`
on stdout with a nonzero exit code. Logs use stderr. Explicit human formats,
help, version and completion retain their own formats; browser follow modes use JSON Lines.
[code]
`list` returns compact, paginated capabilities (`commands`, `total`, `nextOffset`);
read arguments with ` --help -f json`. Page scope is `--session`, native
Chrome calls need no session. Adapter authoring is grouped under `adapter init|check|test`.
`state --diagnostics` and `network --static` replace `analyze` and `discover`.
This changes CLI syntax and JSON output. JS adapters keep `cli({...})`,
`func(args)` and `func(page, args)`; adapter `defaultFormat` no longer changes the CLI default.
## Quick Start
### 1. Install OpenCLI
For desktop use, start with **OpenCLIApp**. It bundles the OpenCLI runtime,
keeps the managed `opencli` command installed, and gives you a system tray UI
for setup, diagnostics, updates, browser-login keepalive, and Web → Markdown.
**Option A — OpenCLIApp (recommended for macOS / Windows):**
Download the latest app from , install it, then
open the app once and use the System page to install or repair the `opencli`
command.
**Option B — npm global install (CLI-only / CI / servers):**
OpenCLI requires **Node.js >= 20.18.1** when installed through npm.
[code]
### 2. Install the Browser Bridge Extension
OpenCLI connects to Chrome/Chromium through a lightweight Browser Bridge extension plus a small local daemon. The daemon auto-starts when needed.
**Option A — Chrome Web Store (recommended):**
Install **OpenCLI** from the Chrome Web Store.
**Option B — Manual install:**
1. Download the l