Claude Code插件工作原理

插件目录结构

.claude-plugin目录

只有1个plugin.json文件

{
  "name": "claude-burrow",
  "displayName": "ClaudeBurrow",
  "version": "0.1.0",
  "description": "Cross-device session sync for Claude Code — encrypt and sync your conversations via Cloudflare R2",
  "author": {
    "name": "ClaudeBurrow",
    "url": "https://github.com/foguangsword/claude-burrow"
  },
  "keywords": ["sync", "backup", "cross-device", "cloudflare-r2", "encryption"],
  "categories": ["productivity", "backup"],
  "homepage": "https://github.com/foguangsword/claude-burrow",
  "license": "MIT"
}

--plugin-dir 和 marketplace 安装的区别
机制完全一样,区别只在加载路径——--plugin-dir 直接指向本地目录,marketplace 安装后插件被放到 CC 的插件目录里,之后每次启动自动扫描。plugin.json 是插件的身份证,CC 靠它识别插件名、版本、命名空间(命令前缀 claude-burrow: 就来自这里)。

commands目录

里边是跟插件命令一一对应的几个markdown文档,也可以理解里边是提示词。是告诉LLM输入了对应命令以后应该干什么,比如跟用户如何对话交互、告诉CC执行什么shell、node脚本,或者展示什么。
这些markdown文档可以称作AI时代的业务逻辑代码。
传统软件是代码直接写死控制流,这里是用自然语言描述意图和流程,LLM 负责"解释执行"。好处是灵活、容错(用户输错了 LLM 能理解意图),代价是不确定性——同样的 markdown,不同模型或不同上下文可能走出不同的执行路径。这也是为什么复杂的确定性逻辑(加密、网络请求)还是要放到 js 脚本里,markdown 只描述"做什么",不描述"怎么做"。

scripts目录

里边是js脚本程序,是工具,commands里边让LLM调用的node脚本就在这里,需要先npm install

CC插件的工作机制原理

本质上是 skill/command 注册机制。CC 启动时扫描 commands/ 目录,把每个 .md 文件注册成一个 slash command,文件名就是命令名。
加载方式是按需注入而非全量塞进 system prompt —— CC 维护了一个命令目录(类似函数签名列表),只把命令名和 description 放进 system prompt,当用户实际触发 /claude-burrow:push 的时候,才把对应 markdown 的完整内容注入到当前上下文。
插件有"always-on token 成本"和"on-invoke token 成本"两部分——前者是命令列表,后者是触发时的 markdown 全文。
触发命令后,LLM 读到 markdown 里的指令,比如"运行 node scripts/push.js",然后通过 CC 的 Bash tool 调用它。本质上是LLM 阅读 markdown 里的业务逻辑描述,决定调用什么工具,走的是 Tool Calling 路径。

用户输入 /claude-burrow:push
    ↓
CC 把 push.md 全文注入上下文
    ↓
LLM 阅读 push.md(理解业务流程)
    ↓
LLM 决定调用 Bash tool:node scripts/push.js
    ↓
CC 执行脚本,返回结果给 LLM
    ↓
LLM 根据结果和 push.md 里的指引,决定下一步(比如提示用户输入密码)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容