mirror of
https://github.com/jackwener/OpenCLI.git
synced 2026-09-14 18:25:42 +08:00
afa5e6046c
* refactor: consolidate 6 skills into 3, remove mechanical commands Replaces opencli-oneshot / opencli-explorer / opencli-browser / opencli-usage with a single opencli-adapter-author skill that takes the AI agent end-to-end: site recon, API discovery, field decoding, adapter coding, and `opencli browser verify`. Removes the mechanical commands (`explore`, `synthesize`, `generate`, `cascade`, `record`) and their src/tests — they were codegen scaffolding meant for agents, which the new skill handles more flexibly via `opencli browser` primitives. Skill highlights: - Top-level decision tree + 12-step runbook - 5 site patterns (SPA / SSR / JSONP / Token / Streaming) - 5-layer API discovery (network → initial state → bundle → token → interceptor) - Field decode playbook (self-explanatory → codes → sort-key comparison) - Output design guide (columns, types, order, ≤15 per adapter) - Two-layer site memory: in-repo seeds for eastmoney/xueqiu/bilibili/tonghuashun plus local `~/.opencli/sites/<site>/` runtime workspace Kept skills: opencli-autofix (now points to adapter-author for rewrites), smart-search. Kept primitives: `browser *`, `doctor`, `list`, `validate`, `verify`, `<site> <cmd>`, `plugin *`, `completion`. No backward compatibility shims. Full test suite (1605 tests) passes. * review fixes: honest coverage, hard memory-hit path, typo, stale docs - site-memory hit path no longer jumps to writing adapter; forces Step 5 endpoint re-verification + Step 7 field check, and 30-day expiry - site-memory.md now specifies exact schemas for endpoints.json / field-map.json / notes.md / fixtures + write-back timing rules - coverage-matrix.md marks unverified patterns as 🟡 with an evidence section citing coingecko dry run + PR #1091 eastmoney + bilibili - eastmoney seed typo: resolveSecids -> resolveSecid (and splitSymbols) - docs/developer/ai-workflow.md rewritten to teach the adapter-author skill + opencli browser * primitives (dropped generate/synthesize/ cascade/explore references) - ts-adapter.md, getting-started.md, CHANGELOG.md:87 updated to point at opencli-adapter-author * fix(ci): resync package-lock + drop stale built-in list reference - Regenerate package-lock.json to restore @emnapi/core + @emnapi/runtime entries that got dropped during the rebase — `npm ci` was failing on all CI jobs (build / audit / docs-build / bun-test / unit-test) - docs/guide/getting-started.md: built-in list dropped `explore`, now reads (list, validate, verify, browser, doctor, plugin...) * fix(ci): restore package-lock.json from main (unrelated lockfile churn)
81 lines
3.4 KiB
Markdown
81 lines
3.4 KiB
Markdown
# Getting Started
|
|
|
|
> **Make any website or Electron App your CLI.**
|
|
> Zero risk · Reuse Chrome login · AI-powered discovery · Browser + Desktop automation
|
|
|
|
[](https://www.npmjs.com/package/@jackwener/opencli)
|
|
[](https://nodejs.org)
|
|
[](https://github.com/jackwener/opencli/blob/main/LICENSE)
|
|
|
|
OpenCLI turns **any website** or **Electron app** into a command-line interface — Bilibili, Zhihu, 小红书, Twitter/X, Reddit, YouTube, Antigravity, and [many more](/adapters/) — powered by browser session reuse and AI-native discovery.
|
|
|
|
## Highlights
|
|
|
|
- **Desktop App Control** — Drive Electron apps (Cursor, Codex, ChatGPT, Notion, etc.) directly from the terminal via CDP.
|
|
- **Browser Automation** — `browser` gives AI agents direct browser control: click, type, extract, screenshot — fully scriptable.
|
|
- **Website → CLI** — Turn any website into a deterministic CLI: 87+ pre-built adapters, or author your own with the `opencli-adapter-author` skill.
|
|
- **Account-safe** — Reuses Chrome's logged-in state; your credentials never leave the browser.
|
|
- **AI Agent ready** — `opencli browser *` primitives (`open` / `network` / `state` / `eval` / `init` / `verify`) drive the adapter-authoring loop.
|
|
- **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.
|
|
|
|
## Quick Start
|
|
|
|
### Install via npm
|
|
|
|
```bash
|
|
npm install -g @jackwener/opencli
|
|
```
|
|
|
|
### Basic Usage
|
|
|
|
```bash
|
|
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
|
|
```
|
|
|
|
### Output Formats
|
|
|
|
All built-in commands support `--format` / `-f`:
|
|
|
|
```bash
|
|
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)
|
|
opencli bilibili hot -f md # Markdown
|
|
opencli bilibili hot -f csv # CSV
|
|
opencli bilibili hot -v # Verbose: show pipeline debug
|
|
```
|
|
|
|
### Tab Completion
|
|
|
|
OpenCLI supports intelligent tab completion to speed up command input:
|
|
|
|
```bash
|
|
# Add shell completion to your startup config
|
|
echo 'eval "$(opencli completion zsh)"' >> ~/.zshrc # Zsh
|
|
echo 'eval "$(opencli completion bash)"' >> ~/.bashrc # Bash
|
|
echo 'opencli completion fish | source' >> ~/.config/fish/config.fish # Fish
|
|
|
|
# Restart your shell, then press Tab to complete:
|
|
opencli [Tab] # Complete site names (bilibili, zhihu, twitter...)
|
|
opencli bilibili [Tab] # Complete commands (hot, search, me, download...)
|
|
```
|
|
|
|
The completion includes:
|
|
- All available sites and adapters
|
|
- Built-in commands (list, validate, verify, browser, doctor, plugin...)
|
|
- Command aliases
|
|
- Real-time updates as you add new adapters
|
|
|
|
## Next Steps
|
|
|
|
- [Installation details](/guide/installation)
|
|
- [Browser Bridge setup](/guide/browser-bridge)
|
|
- [Plugins — extend with community adapters](/guide/plugins)
|
|
- [All available adapters](/adapters/)
|
|
- [For developers / AI agents](/developer/contributing)
|
|
- [Add a new Electron app CLI](/guide/electron-app-cli)
|