为 Claude Code、Codex 和 Gemini CLI 生成完成通知等提醒配置。
钩子是 AI 智能体在特定时刻运行的一条简短命令,比如完成回复时。这款免费工具帮你写好任务完成提醒等所需的钩子或内置设置。
选择你使用的智能体、希望收到提醒的时刻(完成回复或需要你批准),以及提醒方式。本页会生成对应的配置片段,注明应写入哪个文件,还可以将其合并到该文件的副本中。Claude Code 使用 Stop 和 Notification 钩子;Codex 和 Gemini CLI 各有对应的钩子。你输入的任何内容都不会离开浏览器。
选择提醒方式。
以下选项需要 JavaScript。如果未启用,本页会显示最常用的配置:Claude Code 完成回复或需要你处理时,在 Mac 上显示横幅。
你的配置。
至少选择一个提醒时刻:完成回复时,或需要你处理时。
如果只需要 Mac 横幅,你可能不需要钩子。如果需要手机提醒、语音播报或仅播放提示音,请使用下方生成的钩子。在 iTerm2、Ghostty 和 Kitty 中,如果你看起来已离开终端,Claude Code 本身就会在完成回复或需要你处理时显示桌面通知。在 iTerm2 中,还需打开 Settings > Profiles > Terminal,勾选 Notification Center Alerts,点按 Filter Alerts,再开启 Send escape sequence-generated alerts。钩子会与内置通知同时运行,因此两者都启用时,你可能会收到两次提醒。
如果只需要 Mac 横幅,你可能不需要钩子。如果需要手机提醒、语音播报或仅播放提示音,请使用下方生成的钩子。Codex 自带的终端提醒默认开启。Codex 文档说明,这些提醒使用转义序列,部分终端会将其显示为桌面通知,因此你的终端可能已经在显示这些通知。如果只想在所选时刻收到提醒,请使用下方的 [tui] 配置。这些设置控制的是 Mac 上的提醒,不能替代手机提醒钩子。
如果只需要 Mac 横幅,你可能不需要钩子。如果需要手机提醒、语音播报或仅播放提示音,请使用下方生成的钩子。Gemini CLI 的内置通知会在 iTerm2、WezTerm、Ghostty 和 Kitty 中显示为桌面通知。这是实验性功能,默认关闭:在 Gemini CLI 中通过 /settings > General > Enable Notifications 开启。内置通知和下方钩子只选其一,否则你会收到两次提醒。
让 Codex 的内置提醒使用终端响铃。
可选:使用 Codex 的内置 Mac 提醒。
写入 ~/.codex/config.toml
如果文件中已有 [tui] 配置段,请勿再次添加 [tui] 这一行。在已有的配置段下,修改这些键中已存在的键值,只添加缺少的键。重复的 [tui] 段标题或重复的键都会导致 Codex 无法读取文件。
响铃的具体表现取决于你的终端。在 Terminal 中,打开 Settings > Profiles > Advanced > Bell,即可选择声音、标记或跳动的程序坞图标。
为你所选的提醒生成的钩子。
写入 ~/.claude/settings.json~/.codex/hooks.json~/.gemini/settings.json
将这些条目添加到文件的 "hooks" 对象中,与已有条目并列。不要替换整个文件,因为其中可能还保存着你的其他设置和其他工具的钩子。设置文件必须使用严格的 JSON 格式,不能有注释或末尾多余的逗号。更简单的做法是将当前文件的内容粘贴到下方的合并框中。
将这些内容作为新条目添加到文件中。Cowork Island 和其他工具也可能写入同一个文件,因此切勿覆盖它;下方的合并框可以帮你添加。然后打开 Codex,输入 /hooks,并将每个新条目设为可信。在你完成这一步之前,Codex 会跳过新增或修改过的钩子。
将这些条目添加到文件的 "hooks" 对象中,与已有条目并列,也可以使用下方的合并框。Gemini CLI 钩子只能输出 JSON,因此每条命令最后都会输出 {}。
将这项设置添加到文件中,保留已有内容,也可以使用下方的合并框。
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "/usr/bin/osascript -e 'on run argv' -e 'display notification (item 1 of argv) with title (item 2 of argv) subtitle (item 3 of argv) sound name \"Glass\"' -e 'end run' 'Claude Code finished' 'Claude Code' \"${PWD##*/}\""
}
]
}
],
"Notification": [
{
"matcher": "permission_prompt|elicitation_dialog|elicitation_url_dialog",
"hooks": [
{
"type": "command",
"command": "/usr/bin/osascript -e 'on run argv' -e 'display notification (item 1 of argv) with title (item 2 of argv) subtitle (item 3 of argv) sound name \"Funk\"' -e 'end run' 'Claude Code needs you' 'Claude Code' \"${PWD##*/}\""
}
]
}
]
}
}
- 在 Claude Code 中,权限提醒和已连接工具的输入请求会在提示出现约 6 秒后送达,打字会推迟提醒。这是 Claude Code 的 Notification 钩子的工作方式。其他提问可能不会触发这个钩子。
- 完成提醒使用 Stop。每次 Claude 完成一条回复时都会触发,不只是长任务结束时。你中断 Claude 时不会触发。
- 只有你在工作区信任对话框中确认信任后,Claude Code 才会运行该文件夹中的钩子。如果是工作用的 Mac,你的组织可能只允许使用其自己的钩子。
- 这里使用 Claude Code 的内置设置,无需钩子。它涵盖两个时刻:任务完成,以及权限提示正在等待你处理。你也可以在 Claude Code 中通过
/config> Local notifications 设置。响铃的具体表现取决于你的终端:在 Terminal 中,打开 Settings > Profiles > Advanced > Bell。 - 这会开启 Gemini CLI 的实验性内置通知,并要求使用终端响铃。这些通知涵盖两个时刻:需要你操作,以及会话完成。
- PermissionRequest 条目在后台运行,不会替你作出决定:Codex 仍会照常显示批准提示。
- 这些钩子和 Gemini CLI 的内置通知(
/settings中的 Enable Notifications)只选其一,否则你会收到两次提醒。 - Gemini CLI 文档说明,免费层级和 Google One 用户已于2026年6月18日迁移至 Antigravity CLI。这里的设置适用于 Gemini CLI。
- 如果已打开的会话没有应用更改,请重启该会话。
可选:改用 Codex 的 notify 设置显示横幅。
Codex 的 notify 设置会在每轮交互完成时运行一个程序,绝不会在请求批准时运行。如果使用它,请去掉上方的 Stop 条目,否则同一条回复会触发两条横幅。
1. 将以下内容保存为 ~/.codex/notify-macos.js
Codex 不会在这项设置中展开 ~,所以必须使用完整路径。在 Terminal 中运行 echo $HOME 即可查看。
2. 将这一行添加到 ~/.codex/config.toml
请在上方输入用户名;输入前,这一行会使用 YOUR_NAME 占位。
- 每个文件只允许有一行
notify。如果文件中已有这一行,请勿再添加,否则文件将无法加载。请改用上方的 Stop 钩子。 - 将这一行放在文件靠前的位置,位于第一个以
[开头的行之前。如果放在[tui]等段标题下方,Codex 会将其视为该配置段的一部分并忽略它。 - Cowork Island 从不使用
notify,因此这一行不会与应用冲突。
在 Terminal 中测试:
你的 ntfy 主题,名称随机生成。
ntfy.sh 上的主题是公开的。任何知道或猜中主题名称的人都能读取发送到该主题的内容,因此请像保管密码一样保管它。这也是主题名称由浏览器随机生成、长度为 32 个字符的原因。钩子只会发送“Claude Code 已完成”这样的固定文字,绝不会发送智能体的回复或文件内容。
在手机上安装 ntfy 应用,并订阅这个主题。ntfy.sh 是免费的第三方服务,有自己的每日消息数量限制。
测试提醒。
将这一行粘贴到 Terminal 中,然后按 Return 键。它运行的命令与钩子将运行的命令相同,因此会向你的主题发送一条测试消息。
/usr/bin/osascript -e 'on run argv' -e 'display notification (item 1 of argv) with title (item 2 of argv) subtitle (item 3 of argv) sound name "Glass"' -e 'end run' 'Claude Code finished' 'Claude Code' "${PWD##*/}"
测试终端响铃。
将这一行粘贴到 Terminal 中,然后按 Return 键:
printf '\a'
允许“脚本编辑器”显示通知。这些横幅来自 macOS 的“脚本编辑器”应用,而 macOS 不会先询问你是否允许通知:在你允许之前,不会出现横幅,也不会提示原因。先运行一次测试命令,然后打开“系统设置”>“通知”,找到“脚本编辑器”,开启“允许通知”。
合并到当前文件中。
将当前文件的全部内容粘贴到这里,本页就会添加新条目。文件中已有的钩子条目保持原样,包括其他工具和 Cowork Island 的条目。如果你选择的是内置设置,新值会替换旧值,本页也会说明更改了哪一项。同一个选择合并两次,也不会重复添加。你粘贴的内容只会留在本页。
合并功能需要 JavaScript。如果未启用,请按上方说明手动添加条目。
这个选项无需合并:请按上方说明,将设置写入 ~/.codex/config.toml。
用文本编辑器打开文件,全选并复制,然后粘贴到这里。如果文件尚不存在,请留空。
如果你也在使用 Cowork Island。
Cowork Island 是本工具作者开发的 Mac 应用。连接 Claude Code、Codex 或 Gemini CLI 时,它会在同一批文件中添加自己的条目。这些条目与你现有的钩子并存。只要某个条目的命令中有任何位置包含 /.perch/(不区分大小写),应用就会将其视为自己的条目。移除和重新添加时,操作的是整个条目,而非单条命令。
- 这里的每个配置片段都是独立条目,且绝不指向
~/.perch/内部,因此重新安装或关闭 Cowork Island 都不会影响它。 - 不要将这里的命令粘贴到 Cowork Island 的条目中,也不要将自己的脚本保存在
~/.perch/中,否则应用会将其视为自己的内容。 - Cowork Island 的集成处于开启状态时,不要手动删除它的条目,否则应用下次启动时会重新添加。
- 两者可以并行运行。Claude Code 和 Codex 会同时运行所有匹配的钩子,Gemini CLI 则会等待所有钩子运行完毕。
- 对于 Claude Code,权限提示的提醒使用 Notification 事件,绝不使用 PermissionRequest 钩子,因此绝不会替你回答请求。
- 对于 Gemini CLI,本工具生成 AfterAgent 和 Notification 钩子,绝不生成 BeforeTool 钩子。
本页如何处理你的输入。
所有操作都在浏览器中完成。生成器不发出网络请求、不存储任何内容,也不设置 Cookie:你的选择、输入和粘贴内容都不会离开本页。只有点按“复制”时,内容才会写入剪贴板。ntfy 主题名称由浏览器内置的随机数生成器生成。与本站其他页面一样,本次访问本身会计入统计,具体见隐私政策(英文)。
免配置方案。
Cowork Island 是本工具作者开发的一款 Mac 应用。它把你的 AI 智能体会话汇集在刘海下方的面板中,显示每个会话的状态,让你一眼看清哪个会话需要你处理。有没有刘海都能用。
- Claude Code 和应用在你的 Mac 上找到的工具会自动连接。Codex 会保持关闭,直到你在「设置」中开启它,并在 Codex 中允许 Cowork Island 的钩子运行。
- 每个会话都会显示状态,等待你回应时会显示为「需要你处理」。默认情况下,小岛这时会自动展开,除非该会话所在的终端或应用已经在前台。
- 会话完成时,小岛默认会展开 5 秒。
- 对于 Claude Code,你可以在小岛上允许或拒绝某项操作,或回答选择题。在小岛上回答是免费的。对于其他工具,你可能需要在各自的应用或终端中作出回应。
- 声音默认关闭,需要你手动开启。「需要审批」提示音免费;「会话完成」提示音属于 Pro 功能。应用本身不会显示 macOS 横幅通知。
免费版一次显示一张会话卡片。Pro 会显示你的所有会话,跳转回会话所在的窗口、标签页或窗格也是 Pro 功能。7 天 Pro 试用会自动开始,每台 Mac 仅限一次,无需填写支付信息。查看方案和安装指南。
免费下载来源。
- Claude Code 文档:钩子参考
- Claude Code 文档:钩子指南
- Claude Code 文档:终端配置
- Claude Code 文档:设置参考
- Codex 文档:钩子
- Codex 文档:高级配置
- Codex 文档:配置参考
- Gemini CLI 文档:钩子参考
- Gemini CLI 文档:通知
- Gemini CLI 文档:配置参考
- Mac 自动化脚本指南:显示通知
- Terminal 使用手册:高级设置
- ntfy 文档:发布消息
- Cowork Island 常见问题和安装指南
来源核查日期:2026年10月18日。本工具由 Cowork Island 的作者编写。如需指正内容,请发邮件至 support@coworkisland.com,或在 GitHub 上提交 Issue。