跳到正文
claudemods

Claude Code 斜杠命令插件

Claude Code 斜杠命令插件可添加 /tally 这类命令,直接在代码中即时作答、无需调用模型,也能改变内置命令的行为。

工具调用计数器 在 Claude Code 中运行

工具调用计数器

统计 Claude 每轮和每个会话的工具调用次数,在加载指示器旁显示计数,并新增 /tally 查看明细。

  • 加载动画
  • 对话记录
  • 状态栏
  • 拦截工具调用
  • 修改界面
  • 添加命令/工具

已在 v2.1.291 实测

Claude Code 斜杠命令插件为你添加可以在输入框中键入的命令,例如 /tally 或 /diff,并在代码中直接给出回应。由于处理函数运行在 Claude Code 内部,它可以根据插件已收集的数据即时回复、打开一个面板或修改某项设置,整个过程不向模型发送请求,也不消耗任何 token。

Claude Code 斜杠命令插件如何注册命令?

插件调用 $.command.register({ name, description })(通常放在 session.start 钩子中),然后用针对该命令名的匹配器处理 command.run:on('command.run', { command: 'tally' }, ...)。处理函数返回 { text } 即可输出一条回复,它会以 Markdown 形式渲染在对话记录中;返回 {} 则静默结束。命令名可以包含字母、数字、_ 和 -,最长 64 个字符。

同一个 command.run 事件也会在其他所有命令执行时触发,因此插件可以对内置命令进行包装。command.describe 让插件改变命令在命令列表中的显示方式,$.command.run 则让一个插件调用另一条命令。创建指南以 /tally 为例完整演示了整个流程。

安装前应该检查什么?

命令类插件会显示 添加命令/工具 标记。单看这个标记风险很低:命令只有在你键入时才会运行。真正重要的是命令运行时会做什么,所以请继续查看其余的标记。一个只读取插件状态并打印表格的命令不需要其他权限;会打开面板的命令会多出 修改界面;会运行 git、读取文件或访问服务器的命令则会显示 执行命令、读取文件 或 网络访问。

另外还要留意命令名冲突。两个插件可能会尝试注册同一个命令名;优先选择使用明确、具体命令名并在页面上写清楚的插件。

什么时候该用插件命令而不是提示词?

当答案是机械性的时候,就用插件命令:计数、列出清单、切换某项设置、打开一个视图。当你希望 Claude 动脑思考答案时,就用普通的命令文件或技能(skill)。许多实用的插件会把两者结合起来:在钩子中收集数据,再通过一条命令把结果汇报给你。

常见问题

插件命令和自定义命令文件有什么区别?
.claude/commands 中的命令文件会把一段提示词发给 Claude。插件命令则在 Claude Code 内部运行 JavaScript,可以直接根据插件收集到的状态立即作答,不需要发起模型请求。
插件能修改内置命令吗?
可以。command.run 钩子会在每条命令执行前看到它,包括内置命令,插件可以直接作答、修改命令或继续传递。command.describe 则能改变命令在列表中的显示方式。
插件命令在 claude -p 中能用吗?
能。钩子在打印模式下同样会运行,所以 claude -p "/tally" 这样的命令可以正常工作,只是屏幕上不会绘制任何界面。