Files
nanocode/skills/opencli-integration/README.md
T
Ubuntu 32b43f85bd a
2026-07-03 16:58:28 +08:00

141 lines
3.5 KiB
Markdown

# OpenCLI Integration - 通用CLI集成技能
集成 [OpenCLI](https://github.com/jackwener/opencli) 能力,将任何网站、Electron应用转换为命令行接口。
## 🎯 项目定位
这是**预备技能**,当前保持 **xhs-cli + lightpanda** 方案(稳定),但为未来扩展保留OpenCLI能力。
```
当前方案(稳定) 未来扩展(预留)
├─ xhs-cli ├─ OpenCLI ← 本技能
├─ lightpanda └─ 更多网站CLI化
└─ 现有爬虫
```
## 🚀 快速开始
### 安装OpenCLI
```bash
# 1. 安装Node.js >= 20.0.0
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# 2. 安装OpenCLI
npm install -g @jackwener/opencli
# 3. 验证安装
opencli --version
```
### 基础使用
```bash
# 检查状态
python3 opencli_adapter.py status
# 诊断环境
python3 opencli_adapter.py doctor
# 探索网站API
python3 opencli_adapter.py explore https://www.xiaohongshu.com
# 生成适配器
python3 opencli_adapter.py synthesize xiaohongshu
# 执行命令
python3 opencli_adapter.py exec xiaohongshu search --args query=关键词
```
## 📚 API文档
### 初始化
```python
from opencli_adapter import OpenCLIAdapter
adapter = OpenCLIAdapter()
```
### 核心方法
| 方法 | 说明 | 示例 |
|------|------|------|
| `setup()` | 初始化环境 | `adapter.setup()` |
| `doctor()` | 诊断状态 | `adapter.doctor()` |
| `list()` | 列出适配器 | `adapter.list()` |
| `explore(url)` | 探索API | `adapter.explore("https://...")` |
| `synthesize(name)` | 生成适配器 | `adapter.synthesize("mysite")` |
| `execute(cli, action)` | 执行命令 | `adapter.execute("xhs", "search", query="...")` |
### 便捷方法
```python
# 搜索
adapter.search("xiaohongshu", "关键词")
# 获取详情
adapter.get("xiaohongshu", "note_id")
# 控制Electron应用
adapter.control_electron("antigravity", "open_file", path="/path/to/file")
```
## 🔧 适配器配置示例
### YAML声明式适配器
```python
config = {
"name": "mysite",
"base_url": "https://example.com",
"selectors": {
"search_box": "input[name='q']",
"search_button": "button[type='submit']",
"result_item": ".result-item"
},
"commands": {
"search": {
"description": "搜索内容",
"params": ["query"]
}
}
}
path = adapter.create_yaml_adapter("mysite", config)
```
## 📋 与现有方案对比
| 特性 | xhs-cli | OpenCLI | 适用场景 |
|------|---------|---------|---------|
| 稳定性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | 生产环境用xhs-cli |
| 通用性 | ⭐⭐ | ⭐⭐⭐⭐⭐ | 新网站用OpenCLI探索 |
| 易用性 | ⭐⭐⭐⭐ | ⭐⭐⭐ | xhs-cli更直接 |
| 扩展性 | ⭐⭐ | ⭐⭐⭐⭐⭐ | OpenCLI可扩展任意网站 |
| 资源占用 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | xhs-cli更轻量 |
## ⚠️ 使用建议
### 当前阶段(保持现状)
- ✅ 继续使用 `xhs-cli` 处理小红书
- ✅ 继续使用 `lightpanda` 进行网页抓取
- ✅ 本技能作为**技术储备**
### 未来可能的使用场景
1. **新网站接入** - 快速探索并生成CLI
2. **Electron应用** - 控制Antigravity等工具
3. **复杂交互** - 需要浏览器自动化的场景
4. **AI自发现** - 让AI自动学习和使用新工具
## 🔗 参考链接
- OpenCLI GitHub: https://github.com/jackwener/opencli
- npm包: https://www.npmjs.com/package/@jackwener/opencli
- 中文文档: https://github.com/jackwener/opencli/blob/main/README.zh-CN.md
## 📝 License
MIT