githubinferredactive
opencli
provenance:github:jackwener/opencli
Make Any Website & Tool Your CLI. A universal CLI Hub and AI-native runtime. Transform any website, Electron app, or local binary into a standardized command-line interface. Built for AI Agents to discover, learn, and execute tools seamlessly via a unified AGENT.md integration.
README
# OpenCLI > **Make any website, Electron App, or Local Tool your CLI.** > Zero risk · Reuse Chrome login · AI-powered discovery · Universal CLI Hub [](./README.zh-CN.md) [](https://www.npmjs.com/package/@jackwener/opencli) [](https://nodejs.org) [](./LICENSE) A CLI tool that turns **any website**, **Electron app**, or **local CLI tool** into a command-line interface — Bilibili, Zhihu, 小红书, Twitter/X, Reddit, YouTube, Antigravity, `gh`, `docker`, and [many more](#built-in-commands) — powered by browser session reuse and AI-native discovery. **Built for AI Agents** — Configure an instruction in your `AGENT.md` or `.cursorrules` to run `opencli list` via Bash. The AI will automatically discover and invoke all available tools. **CLI Hub** — Register any local CLI (`opencli register mycli`) so AI agents can discover and call it alongside built-in commands. Auto-installs missing tools via your package manager (e.g. if `gh` isn't installed, `opencli gh ...` runs `brew install gh` first then re-executes seamlessly). **CLI for Electron Apps** — Turn any Electron application into a CLI tool. Recombine, script, and extend apps like Antigravity Ultra from the terminal. AI agents can now control other AI apps natively. --- ## Highlights - **CLI All Electron** — CLI-ify apps like Antigravity Ultra! Now AI can control itself natively. - **Account-safe** — Reuses Chrome's logged-in state; your credentials never leave the browser. - **Anti-detection built-in** — Patches `navigator.webdriver`, stubs `window.chrome`, fakes plugin lists, cleans ChromeDriver/Playwright globals, and strips CDP frames from Error stack traces. Extensive anti-fingerprinting and risk-control evasion measures baked in at every layer. - **AI Agent ready** — `explore` discovers APIs, `synthesize` generates adapters, `cascade` finds auth strategies. - **External CLI Hub** — Discover, auto-install, and passthrough commands to any external CLI (gh, obsidian, docker, etc). Zero setup. - **Self-healing setup** — `opencli doctor` diagnoses and auto-starts the daemon, extension, and live browser connectivity. - **Dynamic Loader** — Simply drop `.ts` or `.yaml` adapters into the `clis/` folder for auto-registration. - **Dual-Engine Architecture** — Supports both YAML declarative data pipelines and robust browser runtime TypeScript injections. ## Why opencli? There are many great browser automation tools. Here's when opencli is the right choice: | Your need | Best tool | Why | |-----------|-----------|-----| | Scheduled data extraction from specific sites | **opencli** | Pre-built adapters, deterministic JSON, zero LLM cost | | AI agent needs reliable site operations | **opencli** | Hundreds of commands, structured output, fast deterministic response | | Explore an unknown website ad-hoc | Browser-Use, Stagehand | LLM-driven general browsing for one-off tasks | | Large-scale web crawling | Crawl4AI, Scrapy | Purpose-built for throughput and scale | | Control desktop Electron apps from terminal | **opencli** | CDP + AppleScript — the only CLI tool that does this | **What makes opencli different:** - **Zero LLM cost** — No tokens consumed at runtime. Run 10,000 times and pay nothing. - **Deterministic** — Same command, same output schema, every time. Pipeable, scriptable, CI-friendly. - **Broad coverage** — 50+ sites across global and Chinese platforms (Bilibili, Zhihu, Xiaohongshu, Reddit, HackerNews, and more), plus desktop Electron apps via CDP. > For a detailed comparison with Browser-Use, Crawl4AI, Firecrawl, and others, see the [Comparison Guide](./docs/comparison.md). --- ## Quick Start ### 1. Install Browser Bridge Extension > OpenCLI connects to your browser through a lightweight **Browser Bridge** Chrome Extension + micro-daemon (zero config, auto-start). 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. ### 2. Install OpenCLI **Install via npm (recommended)** ```bash npm install -g @jackwener/opencli ``` ### 3. Verify & Try ```bash opencli doctor # Check extension + daemon connectivity opencli daemon status # Check daemon state (PID, uptime, memory) ``` **Try it out:** ```bash opencli list # See all commands opencli hackernews top --limit 5 # Public API, no browser needed opencli bilibili hot --limit 5 # Browser command (requires Extension) ``` ### Update ```bash npm install -g @jackwener/opencli@latest ``` ### Install AI Skills OpenCLI provides [skills](./skills/) for AI agents (Claude Code, etc.): ```bash # Install all OpenCLI skills npx skills add jackwener/opencli # Or install specific skills npx skills add jackwener/opencli --skill opencli-usage # Command reference npx skills add jackwener/opencli --skill opencli-explorer # Adapter development guide npx skills add jackwener/opencli --skill opencli-oneshot # Quick command reference ``` --- ### For Developers **Install from source** ```bash git clone git@github.com:jackwener/opencli.git && cd opencli && npm install && npm run build && npm link ``` **Load Source Browser Bridge Extension** 1. Open `chrome://extensions` and enable **Developer mode** (top-right toggle). 2. Click **Load unpacked** and select the `extension/` directory from this repository. --- ## Prerequisites - **Node.js**: >= 20.0.0 (or **Bun** >= 1.0) - **Chrome** running **and logged into the target site** (e.g. bilibili.com, zhihu.com, xiaohongshu.com). > **⚠️ Important**: Browser commands reuse your Chrome login session. You must be logged into the target website in Chrome before running commands. If you get empty data or errors, check your login status first. ## Built-in Commands | Site | Commands | |------|----------| | **xiaohongshu** | `search` `note` `comments` `feed` `user` `download` `publish` `notifications` `creator-notes` `creator-notes-summary` `creator-note-detail` `creator-profile` `creator-stats` | | **bilibili** | `hot` `search` `history` `feed` `ranking` `download` `comments` `dynamic` `favorite` `following` `me` `subtitle` `user-videos` | | **tieba** | `hot` `posts` `search` `read` | | **twitter** | `trending` `search` `timeline` `bookmarks` `post` `download` `profile` `article` `like` `likes` `notifications` `reply` `reply-dm` `thread` `follow` `unfollow` `followers` `following` `block` `unblock` `bookmark` `unbookmark` `delete` `hide-reply` `accept` | | **reddit** | `hot` `frontpage` `popular` `search` `subreddit` `user` `user-posts` `user-comments` `read` `save` `saved` `subscribe` `upvote` `upvoted` `comment` | | **amazon** | `bestsellers` `search` `product` `offer` `discussion` | | **gemini** | `new` `ask` `image` | | **notebooklm** | `status` `list` `open` `select` `current` `get` `metadata` `source-list` `source-get` `source-fulltext` `source-guide` `history` `note-list` `notes-list` `notes-get` `summary` | | **spotify** | `auth` `status` `play` `pause` `next` `prev` `volume` `search` `queue` `shuffle` `repeat` | 66+ adapters in total — **[→ see all supported sites & commands](./docs/adapters/index.md)** ## CLI Hub OpenCLI acts as a universal hub for your existing command-line tools — unified discovery, pure passthrough execution, and auto-install (if a tool isn't installed, OpenCLI runs `brew install <tool>` automatically before re-running the command). | External CLI | Description | Example | |--------------|-------------|---------| | **gh** | GitHub CLI | `opencli gh pr list --limit 5` | [truncated…]
PUBLIC HISTORY
First discoveredMar 21, 2026
IDENTITY
inferred
Identity inferred from code signals. No PROVENANCE.yml found.
Is this yours? Claim it →METADATA
platformgithub
first seenMar 14, 2026
last updatedMar 21, 2026
last crawled27 days ago
version—
README BADGE
Add to your README:
