Skip to content

Clearner1/opencli

 
 

Repository files navigation

OpenCLI

Make any website your CLI.
Zero risk · Reuse Chrome login · AI-powered discovery

中文文档

npm Node.js Version License

A CLI tool that turns any website into a command-line interface — bilibili, zhihu, xiaohongshu, twitter, reddit, and many more — powered by browser session reuse and AI-native discovery.


Table of Contents


Highlights

  • Account-safe — Reuses Chrome's logged-in state; your credentials never leave the browser.
  • AI Agent readyexplore discovers APIs, synthesize generates adapters, cascade finds auth strategies.
  • 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.

Prerequisites

  • Node.js: >= 18.0.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.

OpenCLI connects to your browser through the Playwright MCP Bridge extension.

Playwright MCP Bridge Extension Setup

  1. Install Playwright MCP Bridge extension in Chrome.
  2. Run opencli setup — it auto-discovers your token and lets you choose which tools to configure:
opencli setup

The interactive TUI will:

  • 🔍 Auto-discover PLAYWRIGHT_MCP_EXTENSION_TOKEN from Chrome (no manual copy needed)
  • ☑️ Show all detected tools (Codex, Cursor, Claude Code, Gemini CLI, etc.)
  • ✏️ Update only the files you select (Space to toggle, Enter to confirm)
Manual setup (alternative)

Add token to your MCP client config (e.g. Claude/Cursor):

{ "mcpServers": { "playwright": { "command": "npx", "args": ["-y", "@playwright/mcp@latest", "--extension"], "env": { "PLAYWRIGHT_MCP_EXTENSION_TOKEN": "<your-token-here>" } } } }

Export in shell (e.g. ~/.zshrc):

export PLAYWRIGHT_MCP_EXTENSION_TOKEN="<your-token-here>"

Verify with opencli doctor — shows colored status for all config locations:

opencli doctor

Quick Start

Install via npm (recommended)

npm install -g @jackwener/opencli opencli setup # One-time: configure Playwright MCP token

Then use directly:

opencli list # See all commands opencli list -f yaml # List commands as YAML opencli hackernews top --limit 5 # Public API, no browser opencli bilibili hot --limit 5 # Browser command opencli zhihu hot -f json # JSON output opencli zhihu hot -f yaml # YAML output

Install from source (for developers)

git clone git@github.com:jackwener/opencli.git cd opencli npm install npm run build npm link # Link binary globally opencli list # Now you can use it anywhere!

Update

npm install -g @jackwener/opencli@latest

Built-in Commands

Site Commands Mode
bilibili hot search me favorite history feed subtitle dynamic ranking following user-videos 🔐 Browser
zhihu hot search question 🔐 Browser
xiaohongshu search notifications feed me user 🔐 Browser
xueqiu feed hot-stock hot search stock watchlist 🔐 Browser
twitter trending bookmarks profile search timeline following followers notifications post reply delete like 🔐 Browser
reddit hot frontpage search subreddit 🔐 Browser
weibo hot 🔐 Browser
boss search 🔐 Browser
coupang search add-to-cart 🔐 Browser
youtube search 🔐 Browser
yahoo-finance quote 🔐 Browser
reuters search 🔐 Browser
smzdm search 🔐 Browser
ctrip search 🔐 Browser
github search 🌐 Public
v2ex hot latest topic daily me notifications 🌐 Public / 🔐 Browser
hackernews top 🌐 Public
bbc news 🌐 Public

Output Formats

All built-in commands support --format / -f with table, json, yaml, md, and csv. The list command supports the same format options, and keeps --json for backward compatibility.

opencli list -f yaml # Command registry as YAML opencli bilibili hot -f table # Default: rich terminal table opencli bilibili hot -f json # JSON (pipe to jq or LLMs) opencli bilibili hot -f yaml # YAML (human-readable structured output) opencli bilibili hot -f md # Markdown opencli bilibili hot -f csv # CSV opencli bilibili hot -v # Verbose: show pipeline debug steps

For AI Agents (Developer Guide)

If you are an AI assistant tasked with creating a new command adapter for opencli, please follow the AI Agent workflow below:

Quick mode: To generate a single command for a specific page URL, see CLI-ONESHOT.md — just a URL + one-line goal, 4 steps done.

Full mode: Before writing any adapter code, read CLI-EXPLORER.md. It contains the complete browser exploration workflow, the 5-tier authentication strategy decision tree, and debugging guide.

# 1. Deep Explore — discover APIs, infer capabilities, detect framework opencli explore https://example.com --site mysite # 2. Synthesize — generate YAML adapters from explore artifacts opencli synthesize mysite # 3. Generate — one-shot: explore → synthesize → register opencli generate https://example.com --goal "hot" # 4. Strategy Cascade — auto-probe: PUBLIC → COOKIE → HEADER opencli cascade https://api.example.com/data

Explore outputs to .opencli/explore/<site>/ (manifest.json, endpoints.json, capabilities.json, auth.json).

Troubleshooting

  • "Failed to connect to Playwright MCP Bridge"
    • Ensure the Playwright MCP extension is installed and enabled in your running Chrome.
    • Restart the Chrome browser if you just installed the extension.
  • Empty data returns or 'Unauthorized' error
    • Your login session in Chrome might have expired. Open a normal Chrome tab, navigate to the target site, and log in or refresh the page to prove you are human.
  • Node API errors
    • Make sure you are using Node.js >= 18. Some dependencies require modern Node APIs.
  • Token issues
    • Run opencli doctor to diagnose token configuration across all tools.

Releasing New Versions

npm version patch # 0.1.0 → 0.1.1 npm version minor # 0.1.0 → 0.2.0 git push --follow-tags

The CI will automatically build, create a GitHub release, and publish to npm.

License

BSD-3-Clause

About

Make any website your CLI. A powerful, AI-native runtime for seamless browser automation and dynamic web data extraction.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 94.9%
  • JavaScript 5.1%