Your browser, but make it a Unix pipe
OpenCLI turns logged-in websites into deterministic commands that both humans and AI agents can run from a terminal.

What it does
OpenCLI is a Node.js CLI that wraps websites, browser sessions, Electron apps, and local binaries behind a single command surface. It ships with built-in adapters for 100+ sites—Bilibili, Zhihu, Reddit, LinkedIn, Twitter/X, Amazon, and others—and lets you register your own. The twist: it operates through your actual logged-in Chrome via a browser extension and local daemon, so it sees what you see, cookies and all.
The interesting bit
The project is explicitly designed for AI agents, not just human terminal jockeys. Install “skills” into Claude Code or Cursor and the agent navigates, clicks, fills forms, and extracts data using your real browser session—no headless puppet, no credential re-entry. The adapter-author skill even guides the agent through recon, endpoint discovery, and verification to automate the automation.
Key highlights
- Built-in adapters for 100+ sites including Chinese platforms (Xiaohongshu, Bilibili, Zhihu) and Western ones (Hacker News, Reddit, Twitter, LinkedIn)
- Browser bridge extension connects to your logged-in Chrome/Chromium; supports multiple named profiles
- AI agent skills for ad-hoc browser control, adapter authoring, sitemap recording, and auto-repair of broken adapters
- Also wraps local CLIs (
gh,docker,ntnfor Notion) and Electron apps (Cursor, ChatGPT, Codex) - Plugin system supports private git repos, local file installs, and third-party GitHub repos
Caveats
- Requires Node.js ≥ 20 and a Chrome extension install; not a standalone headless solution
- Browser commands need explicit session management (
opencli browser <session> ...) which adds friction for casual human use - README notes some skills are designed “to be used by AI Agents — not run manually”
Verdict
Worth a look if you want AI agents to operate websites through your real browser session without rebuilding authentication. Less compelling if you just need simple scraping—this is more browser remote control than HTTP client.