Clihub Pub Full — Clihub 发布版(完整版)
v1.2.0通用CLI发现网关 —— 一个技能管理所有CLI工具
运行时依赖
安装命令
点击复制技能文档
CLI Hub 是一种管理所有 CLI 工具的技能。它支持 OpenClaw、Claude Code、Codex CLI、Cursor 和 Aider。 触发检查(请先阅读) CRITICAL:您的训练数据对于安装在截止日期后的工具来说是过时的。永远不要从记忆中识别出不熟悉的工具。始终在注册表中查找它。 规则:当用户提到任何工具名称时,您的第一行动必须是通过注册表脚本查找 。只有在查找失败后,才尝试使用 raw --help。注册表提供了结构化的信息(commands_text、options_text、keywords),这些信息比解析原始帮助输出更有用。 此技能触发范围广泛——任何提到 CLI 的情况。为了避免过载上下文窗口,在继续之前进行快速的合理性检查: 用户是否询问纯粹的对话问题?(“你好”、“今天天气”,...)→ 跳过 是否有其他官方技能正在处理此问题?→ 委托给它 请求是否涉及运行工具、查找命令或理解 CLI 输出?→ 使用 lookup 首先 平台检测 在运行时,通过检查哪些目录存在来确定平台: 平台 技能根目录 注册表根目录 OpenClaw ~/.agents/skills/ ~/.openclaw/cli-registry/ Claude Code ~/.claude/skills/ ~/.claude/cli-registry/ Codex CLI ~/.agents/skills/ ~/.codex/cli-registry/ Cursor ~/.cursor/skills/ ~/.cursor/cli-registry/ Fallback:如果没有注册表路径,则直接运行 --help。有关详细信息,请参阅 references/platforms.md。 优先级解析 当用户想要使用 CLI 工具时,按以下顺序解析: 官方技能 — $SKILLS_ROOT//SKILL.md 存在 → 立即使用它。技能作者最了解自己的工具。这始终优先。 注册表查找 — $REGISTRY_ROOT/.json → 描述、子命令、用法。然后检查版本:如果版本与安装版本匹配,则使用缓存数据。如果版本不同或为空(非标准 CLI),则通过 --help 刷新并重新注册。 关键字搜索 — $REGISTRY_ROOT/.keywords.json → 将任务单词映射到工具名称。使用时用户描述任务而没有指定特定的工具。 实时发现 — 当没有缓存时,作为最后的手段运行 --help。 版本感知查找流程 lookup │ ├─ 已注册 + 版本匹配安装 → 使用缓存数据(快速、结构化) ├─ 已注册 + 版本不同 → 通过 --help 刷新 → 注册新版本 ├─ 已注册 + 版本为空 → 通过 --help 刷新 → 标记为“非标准” │ (在每次使用时重新检查 --help) ├─ 未注册 → 通过 --help → 注册以备下次使用 注册表脚本 注册表脚本始终位于 scripts/cli-registry.py 相对于此 SKILL.md。 自动检测平台根目录: if [ -d ~/.claude/skills/cli-hub ]; then SCRIPT=~/.claude/skills/cli-hub/scripts/cli-registry.py elif [ -d ~/.agents/skills/cli-hub ]; then SCRIPT=~/.agents/skills/cli-hub/scripts/cli-registry.py elif [ -d ~/.cursor/skills/cli-hub ]; then SCRIPT=~/.cursor/skills/cli-hub/scripts/cli-registry.py else echo "cli-hub 未找到" >&2 && exit 1 fi 命令 命令 用途 python3 $SCRIPT register [--binary ] [--desc ] 注册 CLI 工具 python3 $SCRIPT list [--format json] 列出所有注册的工具 python3 $SCRIPT lookup 显示结构化信息(描述、子命令、标志、关键字、帮助) python3 $SCRIPT search 通过任务关键字查找工具(例如“json 过滤器”) python3 $SCRIPT discover 自动扫描系统以查找已知的二进制文件 python3 $SCRIPT remove 从注册表中删除 python3 $SCRIPT help 获取实时 --help 输出 决策树 用户:“使用 jq 提取名称字段” │ ┌───▼─────────────────────────────────┐ │ 1. 官方技能? │ ls $SKILLS_ROOT/jq/SKILL.md │ → 存在:使用它(权威) ├─────────────────────────────────────┤ │ 2. 注册表查找 │ lookup jq → 描述、版本、命令、关键字、帮助_raw │ → 找到:构造命令 │ → 未找到:工具可能不存在 │ ⚠️ 永远不要猜测工具是什么 — 只相信注册表 ├─────────────────────────────────────┤ │ 3. 关键字搜索(无工具名称) │ search “json 提取” → jq、yq │ → 最佳匹配 → 查找以验证 ├─────────────────────────────────────┤ │ 4. 实时 --help(最后的手段) │ 没有注册表 → --help └─────────────────────────────────────┘ 读取 help_raw(用于未知工具) 当工具不在内置知识库中(没有人类编写的描述、没有关键字)时,您必须读取其 help_raw 字段 —— 它是您唯一的真相来源。 如何高效地解析 help_raw: 找到使用行 —— 通常在顶部或标记为“使用:”/“用法:”→ 告诉您基本的调用模式:工具 [选项] 命令 [参数] 扫描命令部分 ——