| name | opencli-agent |
| description | 当用户希望通过命令行自动化与网站或在线服务交互时,应使用本技能。它支持在 Twitter/X 上发帖、浏览 Reddit、获取 B站热门、下载小红书内容等 70+ 个平台的操作——全部通过 opencli 工具完成。触发场景包括社交媒体操作(发帖、点赞、关注、搜索)、内容获取(热门、时间线、动态流)、下载(视频、图片、文章)以及 opencli 支持的任何网络服务自动化。 |
OpenCLI Agent
概述
本技能将自然语言指令转换为 opencli 命令,可自动与 70+ 个网站和服务(Twitter/X、Reddit、B站、小红书、YouTube 等)进行交互。OpenCLI 复用 Chrome 浏览器的登录会话,无需暴露密码或 API 密钥。
环境检查
在执行任何 opencli 命令之前,先运行环境检查脚本确认环境就绪:
bash {SKILL_DIR}/scripts/check_setup.sh
如果脚本报告问题,引导用户完成以下安装步骤:
- 安装 Node.js (>= 20.0.0):
brew install node 或访问 https://nodejs.org
- 安装 OpenCLI:
npm install -g @jackwener/opencli
- 安装浏览器扩展:
- 登录目标网站:在 Chrome 中登录目标网站(例如:发推前先在 Chrome 中登录 twitter.com)
- 验证:运行
opencli doctor 确认扩展和守护进程连接正常
命令执行流程
收到用户指令后,按以下流程执行:
第一步:解析意图
从用户请求中识别三个要素:
- 平台 — 哪个服务(twitter, bilibili, reddit, xiaohongshu 等)
- 动作 — 要做什么(post, search, like, follow, download, trending 等)
- 参数 — 内容、数量限制、输出路径、格式等
第二步:映射为 OpenCLI 命令
使用以下格式构造命令:
opencli <platform> <action> [arguments] [--options]
参考 {SKILL_DIR}/references/command_reference.md 获取完整命令目录。如果不确定某个平台支持的命令,运行:
opencli <platform> --help
或列出所有可用命令:
opencli list
第三步:执行并反馈
通过终端执行命令,然后:
- 解析输出,以易读格式呈现结果
- 如果命令失败,检查错误信息并建议修复方法(例如"请先在 Chrome 中登录 Twitter")
- 对于数据检索命令,需要进一步处理时使用
-f json 获取结构化输出
通用全局选项
| 选项 | 缩写 | 描述 |
|---|
--format <type> | -f | 输出格式: table (默认), json, yaml, md, csv |
--limit <n> | | 限制结果数量 |
-v | | 详细/调试模式 |
平台命令速查
社交媒体 — 发帖与互动
Twitter/X:
opencli twitter post "Hello World"
opencli twitter reply <tweet_id> "reply content"
opencli twitter like <tweet_id>
opencli twitter follow <username>
opencli twitter unfollow <username>
opencli twitter search "keyword" --limit 10
opencli twitter timeline --limit 20
opencli twitter trending
opencli twitter profile <username>
opencli twitter block <username>
opencli twitter unblock <username>
opencli twitter bookmark <tweet_id>
opencli twitter unbookmark <tweet_id>
opencli twitter delete <tweet_id>
opencli twitter download <tweet_id> --output ./twitter
Reddit:
opencli reddit hot --limit 10
opencli reddit search "keyword" --limit 10
opencli reddit post <subreddit> "title" "body"
opencli reddit comment <post_id> "comment content"
Facebook:
opencli facebook feed --limit 10
opencli facebook post "content"
Instagram:
opencli instagram feed --limit 10
opencli instagram profile <username>
LinkedIn:
opencli linkedin feed --limit 10
opencli linkedin profile <username>
Bluesky:
opencli bluesky feed --limit 10
opencli bluesky post "content"
内容平台 — 中文
Bilibili (B站):
opencli bilibili hot --limit 10
opencli bilibili search "keyword" --limit 10
opencli bilibili download <BV_ID> --output ./bilibili
Xiaohongshu (小红书):
opencli xiaohongshu hot --limit 10
opencli xiaohongshu search "keyword" --limit 10
opencli xiaohongshu download <note_id> --output ./xhs
Zhihu (知乎):
opencli zhihu hot --limit 10
opencli zhihu search "keyword" --limit 10
Weibo (微博):
opencli weibo hot --limit 10
opencli weibo search "keyword" --limit 10
Douyin (抖音):
opencli douyin hot --limit 10
opencli douyin search "keyword" --limit 10
新闻与科技
HackerNews:
opencli hackernews top --limit 10
opencli hackernews new --limit 10
Product Hunt:
opencli producthunt top --limit 10
桌面应用控制
opencli cursor chat "message"
opencli chatgpt send "message"
opencli notion search "keyword"
外部 CLI 集线器
OpenCLI 可以代理并自动安装外部 CLI 工具:
opencli gh pr list --limit 5
opencli docker ps
错误处理
| 错误 | 原因 | 解决方案 |
|---|
Extension not connected | Chrome 扩展未加载或 Chrome 未运行 | 确保 Chrome 已打开且扩展已启用 |
Unauthorized / 空数据 | 未登录目标网站 | 在 Chrome 中登录该网站 |
Command not found | opencli 未安装或不在 PATH 中 | 运行 npm install -g @jackwener/opencli |
Node version error | Node.js 版本过低 (< 20.0.0) | 升级 Node.js 到 20.0.0 以上 |
Timeout | 页面加载过慢或站点被屏蔽 | 检查网络连接;使用 -v 查看调试信息 |
重要说明
- 执行写操作(发帖、点赞、关注等)前,始终确保用户已在 Chrome 中登录目标网站
- 对于公开数据的只读操作(如
hackernews top),无需登录
- 视频下载可能需要安装 yt-dlp:
brew install yt-dlp
- 需要程序化处理输出时使用
-f json
- 当用户请求中平台不明确时,请求用户澄清
- 发现新命令或未文档化命令,运行
opencli list 或 opencli <platform> --help