技能 (Skills) 与插件
给 CrabCode 装上专项能力包:UI 设计、浏览器自动化、代码审计、技能生成器等。来源含内置、用户/项目目录、官方 marketplace。
是什么
Skill = 一个 SKILL.md 加上可选的脚本/资源,告诉 CrabCode 在特定任务上怎么干("做 UI 设计时遵循这些原则"、"写浏览器自动化时调这个 CLI")。CrabCode 启动时按 frontmatter 的描述索引可用 skill,模型在需要时自己挑用。
Plugin = 把若干 skill / slash 命令 / hook 打包成一个发布单元,通过 marketplace 分发与升级。装一个插件可能同时装多个 skill。
何时会看到这个文档
/plugin浏览 / 安装 / 启停界面/skills列已加载的 skill/init推荐你装frontend-design/playwright/skill-creator/plugin install foo@bar报错 / marketplace 解析失败
Skill 的四个来源
CrabCode 启动时从四个地方加载 skill:
| 来源 | 路径 / 形态 | 何时用 |
|---|---|---|
| 内置(bundled) | 随 CLI 发布,无路径 | verify / debug / skillify / simplify / remember / keybindings / updateConfig / loremIpsum / batch / browserAutomation 等,无需安装 |
| 用户目录 | ~/.crabcode/skills/<name>/SKILL.md | 跟着你跨项目 |
| 项目目录 | <repo>/.crabcode/skills/<name>/SKILL.md | 仅本项目;可入 git 与团队共享 |
| 插件(marketplace) | /plugin install 装进来的 | 第三方 / Acosmi 官方 |
MCP server 也会暴露出来的工具自动出现在可用 skill 列表里,标
mcp来源——见 MCP 文档。
安装官方插件
官方 marketplace 名字是 crabcode-plugins-official,登录后自动注册,无需手动加。
/plugin # 主菜单
/plugin install # 浏览所有可用插件
/plugin install frontend-design@crabcode-plugins-official
/plugin install playwright@crabcode-plugins-official
/plugin install skill-creator@crabcode-plugins-official/plugin # 主菜单
/plugin install # 浏览所有可用插件
/plugin install frontend-design@crabcode-plugins-official
/plugin install playwright@crabcode-plugins-official
/plugin install skill-creator@crabcode-plugins-official也支持 CLI(非交互):
crabcode plugin install <plugin>@<marketplace>
crabcode plugin uninstall <plugin>
crabcode plugin enable|disable <plugin>
crabcode plugin update [<plugin>]
crabcode plugin listcrabcode plugin install <plugin>@<marketplace>
crabcode plugin uninstall <plugin>
crabcode plugin enable|disable <plugin>
crabcode plugin update [<plugin>]
crabcode plugin list常用官方插件
| 插件 | 作用 |
|---|---|
frontend-design | 写 UI 时遵循设计规范,避免 AI 通病的"模板感" |
playwright | 让 CrabCode 通过 Playwright 真机自动化截图验证自己写的 UI |
skill-creator | 创建 / 优化你自己的 skill,含 evals;装完用 /skill-creator |
code-review / review | PR 代码评审 |
security-review | 安全审计 |
crabcode-api | 写 Acosmi API 调用代码时自动启用 prompt caching 等最佳实践 |
完整目录用 /plugin install 浏览。
写一个自己的 skill
目录结构
~/.crabcode/skills/<skill-name>/
SKILL.md # 必需,frontmatter + prompt body
helpers/ # 可选脚本 / 资源(在 prompt 里 @ 引用)~/.crabcode/skills/<skill-name>/
SKILL.md # 必需,frontmatter + prompt body
helpers/ # 可选脚本 / 资源(在 prompt 里 @ 引用)项目级 skill 把根换成 <repo>/.crabcode/skills/<skill-name>/,连同 .crabcode/settings.json 入 git 给团队共享。
SKILL.md frontmatter 字段
| 字段 | 必需 | 含义 |
|---|---|---|
name | ★ | 调用名(也用作 slash 命令 /<name>) |
description | ★ | 一句话描述——模型根据这句话决定是否选用 |
when_to_use | 何时触发的更详细说明(不影响选用判定,只是更长的人类说明) | |
allowed-tools | 限定本 skill 可调的工具集,例如 Read,Edit,Bash(git*) | |
argument-hint | /skill-name 调用时的入参提示 | |
arguments | 显式入参名列表 | |
model | 强制本 skill 用某个模型;inherit 跟随当前会话 | |
effort | 思考档:off / high / max 或整数 | |
user-invocable | false 表示只让模型自选、不进 /<skill-name> 列表 | |
disable-model-invocation | true 表示只让用户手动 /<skill-name>,模型不会自动选 | |
paths | glob 列表,仅当当前会话碰到匹配文件时激活(条件 skill) | |
version | 版本号字符串,供你自管理 | |
hooks | 本 skill 自带的 hook 配置(同 settings.json hooks 字段) | |
shell | command 类型 hook 默认 shell | |
context | fork 表示在 fork 子上下文里跑 | |
agent | 用指定的 agent 类型跑 |
frontmatter 之后的 markdown 正文 = 注入模型的 prompt。
完整示例
---
name: ship-checklist
description: 把改动准备好发布——跑 lint、检查 changelog、验证 PR 模板
when_to_use: 用户说"准备发布"/"PR 体检",或 git commit 后准备开 PR
allowed-tools: Read,Bash(bun*),Bash(cargo*),Bash(git status*)
effort: high
---
## 步骤
1. 跑项目的 `bun run lint` / `cargo clippy`
2. 检查 CHANGELOG 是否有当前版本条目
3. 检查 commit message 是否符合项目惯例
4. 如有未提交改动,提示用户先 commit---
name: ship-checklist
description: 把改动准备好发布——跑 lint、检查 changelog、验证 PR 模板
when_to_use: 用户说"准备发布"/"PR 体检",或 git commit 后准备开 PR
allowed-tools: Read,Bash(bun*),Bash(cargo*),Bash(git status*)
effort: high
---
## 步骤
1. 跑项目的 `bun run lint` / `cargo clippy`
2. 检查 CHANGELOG 是否有当前版本条目
3. 检查 commit message 是否符合项目惯例
4. 如有未提交改动,提示用户先 commit文件保存即生效;跑 /skills 看你的 skill 是否出现在列表里,跑 /<skill-name> 手动调用确认 prompt 注入正确。
不熟流程?跑
skillify(内置 skill)让 CrabCode 带你交互式生成一份 SKILL.md。
优先级与冲突解决
CrabCode 启动时按这个顺序加载 skill(前者先 win,同名后者被丢):
- Managed(企业
policySettings) - User(
~/.crabcode/skills/) - Project(
<repo>/.crabcode/skills/) - Additional(额外指定的工作目录)
- Plugin / Bundled / MCP
同名 skill 后加载的会被记 Skipping duplicate skill '<name>' 到 debug 日志;用 --debug 启动看完整加载日志。
Skill / Hook / MCP 怎么选
三种都能扩展 CrabCode,但语义不同:
| 形式 | 触发者 | 适合 |
|---|---|---|
| Skill | 模型按 description 主动选用,或用户 /<name> 手动调 | 「做 X 任务时的工作流 / 思路」 |
| Hook | CrabCode 在生命周期事件(PreToolUse / PostToolUse 等)自动调 | 「在 Y 事件发生时强制做 Z」(拦截 / 审计 / 自动 format) |
| MCP server | 模型按需调用 server 暴露的工具 | 「让模型多一种能力」(数据库查询、API 集成等) |
混着用很常见:一个 plugin 同时装 skill(教模型怎么做) + hook(PreToolUse 拦危险动作) + MCP server(给模型新工具)。
自定义 marketplace
把你团队的 skill 仓库注册成 marketplace 后,/plugin 就能直接装:
crabcode plugin marketplace add my-team/skills # GitHub owner/repo
crabcode plugin marketplace add git@example.com:.../repo # 任意 git URL
crabcode plugin marketplace add ./local/path # 本地目录
crabcode plugin marketplace list
crabcode plugin marketplace update [<name>]
crabcode plugin marketplace remove <name>crabcode plugin marketplace add my-team/skills # GitHub owner/repo
crabcode plugin marketplace add git@example.com:.../repo # 任意 git URL
crabcode plugin marketplace add ./local/path # 本地目录
crabcode plugin marketplace list
crabcode plugin marketplace update [<name>]
crabcode plugin marketplace remove <name>也可写进 settings.json:
{
"extraKnownMarketplaces": {
"my-team": {
"source": "github",
"repo": "my-team/skills",
"ref": "main"
}
}
}{
"extraKnownMarketplaces": {
"my-team": {
"source": "github",
"repo": "my-team/skills",
"ref": "main"
}
}
}支持的 marketplace source 类型:github / git / url / npm / file / directory / settings(settings 内联)。
限制与注意
- 读 SKILL.md 再装:插件可能带脚本和 hook,装之前看一眼 manifest
- 更新:
/plugin marketplace update <name>拉最新;插件本体走/plugin update - 作用域:插件
--scope user|project|local控制装到哪——项目级会跟.crabcode/settings.json一起进 git 给队友共享 - 冲突:同名 skill 后加载的覆盖前面的(来源优先级:项目 > 用户 > 内置)
- 企业策略:组织可在
policySettings里锁定可用 marketplace 与可装插件 /plugins是/plugin的别名