mirror of
https://github.com/jackwener/OpenCLI.git
synced 2026-09-14 18:25:42 +08:00
a9d21f3de0
* fix: project hygiene — docs, lint, daemon restart, code fence - Update Node version requirement from >= 20 to >= 21 in 7 doc files (README, README.zh-CN, installation guides, troubleshooting) - Update adapter count from 79+ to 87+ in READMEs - Remove duplicate `lint` script (identical to `typecheck`) - Fix TESTING.md CI matrix: Node ['22'] instead of ['20', '22'] - Fix autofix SKILL.md code fence escaping (\``` → ~~~) - Add daemon restart to postinstall so updated adapters are picked up - Fix preuninstall to respect OPENCLI_DAEMON_PORT env var * fix: align docs and skills with JS-first adapter contract Adapters are now .js files (not .ts). Update all references across: - README.md, README.zh-CN.md, CONTRIBUTING.md - docs/guide/getting-started.md, docs/index.md - skills/opencli-browser/SKILL.md, skills/opencli-explorer/SKILL.md The runtime (discovery.ts) only loads .js from user clis/ directories, and `opencli browser init` generates .js scaffolds. Documentation was still teaching users to create .ts files. * fix: update CI matrix to Node 22 only (drop Node 20) package.json requires Node >= 21 (styleText dependency). The CI matrix was still testing Node 20 which doesn't meet this requirement. * fix: revert incorrect daemon restart from postinstall The daemon (browser bridge) only handles CDP communication — it has no knowledge of adapters. Adapter discovery, loading, and execution all happen in the CLI process, which is fresh each invocation. The _loadedModules cache in execution.ts is process-local and not a real staleness concern. Remove the unnecessary restartDaemon() call.
80 lines
3.2 KiB
Markdown
80 lines
3.2 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
|
|
|
|
- **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.
|
|
- **AI Agent ready** — `explore` discovers APIs, `synthesize` generates adapters, `cascade` finds auth strategies.
|
|
- **Self-healing setup** — `opencli doctor` auto-starts the daemon and diagnoses extension + live browser connectivity.
|
|
- **Dynamic Loader** — Simply drop `.js` adapters into the `clis/` folder for auto-registration.
|
|
- **Dual-Engine Architecture** — Supports both declarative pipeline adapters and robust browser runtime TypeScript injections.
|
|
|
|
## 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, explore, validate...)
|
|
- 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)
|