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

turbomesh-skill-cli

v0.1.5

Published

Sync skill registry rules into IDE-specific project directories.

Readme

Skill Registry CLI

从 Git 数据仓库拉取 Skill 规范,并同步到当前项目的 IDE 规则目录或自定义目录。

使用方式

CLI 已发布到 npm 公共 registry,推荐通过 npx 直接运行:

npx turbomesh-skill-cli@latest
npx turbomesh-skill-cli@latest --ide cursor --roles common,frontend,qa
npx turbomesh-skill-cli@latest --target-dir .codex/skills --roles common,frontend
npx turbomesh-skill-cli@latest --ide cursor --roles common,frontend --skills react-patterns,eslint-standards
npx turbomesh-skill-cli@latest --ide cursor --roles common,frontend --force
npx turbomesh-skill-cli@latest --ide cursor --roles common,frontend --dry-run

默认 Skill 数据仓库地址在 src/config.js 中配置。也可以单次运行时覆盖:

npx turbomesh-skill-cli@latest --repo-url https://github.com/your-org/skills.git

或通过环境变量覆盖:

SKILL_DATA_REPO_URL=https://github.com/your-org/skills.git npx turbomesh-skill-cli@latest

如果 Skill 数据仓库是私有仓库,请先在本机配置好 Git 访问权限。推荐使用 SSH key、Git credential helper,或 HTTPS personal access token。

常用参数

--ide <ide>:选择 IDE 类型,CLI 会根据内置映射写入对应目录。

--target-dir <dir>:指定当前项目内的自定义存放目录,并跳过 IDE 选择。例如:

npx turbomesh-skill-cli@latest --target-dir .codex/skills

--roles <roles>:指定 Skill 范围,多个范围用逗号分隔。例如:

--roles common,frontend,devops/release-web

--skills <skills>:指定要同步的 Skill,多个 Skill 用逗号分隔。未指定时会进入交互选择。

--force:替换目标目录中已存在的本地 Skill。

--dry-run:只输出同步计划,不写入目标目录,也不更新 .skill-lock.json

--repo-url <url>:临时覆盖 Skill 数据仓库地址。

交互流程

  1. 选择 IDE,或通过 --target-dir 直接指定存放目录。
  2. 拉取 Skill 数据仓库。
  3. 选择 Skill 范围,例如 commonfrontendqadevops/release-web
  4. 选择具体要同步的 Skill。
  5. CLI 自动同步所选 Skill 及其依赖。

common 会像普通范围一样展示在选择列表中,不会默认选中。

数据仓库结构

Skill 范围会从数据仓库目录结构中动态发现。只要某个目录直接包含 Skill 子目录,它就会成为一个可选范围。

示例:

backend/
common/
devops/
frontend/
qa/
scripts/

其中:

common/:公共 Skill 范围,会显示在范围选择列表中。

backend/frontend/qa/devops/...:岗位或场景范围,会自动发现。

scripts/:根级仓库工具目录,会在范围和 Skill 发现时被忽略。

嵌套范围也支持,例如:

--roles common,devops/release-web

Skill Manifest

每个 Skill 目录必须包含 skill.md,也兼容外部仓库常见的 SKILL.md。依赖通过 YAML front matter 声明:

---
dependencies:
  - name: eslint-standards
  - name: shared-security-rules
---

依赖只声明 name,不要在 Skill Manifest 中填写 urlexternalref。CLI 会先通过数据仓库内全局唯一的 Skill 目录名解析依赖;如果内部找不到,再读取数据仓库根目录的 external-skills.json 查找同名外部 Skill。

external-skills.json 示例:

{
  "skills": {
    "browser-use": {
      "url": "https://github.com/browser-use/browser-use.git",
      "entry": "skills/browser-use/SKILL.md",
      "description": "浏览器自动化、页面状态检查、截图、表单交互与网页数据提取 Skill。",
      "tags": ["browser", "automation", "testing", "frontend"],
      "aliases": ["browser-automation", "browseruse", "web-testing", "e2e"]
    }
  }
}

其中 url 是外部 Git 仓库地址,entry 是仓库内 Skill Manifest 文件或 Skill 目录的相对路径。descriptiontagsaliases 用于索引与搜索,当前同步流程只依赖 urlentry

外部依赖会先克隆到临时目录,移除 .git 元数据,再按 entry 定位 Skill 目录,校验通过后只移动该 Skill 目录到目标规则目录。如果旧索引没有配置 entry,CLI 会兼容地尝试使用仓库根目录下的 skill.mdSKILL.md。如果内部和外部索引都找不到依赖,CLI 会跳过该依赖并提示通过 find-skills 补充外部 Skill 索引。