命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
列出已安装插件及其在各配置范围下的启用/禁用状态,包括插件ID、版本、来源等信息
claude plugin list [options]claude plugin list 是 claude plugin 子命令组的一员,在 shell 中运行,不需要进入交互会话。官方文档描述它按安装范围(scope)和来源分组列出已安装的插件,--json 输出中每个插件对象包含 id、name、version、enabled、scope、source 字段。
同一子命令组还有 install、uninstall、enable、disable、update、validate(见官方 Plugins reference 的 Related Commands)。
版本要求:官方 CLI 参考注明 --json 选项需要 Claude Code v2.1.268 或更高版本。
claude plugin list [options]
| Option | 说明 |
|---|---|
--available | 显示各 marketplace 中可用的插件,而不是已安装的插件 |
--json | 以 JSON 输出,替代人类可读格式 |
--filter | 按插件名或关键词过滤 |
-h, --help | 显示帮助 |
官方示例:
# 列出所有已安装插件
claude plugin list
# 显示 marketplace 中可用的插件
claude plugin list --available
# 以 JSON 输出
claude plugin list --json
默认(人类可读)输出按 scope 与来源分组:
| 分组 | 来源 |
|---|---|
| User scope | ~/.claude/settings.json |
| Project scope | .claude/settings.json |
| Local scope | .claude/settings.local.json |
| Managed scope | managed settings(管理员下发) |
从 claude.ai 账号同步来的插件会出现在 Synced from claude.ai 标题下。官方文档说明,同步插件在终端会话中需要 Claude Code v2.1.273 或更高版本。
--json 输出:stdout 的最后一行是一个 JSON 对象,包含:
command:"list"outcome:"ok" 或 "failed"message:对结果的人类可读描述plugins:插件对象数组,outcome 为 "ok" 时出现;每个插件对象包含 id、name、source、enabled、scope、version官方明确要求只解析最后一行,因为 Claude Code 可能在它上面打印其他信息。
退出码:官方文档没有给出 claude plugin list 的退出码定义,这里不列表格。脚本中可以读取 JSON 的 outcome 字段判断成败。
基于"最后一行是 JSON"的约定,取最后一行再交给 jq:
# 先看一遍真实结构(字段名以你本机输出为准)
claude plugin list --json | tail -n 1 | jq .
# 列出已启用插件的 ID
claude plugin list --json | tail -n 1 | jq -r '.plugins[] | select(.enabled) | .id'
# 命令失败时中止脚本
claude plugin list --json | tail -n 1 | jq -e '.outcome == "ok"' >/dev/null
enabled、id 等字段名来自官方文档的列举。正式写入 CI 之前,建议先用第一条命令在你的版本上确认。
claude plugin list(shell) | /plugin list(会话内) | |
|---|---|---|
| 运行位置 | shell,不进入会话 | Claude Code 会话内 |
| 过滤 | 官方 CLI 参考的选项表列有 --filter(按插件名或关键词过滤),未列出 --enabled / --disabled | 官方文档说明可传 --enabled / --disabled 只显示对应状态的插件 |
| 定位 | 官方文档称脚本场景应使用 claude plugin shell 命令,它们不会打开插件面板 | 会话内的 /plugin disable / enable / uninstall 会打开插件面板并保持打开 |
CLI 是否也接受 --enabled / --disabled,官方 CLI 参考表没有列出,请以本机 claude plugin list --help 为准。
| 约束 | 说明 |
|---|---|
| Managed scope 插件只读 | 由管理员通过 managed settings 安装,用户不能修改;list 只是展示它们 |
claude plugin 命令不作用于已打开的会话 | 另一终端里运行 claude plugin 命令后,已打开的会话需要执行 /reload-plugins 才能反映变化;list 本身是只读查询 |
--json 时不要整体 parse stdout:官方文档明确说前面可能有其他输出,只有最后一行是结果对象。uninstall / disable 移除(来自单个 issue 报告):issue #73697 的报告者在 Claude Code 2.1.199 / Windows 11 上遇到,project scope 安装的插件被 claude plugin uninstall 判为"enabled at project scope",而 claude plugin disable --scope local 又提示 "already disabled at local scope"。报告者推测 uninstall 读的是 ~/.claude/plugins/installed_plugins.json,disable 读的是 settings 文件。该 issue 目前为 open 状态,带有 reproduced 标签(维护者在正式版上复现),与已因 stale 关闭的 #62966 症状相同;上述对 installed_plugins.json 的推测仍是报告者自己的分析。--available 与默认模式互斥地切换视图:官方描述是"显示可用插件,而不是已安装插件"。看已安装状态时不要加它。--json 配合 jq 判断某个插件 ID 是否已安装或已启用,例如在团队 onboarding 脚本里决定是否需要 claude plugin install。--available 在不打开 /plugin 界面的情况下,列出已添加的 marketplace 中的插件。