0988fcb3348dfec3e83ccfa23e62fd2fbdd73ae0
All 4 commands use YAML tap pipeline with Pinia store interception: - me: personal profile info - note --id: note detail - comments --id: note comments - user-posts --uid: user's published notes
OpenCLI
Make any website your CLI.
Zero risk · Reuse Chrome login · AI-powered discovery
OpenCLI turns any website into a command-line tool by bridging your Chrome browser through Playwright MCP. No passwords stored, no tokens leaked — it just rides your existing browser session.
✨ Highlights
- 🌐 25+ commands, 13 sites — Bilibili, Zhihu, GitHub, Twitter/X, Reddit, V2EX, Xiaohongshu, Hacker News…
- 🔐 Account-safe — Reuses Chrome's logged-in state; your credentials never leave the browser
- 🤖 AI Agent ready —
explorediscovers APIs,synthesizegenerates adapters,cascadefinds auth strategies - 📝 Declarative YAML — Most adapters are ~30 lines of YAML pipeline
- 🔌 TypeScript escape hatch — Complex adapters (XHR interception, GraphQL) in TS
🚀 Quick Start
Install via npm (recommended)
npm install -g @jackwener/opencli
Then use directly:
opencli list # See all commands
opencli hackernews top --limit 5 # Public API, no browser
opencli bilibili hot --limit 5 # Browser command
opencli zhihu hot -f json # JSON output
Install from source
git clone git@github.com:jackwener/opencli.git
cd opencli && npm install
npx tsx src/main.ts list
Update
# npm global
npm update -g @jackwener/opencli
# Or reinstall to latest
npm install -g @jackwener/opencli@latest
📋 Prerequisites
Browser commands need:
- Chrome running with the target site logged in
- Playwright MCP Bridge extension installed
- Configure
PLAYWRIGHT_MCP_EXTENSION_TOKEN(from the extension settings page) as an environment variable, or in your MCP config:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--extension"],
"env": {
"PLAYWRIGHT_MCP_EXTENSION_TOKEN": "<your-token>"
}
}
}
}
Public API commands (hackernews, github search, v2ex) need no browser at all.
📦 Built-in Commands
| Site | Commands | Mode |
|---|---|---|
| bilibili | hot search me favorite history feed user-videos |
🔐 Browser |
| zhihu | hot search question |
🔐 Browser |
| xiaohongshu | search feed |
🔐 Browser |
trending |
🔐 Browser | |
hot |
🔐 Browser | |
| github | trending search |
🔐 / 🌐 |
| v2ex | hot latest topic |
🌐 Public |
| hackernews | top |
🌐 Public |
🎨 Output Formats
opencli bilibili hot -f table # Default: rich table
opencli bilibili hot -f json # JSON (pipe to jq, feed to AI)
opencli bilibili hot -f md # Markdown
opencli bilibili hot -f csv # CSV
opencli bilibili hot -v # Verbose: show pipeline steps
🧠 AI Agent Workflow
# 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— site metadata, framework detectionendpoints.json— scored API endpoints with response schemascapabilities.json— inferred capabilities with confidence scoresauth.json— authentication strategy recommendations
🔧 Create New Commands
See SKILL.md for the full adapter guide (YAML pipeline + TypeScript).
Releasing New Versions
# Bump version
npm version patch # 0.1.0 → 0.1.1
npm version minor # 0.1.0 → 0.2.0
npm version major # 0.1.0 → 1.0.0
# Push tag to trigger GitHub Actions auto-release
git push --follow-tags
The CI will automatically build, create a GitHub release, and publish to npm.
📄 License
MIT
Description
将任意网站转为命令行接口,让 AI 智能体使用你的浏览器。|GitHub 镜像 ⭐ 28.5k · 🍴 2.8k
https://github.com/jackwener/opencli
Readme
18 MiB
Languages
JavaScript
79.8%
TypeScript
17.7%
HTML
2.5%