hermes-official-plugins
☤ The official plugins for Hermes Agent, built and maintained by Nous Research: Home Assistant, Spotify, Claude Subscription DirectSDK and more, one install away from the Hermes plugin catalog.
翻译准备中
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Get browser notifications when Claude Code (CLI) needs your input, permission approval, or has finished a task.
Run this one-liner to automatically set up everything:
curl -fsSL https://raw.githubusercontent.com/MaximilianMauroner/claude-code-notify/main/install.sh | bash
What this does:
~/.claude/claude-code-notify~/.claude/settings.json. Re-running replaces this installer's hooks and leaves every other hook in place.Requirements: git, node, npm
Install the extension from your browser's store:
Install from the Chrome Web Store (search for "Claude Code Notify")
Install from Firefox Add-ons (search for "Claude Code Notify")
To remove the extension completely:
~/.claude/claude-code-notify/uninstall.sh
This removes the hooks from settings, stops the server, and deletes the installation directory. You'll need to manually remove the browser extension.
If you prefer to set things up manually or want to understand what the install script does:
git clone https://github.com/MaximilianMauroner/claude-code-notify.git ~/.claude/claude-code-notify
cd ~/.claude/claude-code-notify/server
npm install
npm run build
chmod +x ~/.claude/claude-code-notify/hooks/notify.sh
chmod +x ~/.claude/claude-code-notify/hooks/ensure-server.sh
node -p 'process.execPath' > ~/.claude/claude-code-notify/hooks/node-path
The hook runs that recorded binary. Claude Code does not put node on the hook PATH.
Add the following to your ~/.claude/settings.json (create it if it doesn't exist). The installer writes the same fields with the script path quoted absolutely.
PermissionRequest fires when Claude asks to use a tool. matcher "" matches every tool. The hook is async, so it does not block the prompt, and it prints no decision, so it never allows or denies. onFailure is continue, so a failed hook does not deny the request. timeout is seconds. Claude Code does not enforce it while async is true.
Notification uses the same empty matcher, which matches every notification type, including types added later. Stop has no matcher: that event does not support one.
{
"hooks": {
"PermissionRequest": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "\"$HOME/.claude/claude-code-notify/hooks/notify.sh\"",
"timeout": 15,
"async": true,
"onFailure": "continue"
}
]
}
],
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "\"$HOME/.claude/claude-code-notify/hooks/notify.sh\"",
"timeout": 15,
"async": true,
"onFailure": "continue"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "\"$HOME/.claude/claude-code-notify/hooks/notify.sh\"",
"timeout": 15,
"async": true,
"onFailure": "continue"
}
]
}
]
}
}
Install from the Chrome Web Store or Firefox Add-ons (search for "Claude Code Notify").
┌─────────────────┐ HTTP POST ┌─────────────────┐ WebSocket ┌─────────────────┐
│ Claude Code │ ─────────────────► │ Local Server │ ◄───────────────► │ Browser Extension│
│ (with hooks) │ │ (Node.js) │ │ (Chrome/Firefox)│
└─────────────────┘ └─────────────────┘ └─────────────────┘
Permission alerts come from PermissionRequest, which runs when Claude asks to use a tool. The credit for that alert is stored only after the notification server accepts it. Each delivered PermissionRequest then consumes one following permission_prompt for the same session within 15 seconds. Unused credits expire after 15 seconds and are cleared when Stop ends the turn. A permission_prompt with no remaining credit, including a sandboxed command's network request, is still delivered.
Every other Notification type is delivered. A type this version does not know about still shows a generic "Claude Code" notification. When Claude includes a message, that text is shown instead of the default.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