前言
如果你还没用过 Claude Code,简单说就是 Anthropic 出的一个命令行 AI 编程助手,和 GitHub Copilot CLI 功能类似——你可以在终端里直接跟它对话,让它帮你改代码、查文档、跑测试。但它之前有个问题:不够开放。你想加个自定义工具(比如解析日志、部署到服务器),得自己写脚本然后手动挂载。
上周 Anthropic 官方上线了一个插件目录仓库 anthropics/claude-plugins-official,今天刚开仓库就爆了 26352 stars,说明大家确实等这个功能很久了。
这仓库本身不包含代码,是一个官方维护的插件清单,每个插件指向一个独立的 GitHub repo。你可以一键引用(前提是安装好 Claude Code),或者 fork 后自己魔改。
老规矩,不吹不黑,咱们直接看它能解决什么问题、怎么用、跟其他方案比有哪些优势和坑。
为什么要搞插件机制?
Claude Code 作为命令行工具,默认能力就是读文件、写文件、执行命令。但实际开发中我们经常需要:
- 对接内部 API(CI/CD、Jira、数据库)
- 执行特定领域的工具(比如 protobuf 编译、Swagger 校验)
- 复用已有的 Python/Shell 脚本
之前你得写个 custom_tools.py 然后通过 --tools 参数加载,或者干脆让 Claude 去写 shell 命令。前者配置麻烦,后者安全风险高(Claude 可能会执行你不想执行的命令)。
官方插件目录解决的就是“怎么安全、方便地扩展 Claude Code 的能力”。
插件目录长什么样?
打开仓库,里面核心文件是 plugins.json,类似这样(我从仓库 README 提取简化):
[
{
"name": "pytest-runner",
"description": "Run pytest for a specific module and return results",
"repo": "https://github.com/anthropics/claude-code-plugin-pytest-runner",
"install": "pip install claude-code-plugin-pytest-runner"
},
{
"name": "fetch-url",
"description": "Fetch content from a URL and return text",
"repo": "https://github.com/anthropics/claude-code-plugin-fetch-url",
"install": "pip install claude-code-plugin-fetch-url"
},
{
"name": "shell-executor",
"description": "Execute a shell command with timeouts and approvals",
"repo": "https://github.com/anthropics/claude-code-plugin-shell-executor",
"install": "pip install claude-code-plugin-shell-executor"
}
]
目前官方放了 13 个插件,涵盖测试、代码格式化、HTTP 请求、文件搜索等常见需求。每个插件都是标准的 Python 包,通过 pip 安装后,Claude Code 会自动发现。

