wyclawhub
v2.1.3
Published
无影自有技能市场安装工具
Readme
wyclawhub
无影(Wuying)AI 技能生命周期管理工具,统一纳管多源 AI 技能(无影市场、Skills.sh、ClawHub),提供 CLI 命令行与 Programmatic API 双接口。
功能概览
| 功能 | 说明 |
|------|------|
| 技能安装 | 支持 wuying / skills.sh / clawhub 三种来源,按 --source-type 动态路由 |
| 技能卸载 | 按路径或技能名称卸载,支持 skill_id 一致性校验 |
| 技能查询 | 查询已安装技能列表,支持 JSON / Table 格式输出 |
安装
npm install -g wyclawhubCLI 使用
install - 安装技能
wyclawhub install --slug <slug> --skill-id <id> --source-type <type> [options]必需参数:
| 参数 | 说明 |
|------|------|
| --slug <slug> | 技能标识符(如:weather) |
| --skill-id <id> | 技能唯一 ID |
| --source-type <type> | 技能来源类型:wuying | skills.sh | clawhub |
可选参数:
| 参数 | 说明 |
|------|------|
| --source-url <url> | 技能来源 URL(仅 skills.sh 需要) |
| --wy-token <token> | 无影技能市场 Token(wuying 来源必需) |
| --registry <url> | 注册表地址(wuying 来源可选,默认 https://skill.wuying.aliyun.com) |
| --version <version> | 技能版本号(仅 skills.sh) |
| --workdir <path> | 工作目录(默认 ~/.openclaw,相对路径自动拼接 HOME) |
| --dir <subdir> | 技能子目录名(默认 skills) |
| --force, -f | 强制安装(覆盖已存在的技能) |
示例:
# 从无影市场安装(默认 registry)
wyclawhub install --slug weather --skill-id sk_123 --source-type wuying --wy-token <token>
# 从无影市场安装(指定安装目录)
wyclawhub install --slug weather --skill-id sk_123 --source-type wuying --wy-token <token> \
--workdir .qoderwork --dir skills
# 从 ClawHub 官方市场安装
wyclawhub install --slug tavily --skill-id sk_789 --source-type clawhub
# 从 Skills.sh 市场安装
wyclawhub install --slug git-tools --skill-id sk_456 --source-type skills.sh \
--source-url https://skills.sh/git-tools --version 1.0.0uninstall - 卸载技能
wyclawhub uninstall --path <path> [--skill-id <id>]
wyclawhub uninstall --skill-name <name> [--skill-id <id>]| 参数 | 说明 |
|------|------|
| --path <path> | 直接指定技能目录路径进行删除 |
| --skill-name <name> | 技能名称(通过 openclaw 查询对应目录) |
| --skill-id <id> | 可选,用于校验 wuying_meta.json 中的 skill_id 一致性 |
示例:
# 通过路径删除
wyclawhub uninstall --path ~/.openclaw/skills/weather
# 通过技能名称卸载,并校验 skill_id
wyclawhub uninstall --skill-name weather --skill-id sk_123list-skills - 查询已安装技能
wyclawhub list-skills [--format <json|table>] [--skills-dir-prefix <prefix>]示例:
# JSON 格式输出(默认)
wyclawhub list-skills
# 表格格式输出
wyclawhub list-skills --format tableProgrammatic API
除 CLI 外,wyclawhub 同时导出 JavaScript/TypeScript 模块接口:
import { install, uninstall, listSkills } from 'wyclawhub';
// 安装技能
const result = await install({
slug: 'weather',
skill_id: 'sk_123',
sourceType: 'wuying',
wy_token: 'your-token',
});
// 卸载技能
await uninstall({ skill_name: 'weather' });
await uninstall({ path: '/home/user/.openclaw/skills/weather', skill_id: 'sk_123' });
// 查询已安装技能
const list = await listSkills();
if (list.success) {
console.log(list.skills);
}项目结构
wyclawhub/
├── bin/
│ └── wyclawhub.js # CLI 入口
├── src/
│ ├── cli.ts # CLI 参数解析与命令分发
│ ├── index.ts # Programmatic API 入口(install / uninstall / listSkills)
│ ├── help.ts # 帮助信息
│ ├── parseArg.ts # 命令行参数解析器
│ ├── common/ # 公共模块
│ │ ├── config.ts # 配置常量
│ │ ├── paths.ts # 统一路径管理(响应式变量)
│ │ ├── logger.ts # 结构化日志(traceId、日期滚动)
│ │ ├── security.ts # 参数安全校验
│ │ ├── command-utils.ts # 命令执行工具
│ │ ├── file-utils.ts # 文件操作(元数据读写)
│ │ ├── platform.ts # 跨平台兼容
│ │ └── types.ts # 公共类型定义
│ ├── install/ # 安装模块
│ │ ├── index.ts # 安装入口与参数验证
│ │ ├── wuying.ts # 无影市场安装(源码依赖 clawhub API)
│ │ ├── clawhub.ts # ClawHub 市场安装
│ │ ├── skills-sh.ts # Skills.sh 市场安装
│ │ └── types.ts # 安装类型定义
│ ├── uninstall/ # 卸载模块
│ │ ├── index.ts # 卸载入口
│ │ ├── OpenclawSkillInfoExecutor.ts # openclaw 技能信息查询
│ │ └── types.ts # 卸载类型定义
│ ├── list-skills/ # 技能列表查询模块
│ │ ├── index.ts # 查询入口
│ │ ├── SkillsDataSource.ts # 数据源接口
│ │ ├── SkillsQuerier.ts # 查询器
│ │ ├── OpenclawCliExecutor.ts # openclaw CLI 执行器
│ │ └── types.ts # 查询类型定义
│ └── gateway/ # Gateway 通信模块
│ ├── index.ts # 模块导出
│ ├── GatewayClient.ts # WebSocket 客户端(RPC 调用)
│ ├── GatewaySkillsDataSource.ts # IPC 数据源
│ ├── deviceIdentity.ts # 设备身份管理
│ └── types.ts # Gateway 类型定义
└── package.json路径约定
| 路径 | 用途 |
|------|------|
| ~/.openclaw/skills/ | 托管技能目录(wuying / clawhub 来源) |
| ~/.agents/skills/ | 个人技能目录(skills.sh 来源) |
| ~/.wyclawhub/logs/ | 日志目录 |
| ~/.wyclawhub/config/ | 配置文件目录 |
Windows 下应用目录为
%ProgramData%\wuying\wyclawhub\
日志
- 路径:
~/.wyclawhub/logs/wyclawhub-YYYY-MM-DD.log - 格式:JSON 结构化日志(含 traceId、时间戳、阶段、耗时)
- 保留:自动清理 30 天前的日志文件
安全特性
- 参数安全校验:所有输入参数通过正则白名单校验,防止命令注入
- 敏感信息脱敏:日志中自动隐藏 token、password 等字段
- 元数据保护:卸载时校验 wuying_meta.json 中的 skill_id 一致性
技术栈
开发
cd wyclawhub
npm install
npm run build # tsc 编译
npm run dev # tsc --watch 监听模式发布
内部测试 (自测)
npm run build
npm pack- 安装方式: npm install wyclawhub*.tgz
beta版本 (test0全量推送)
npm version prerelease --preid=beta
npm whoami || npm login
npm publish --tag beta安装方式: npm install [email protected].*
正式版本
npm whoami || npm login
npm publish安装方式: npm install wyclawhub@latest
