docs / quickstart
五分钟上手
装上 skillmod,添加第一个 skill,认识 SKILL.mod 与 SKILL.lock,然后故意改一次已安装的 skill,看 verify、why 和 sync 各自怎么反应。按顺序走完,大概五分钟。
安装 skillmod
让 agent 帮你装(推荐)
有 Node.js/npm 时,把配套的 Agent Skill 全局装好,你的编码 agent 就能在任何项目里设置并操作 skillmod:
然后对你的 agent 说一句,原句照抄即可,不必翻译:
Install skillmod and make it available on PATH.
这个 skill 会检查 Git 前置条件和机器上已有的 skillmod 安装,为当前操作系统和架构挑选对应的发布二进制,对照公开的 SHA-256 校验和验证,装到 PATH 上一个用户可写的目录,再验证结果。这份指引只应在当前项目里可用时,去掉 --global。
手动安装
没有 Go 工具链时,从 GitHub Releases 下载你平台的压缩包和 checksums.txt,核对校验和,解压,把 skillmod 放到 PATH 上:
- 压缩包名形如
skillmod_<version>_linux_amd64.tar.gz,Windows 是.zip;<version>不含前导的v。 - 架构名按机器值映射:
x86_64、AMD64对应amd64;aarch64、arm64、ARM64对应arm64。 - 解压只用里面那个可执行文件(Windows 上是
skillmod.exe),放进用户可写的目录:Linux/macOS 用${XDG_BIN_HOME:-$HOME/.local/bin},Windows 可以用%LOCALAPPDATA%\Programs\skillmod\bin。
| 平台 | 核对 SHA-256 的命令 |
|---|---|
| Linux | sha256sum |
| macOS | shasum -a 256 |
| PowerShell | Get-FileHash -Algorithm SHA256 |
已经有 Go 1.26.6 或更高版本时,装法更短:
两条路最后是同一个可执行文件。之后升级用 skillmod upgrade:它读取当前系统与架构对应的发布包,对照那次发布的 checksums.txt 验证通过后,才替换正在运行的可执行文件。--check 只报告有没有新版本就停下,--dry-run 下载并验证但不替换。
前置条件
skillmod 调用系统里的 git 可执行文件去取源码,所以 Git 必须已经装好并在 PATH 上。Windows 上它不预装,装 Git for Windows;远端用 SSH 时,还需要 ssh 在 PATH 上。
动手之前先做几个只读检查:
当前终端看不到刚更新过的 PATH 时,用完整路径调一次可执行文件,并告诉自己去开一个新终端。
添加第一个 skill
在项目目录里执行:
仓库只说一次,技能也说一次:// 之后写技能名就够了,仓库内部的目录长什么样不必记住也不必输入。完全写出的子目录仍然优先于名字;一个名字有多个技能应答时,skillmod 把候选路径报出来,不猜。声明里记录的是技能真实所在的位置,也就是接下来 SKILL.mod 里那行 source。
--yes 回答选择之后出现的确认提问,它不代替你做选择;安装模式由 --install-mode 指定,这一页用 copy。
认识 SKILL.mod 与 SKILL.lock
SKILL.mod 是给人审阅、给人提交的声明。SKILL.lock 由 skillmod 写,记录这份声明解析到了什么:请求的版本、解析出的 commit、内容哈希。
schemaversion = 1 [[skill]] name = 'gh-fix-ci' source = 'github.com/openai/skills//skills/.curated/gh-fix-ci' version = 'v0.0.0-20260624023612-49f948faa925'
schemaversion = 1 [[skill]] name = 'gh-fix-ci' source = 'github.com/openai/skills//skills/.curated/gh-fix-ci' version = 'v0.0.0-20260624023612-49f948faa925' commit = '49f948faa9258a0c61caceaf225e179651397431' dirhash = 'h1:kiGlVBeTCF8Q9f0rPATnDn1jBn/obT3TTTL8D8gdCbM='
注意 SKILL.mod 里没有 commit 和 dirhash:那是 lock 的事。sync 按 lock 调和每台机器,verify 拿安装内容和 lock 对。
制造一次漂移
像一次没人审过的改动那样,改掉已安装 skill 的内容,然后问:这个项目还和它的 lock 一致吗?
非零退出码是它被当成 CI 关口的原因:被改过、被动过手脚的 skill 会让构建失败,而不会悄悄留在机器上。
用 why 看来源
想知道某一条从哪来、现在什么状态,问 why:
来源、解析出的版本、commit、dirhash、以及它在每个安装目标上的状态,都在这一屏里。最后一行就是刚才那次漂移。
本地修改不会被覆盖
sync 不会为了让自己看起来干净,把那次修改扔掉:
退出码 3 才是重点:能继续的工作已经继续了,这次修改怎么处置,决定权在你。可以把它留作项目的本地版本,也可以交互式运行 skillmod sync,选 overwrite 恢复 lock 里的内容。
| 退出码 | 什么时候出现 |
|---|---|
| 2 | verify 检出漂移:安装内容和 lock 不一致 |
| 3 | sync 遇到本地修改:其余目标照常处理,改过的目标被保留并上报 |
接下来读什么
| 命令 | 这一页里它做了什么 |
|---|---|
get | 添加一个 skill 并安装它 |
verify | 拿安装内容和 lock 对,漂移即失败;CI 的关口 |
why | 解释一个条目:来源、解析出的版本、commit、dirhash、各目标状态 |
sync | 按 lock 调和安装;幂等,且不覆盖本地修改 |
想搞清两个文件的分工、作用域怎么分、版本有哪几种形式,读核心概念。想照着任务一步步做——接管机器上已有的技能、把同一套 skill 分发给团队、更新与钉版本、分享给 agent、卸载与清理——读场景指南。
要把 skillmod 接进流水线,去看自动化与 CI 里的退出码表、--json 输出结构和 action 词表;遇到报错或状态异常,去故障排查 按步骤自查。
SKILLMOD_LANG,没有设置时跟随系统 locale;JSON 的字段名和 action 标识永不翻译。这一页的命令输出按英文环境展示。