核心亮点:安全与可控
这目录最有价值的地方,我个人觉得是安全模型。
Claude Code 默认会扫描已安装的 Python 包,如果发现包名匹配某个插件约定(通常以 claude-code-plugin- 开头),就会在对话中暴露给 Claude。但这不等于 Claude 可以随便调用——每个插件需要你显式授权。第一次调用时,Claude 会问:“这个插件需要执行以下操作(列出具体作用域),允许吗?” 你同意后才生效。
对比以前的自定义工具方式,你写的 Python 脚本里,Claude 可以调用任意函数,基本相当于给它一个后门。官方插件则限制了每个插件的权限描述,插件开发者必须在 plugin.json 里声明需要的权限(比如“读文件”“写文件”“网络访问”),Claude 运行时根据声明做沙箱。
这就解决了我在内网开发时最大的顾虑:**我不希望一个 AI 工具能直接执行 rm -rf /**。官方插件的设计让安全边界更清晰。
跟同类方案对比
现在类似的 AI 编程助手插件生态,我主要知道三个方向:
| 方案 | 配置复杂度 | 执行环境 | 安全机制 | 可自定义 |
|---|---|---|---|---|
| Claude Code 官方插件 | 低(pip install) | 本地 Python 进程 | 权限声明+用户授权 | 高(可 fork 改代码) |
| OpenAI GPTs Actions | 中(写 OpenAPI spec) | 远程服务器 | OAuth+API key | 中(受限于 API) |
| LangChain 工具 | 高(需要整条链) | 本地/远程均可 | 自定义中间件 | 高(但门槛高) |
OpenAI Actions 走的是 REST API 模式,意味着你得自己架个后端服务,而且只能在 OpenAI 的对话界面用,没法集成到 CLI。LangChain 工具 太通用,为了一个简单需求要搭整套链式调用,大炮打蚊子。
Claude Code 插件的好处是纯本地、轻量。你就是装个 Python 包,然后就能在终端的 Claude 对话里用它——不需要后端,不需要额外配置,甚至不需要重启终端。
缺点也很明显:插件只能用 Python 写(至少目前官方目录里的都是),如果你习惯 Go/Node.js 就得自己包装成 Python 子进程。(但好消息是你可以写一个 Python 胶水层,调用外部命令。)
局限性和适用边界
说几个实际踩坑的点:
- 插件数量太少。目前官方目录只有 13 个,覆盖的场景有限。你要对接公司内部的 API 大概率没有现成的,得自己写。
- 插件之间有依赖冲突。举个例子,
pytest-runner依赖pytest6.x,但你项目里用的是 7.x,pip 可能会打架。官方目前没有隔离运行机制,所有插件共享同一个 Python 环境。 - 调试不方便。插件出错了,Claude Code 只给你一个笼统的“插件执行失败”,不会打印 Python 的 traceback。你得去改插件源码加 print。
- 只适用于 Claude Code CLI。如果你是 VSCode 里用 Claude 扩展,或者用网页版,用不了。
所以我的建议是:
- 日常简单重复任务(运行测试、格式化代码、查文档)直接用官方插件,省事。
- 复杂业务逻辑(比如跨多步骤的数据处理)还是写自定义脚本更可控。
- 如果你需要和内部平台交互,最好基于官方插件的模板自己写一个。
快速上手:5 分钟装好并用上
假设你已经装好了 Claude Code(pip install claude-code,具体看官方文档)。接下来:
1. 安装一个官方插件
以 fetch-url 为例:
pip install claude-code-plugin-fetch-url
装完后重启终端(或者新开一个 session),输入 claude 启动。
2. 在对话中使用
[你] 帮我抓一下 https://httpbin.org/get 的内容
[Claude] 好的,我需要使用 fetch-url 插件来获取 URL。这个插件可以发起 HTTP GET 请求。是否允许?
[你] 允许
[Claude] 抓取成功,内容如下:
{
"args": {},
"headers": {
"Host": "httpbin.org",
"User-Agent": "python-requests/2.31.0"
},
"origin": "xxx.xxx.xxx.xxx",
"url": "https://httpbin.org/get"
}
就这么简单。Claude 会自动识别当前可用的插件,并判断什么时候调用。

3. 自己写一个超级简单的插件
官方没有提供快速模板(至少目录里没有),但每个插件 repo 的结构是一致的。我们拿一个最小示例来说明。
创建 my_plugin.py:
# my_plugin.py
from typing import Any
def greet(name: str) -> str:
"""返回欢迎语"""
return f"Hello, {name}!"
# 插件必须暴露一个 Tool 类
class Tool:
def __init__(self):
self.name = "greet"
self.description = "Greet a person by name."
self.parameters = {
"name": {
"type": "string",
"description": "The name to greet"
}
}
def run(self, name: str) -> Any:
return greet(name)
同目录下放 plugin.json:
{
"name": "greet",
"description": "Greet a person by name",
"module": "my_plugin",
"class": "Tool",
"permissions": []
}
然后把整个目录拷贝到 ~/.claude_plugins/(具体路径查看 Claude Code 文档),或者通过 pip 安装(如果打成包的话)。重新打开 Claude Code 就可以用了:
[你] 帮我问候一下张三
[Claude] 我要调用 greet 插件来问候张三。允许吗?
[你] 允许
[Claude] Hello, 张三!
(注:实际 Claude Code 的插件接口可能有变化,以上是基于公开文档推断的简化版。建议去官方仓库看每个插件的源码学具体写法。)
总结(并没有)
我不会说“综上所述”,但我可以告诉你我的结论:
- 如果你已经用 Claude Code,现在立刻去装一两个插件(比如
pytest-runner),效率提升立竿见影。 - 如果你还没用 Claude Code,插件生态让它更值得尝试了,特别是你日常需要 AI 帮你跑代码/查文档的场景。
- 别指望这 13 个插件能覆盖你所有需求,但模板简单,自己写一个也就半天。
最后提一句:这个目录目前全是 Python 插件,如果你有精力,可以看看每个插件的 plugin.json 和 Tool 接口。我估计不久就会出现社区的非官方目录,甚至语言无关的插件规范。但至少现在,Anthropic 这一步走得挺实在。
