SpyBara
Go Premium

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

No changes for this document in this history range.

2026
Thu 1 23:59 Fri 2 22:59 Sat 3 23:57 Tue 6 23:59 Thu 8 22:58 Fri 9 23:02 Sat 17 23:57 Tue 20 23:00 Thu 22 22:58 Fri 23 22:59 Sun 25 23:58 Fri 30 23:01

创建一个 mod

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

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

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

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

[!NOTE]

请使用 Claude Code v2.1.287 或更高版本。在 shell 中运行 claude --version 进行检查。要查看 mod 是否可以为您加载,请参阅检查 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/。

[!NOTE]

在 default 和 acceptEdits 权限模式中,Claude Code 会在 Claude 创建 mod 的每个文件之前请求您批准,因为 mods 文件夹是一个受保护的路径。请在每个文件出现时批准它。

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 打印计数,对代码的编辑在会话运行时生效: