npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

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 wyclawhub

CLI 使用

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.0

uninstall - 卸载技能

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_123

list-skills - 查询已安装技能

wyclawhub list-skills [--format <json|table>] [--skills-dir-prefix <prefix>]

示例:

# JSON 格式输出(默认)
wyclawhub list-skills

# 表格格式输出
wyclawhub list-skills --format table

Programmatic 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 一致性

技术栈

  • 运行时:Node.js >= 18
  • 语言:TypeScript(ESM)
  • 核心依赖clawhub(技能市场 SDK)、skills(Skills.sh SDK)、ws(WebSocket)

开发

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