nashsu/AutoCLI
GitHub: nashsu/AutoCLI
一个用 Rust 编写的超快命令行工具,通过一条命令从 55+ 网站抓取数据并支持 AI 自动生成适配器。
Stars: 1943 | Forks: 173
# AutoCLI
**[English](README.md) | [中文](README.zh.md) | [日本語](README.ja.md)**
> ~/.bashrc
autocli completion zsh >> ~/.zshrc
autocli completion fish > ~/.config/fish/completions/autocli.fish
```
## AI 命令
### 步骤 1:认证
```
autocli auth
```
这将:
1. 在浏览器中打开 [https://autocli.ai/get-token](
生成完成后,您可以使用新生成的命令通过 autocli 获取需要的数据。
│
└─────────────────────┬───────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ CLI Layer (clap) │
│ main.rs → discovery → clap dynamic subcommands → execution.rs │
│ ┌───────────┐ ┌───────────────┐ ┌──────────────────┐ │
│ │ Built-in │ │ Site adapter │ │ External CLI │ │
│ │ commands │ │ commands │ │ passthrough │ │
│ │ explore │ │ bilibili hot │ │ gh, docker, k8s │ │
│ │ doctor │ │ twitter feed │ │ │ │
│ └───────────┘ └───────┬───────┘ └──────────────────┘ │
└─────────────────────────┼───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Execution Engine (execution.rs) │
│ Arg validation → Capability routing → Timeout ctrl │
│ ┌─────────┼─────────┐ │
│ ▼ ▼ ▼ │
│ YAML Pipeline Rust Func External CLI │
└────────────────┬────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ Pipeline Engine Browser Bridge │
│ ┌────────────┐ ┌─────────────────────┐ │
│ │ fetch │ │ BrowserBridge │ │
│ │ evaluate │ ──── IPage ────▶ │ DaemonClient (HTTP) │ │
│ │ navigate │ │ CdpPage (WebSocket) │ │
│ │ map/filter │ └──────────┬──────────┘ │
│ │ sort/limit │ │ │
│ │ intercept │ Daemon (axum:19825) │
│ │ tap │ HTTP + WebSocket │
│ └────────────┘ │ │
│ ▼ │
│ Expression Engine (pest) Chrome Extension (CDP) │
│ ${{ expr | filter }} chrome.debugger API │
└──────────────────────────────────────────────────────────────────┘
```
### 工作区结构
```
autocli/
├── crates/
│ ├── autocli-core/ # Core data models: Strategy, CliCommand, Registry, IPage trait, Error
│ ├── autocli-pipeline/ # Pipeline engine: pest expressions, executor, 14 step types
│ ├── autocli-browser/ # Browser bridge: Daemon, DaemonPage, CdpPage, DOM helpers
│ ├── autocli-output/ # Output rendering: table, json, yaml, csv, markdown
│ ├── autocli-discovery/ # Adapter discovery: YAML parsing, build.rs compile-time embedding
│ ├── autocli-external/ # External CLI: loading, detection, passthrough execution
│ ├── autocli-ai/ # AI capabilities: explore, synthesize, cascade, generate
│ └── autocli-cli/ # CLI entry point: clap, execution orchestration, doctor, completion
├── adapters/ # 333 YAML adapter definitions
│ ├── hackernews/
│ ├── bilibili/
│ ├── twitter/
│ └── ...(55 sites)
└── resources/
└── external-clis.yaml # External CLI registry
```
### 相对于 TypeScript 原版的改进
| 改进 | 原版(TypeScript) | autocli (Rust) |
|--------|-------------------|-------------------|
| 分发 | Node.js + npm install(~100MB) | 单个二进制文件(4.1MB) |
| 启动速度 | 读取 manifest JSON → 解析 → 注册 | 编译时嵌入,零文件 I/O |
| 模板引擎 | JS eval(安全风险) | pest PEG 解析器(类型安全) |
| 并发获取 | 非浏览器模式 pool=5 | FuturesUnordered,concurrency=10 |
| 错误系统 | 单一提示字符串 | 结构化错误链 + 多重建议 |
| HTTP 连接 | 每次新建 fetch | reqwest 连接池复用 |
| 内存安全 | GC | 所有权系统,零 GC 暂停 |
## 开发
```
# 构建
cargo build
# 测试(166 个测试)
cargo test --workspace
# 发布构建(带 LTO,约 4MB)
cargo build --release
# 添加新适配器
# 1. 在 adapters// 下创建 YAML 文件
# 2. 重新编译(build.rs 自动嵌入)
cargo build
```
## 支持的网站
## Star 历史
## 致谢
本项目基于 [jackwener](https://github.com/jackwener) 的 [OpenCLI](https://github.com/jackwener/opencli) 构建。我们衷心感谢使本项目成为可能的基础工作。
## 许可证
Apache-2.0
https://autocli.ai — AI 驱动的适配器市场与云端 API
## 最新动态 ### v0.3.2 - **Chrome 扩展选择器工具** — 只需选择核心数据,从任意页面可视化选取元素,构建精确的 CSS 选择器以定位特定内容 - **通过 AutoCLI.ai 的 AI 驱动生成** — 根据您选择的数据,AI 自动扩展并发现相关字段,生成完整的抓取规则 - **无缝本地+云端同步** — 生成的适配器保存在本地并同步到 AutoCLI.ai,可立即使用 极快的命令行工具 — **一条命令获取任意网站信息**。支持 Twitter/X、Reddit、YouTube、HackerNews、Bilibili、知乎、小红书以及 [55+ 网站](#built-in-commands),同时支持控制 Electron 桌面应用、集成本地 CLI 工具(`gh`、`docker`、`kubectl`),由浏览器会话复用和 AI 原生发现能力驱动。 基于 [OpenCLI](
生成完成后,您可以使用新生成的命令通过 autocli 获取需要的数据。
点击展开全部 55 个网站
| 网站 | 命令 | 策略 | |------|--------|------| | hackernews | 8 | public | | bilibili | 12 | cookie | | twitter | 24 | cookie/intercept | | reddit | 15 | public/cookie | | zhihu | 2 | cookie | | xiaohongshu | 11 | cookie | | douban | 7 | cookie | | weibo | 2 | cookie | | v2ex | 11 | public/cookie | | bloomberg | 10 | cookie | | youtube | 4 | cookie | | wikipedia | 4 | public | | google | 4 | public/cookie | | facebook | 10 | cookie | | instagram | 14 | cookie | | tiktok | 15 | cookie | | notion | 8 | ui | | cursor | 12 | ui | | chatgpt | 6 | public | | stackoverflow | 4 | public | | devto | 3 | public | | lobsters | 4 | public | | medium | 3 | cookie | | substack | 3 | cookie | | weread | 7 | cookie | | xueqiu | 7 | cookie | | boss | 14 | cookie | | jike | 10 | cookie | | 其他 27 个网站 | ... | ... |标签:55+网站支持, BeEF, Electron, JSON 请求, Linux安全, Rust, 内存安全, 可视化界面, 命令控制, 多平台支持, 开发效率, 数据提取, 数据采集, 浏览器自动化, 爬虫, 网络可观测性, 网络数据获取, 网络流量审计, 网络调试, 自动化, 通知系统