SpyBara
Go Premium

plugins/mods/create.md 2026-09-30 23:00 UTC to 2026-10-01 21:02 UTC

This page contains 395 additions and 0 deletions.

2026
Thu 1 21:02

创建一个 mod

让 Claude 从描述中编写一个 Claude Code mod,或者自己编写一个来计算工具调用并添加命令。学习重新加载和验证循环。

Mod 是一个 Claude Code 插件,具有一个入口文件,称为 hooks 模块:一个 JavaScript 或 TypeScript 文件,其函数在事件发生时由 Claude Code 调用。有两种方式来创建一个:

  • 让 Claude 编写它:在 Claude Code 会话中描述你想要的内容
  • 自己编写:按照教程学习 mod 代码的工作原理。你不需要 Node.js、打包工具或构建步骤,因为 Claude Code 直接加载 .js 和 .ts 文件。

如果你还没有决定 mod 是否是合适的工具,请先阅读概述中的比较。

让 Claude 为你编写一个 mod

在交互式 Claude Code 会话中描述你想要的 mod,Claude 会编写它。Claude 使用一个名为 plugin-authoring 的内置技能,它告诉 Claude 在哪里编写 mod、你的版本有哪些事件和方法,以及 mod 如何被加载。当你请求一个 mod 时,Claude 可以加载该技能,或者你可以通过在 Claude Code 提示符处运行 /plugin-authoring 来自己加载它。

一旦你批准了 mod,它就会运行,除了在某些会话中 Claude 编写的 mod 无法加载的情况。

1

描述 mod

用你自己的话请求 mod,例如 make a mod that shows the current git branch above the prompt。Claude 在会话的 mods 文件夹中的自己的目录中编写 mod,该文件夹是 ~/.claude/dev-mods/ 后跟会话的 ID。mod 的完整路径看起来像 ~/.claude/dev-mods/3f2a9c1e-5b7d-4e8a-9c21-6d0f4b8a7e13/git-branch/。

2

批准 mod

当 Claude 保存第一个文件时,Claude Code 会询问是否为会话启用热重新加载。热重新加载运行此会话中 Claude 编写的 mod,并在每个后续更改它们的转折处选择每个更改。

选择以下答案之一:

  • 为此会话启用:会话的 mods 文件夹中的 mod 在转折结束时加载,并在每个更改它们的转折结束时重新加载。你的答案在整个会话中持续,包括在你恢复它之后。
  • 暂时不:现在什么都不加载。文件保留在 Claude 编写的位置,mod 在该会话下次启动时加载。要防止 mod 加载,请删除其目录。
3

检查 mod 是否已加载

在 Claude Code 提示符处运行 /plugin,然后按 Tab 直到选中已安装选项卡。它列出了 mod,你可以在那里关闭它。

4

尝试 mod

使用你请求的内容。对于示例提示,当前分支名称出现在提示框上方。如果 mod 没有做你想要的,告诉 Claude 要改变什么。mod 在每个更改其文件的转折结束时重新加载,所以你可以在 Claude 完成后立即尝试更改。

在其他会话中使用 mod

Claude 编写的 mod 仅在创建它的会话中加载,一旦 Claude Code 的会话比 cleanupPeriodDays 更旧,它就会删除该会话的 mods 文件夹。要保留 mod,请将其目录从 mods 文件夹复制到你自己的位置,例如 ~/mods/git-branch。然后选择如何加载它:

  • 在你启动的会话中:在你的 shell 中,运行 claude --plugin-dir ~/mods/git-branch
  • 对于其他人:将其添加到市场,以便他们可以安装它

Claude 编写的 mod 无法加载的会话

Claude 编写的 mod 仅在你批准它后加载,在允许 mod 运行的受信任工作区中。在这些会话中它不会加载:

  • 没有人在那里批准:会话无法向你显示提示,如在 claude -p 运行或 dontAsk 模式中
  • 工作区不受信任:你还没有接受目录的信任提示
  • Mod 已停止:你使用 --safe-mode 或 --bare 启动,你设置了 disableAllHooks,或你的组织的托管设置阻止了它

自己编写一个 mod

在本教程中,你构建一个名为 first-mod 的 mod,它计算 Claude 进行的工具调用,在 Claude 工作时在微调器旁边显示计数,并添加一个 /tally 命令来打印它。然后你读取 Claude Code 在你的 mod 旁边写入的类型声明,并运行 claude plugin validate。它们一起向你展示你的版本提供的事件和方法,以及 Claude Code 从你的代码中读取的内容。

这个录制显示了完成的 mod。微调器计算工具调用,/tally 打印计数,对代码的编辑在会话运行时生效: