paulpreibisch/agentvibes/hermes-agentvibes-hook
Claude Code and agent skill by paulpreibisch/agentvibes
- community
Checking that the SKILL.md file is still in the repository.
Auto-speak every Hermes response via AgentVibes TTS on a remote machine over SSH. Portable skill — works with any AgentVibes setup.
Install
npx vskill@latest install paulpreibisch/agentvibes/hermes-agentvibes-hookSKILL.md
Hermes ↔ AgentVibes TTS Hook
Send every Hermes response as spoken audio to a remote machine via the AgentVibes SSH receiver.
Architecture
Setup
1. Install AgentVibes on the target machine (the one with speakers)
2. Generate an SSH key on the Hermes server
Use an absolute path — tilde (~) expansion does not work inside Python subprocess argument lists.
Register the public key on the target machine's agentvibes-receiver user.
3. Create the hook directory and files
Create <hermes_home>/hooks/agentvibes-tts/HOOK.yaml:
Create <hermes_home>/hooks/agentvibes-tts/handler.py — update the four config constants at the top:
4. Restart gateway
5. Verify
Check hooks/agentvibes-tts/tts-hook.log after the next agent turn. Every SSH call logs its result (exit code, receiver ACK, or error message).
Configuration Reference
| Constant | Description | Notes | |
|---|---|---|---|
AGENTVIBES_SSH_KEY | Absolute path to SSH private key | No ~ — subprocess will not expand it | |
AGENTVIBES_HOST | Hostname or IP of target machine | Tailscale IP recommended | |
AGENTVIBES_PORT | SSH port of AgentVibes receiver | Set during npx agentvibes install | |
AGENTVIBES_USER | SSH user on target machine | agentvibes-receiver | |
AGENTVIBES_VOICE | Voice in voiceId::SpeakerName format | e.g. en_US-libritts-high::Leo-8 | |
AGENTVIBES_PROJECT | Project tag shown in receiver log | hermes | |
MAX_CONTENT_LEN | Max chars of spoken content | Prefix length NOT counted | |
PREFIX | Spoken intro before each response | Hermes here, | |
_KNOWN_HOSTS | Absolute path to persistent known_hosts | Required for accept-new to survive restarts | |
_MIN_INTERVAL_S | Seconds between TTS calls | Prevents queue flooding on rapid turns |
How It Works
- Guards on
event_type == "agent:end"— ignores all other hook events - Strips markdown (code blocks, bold, links, emoji — anywhere in the string)
- Prepends
PREFIX, truncates at last word boundary beforeMAX_CONTENT_LENchars, appends... - Builds JSON payload with voice, project, and provider fields (uses AgentVibes full format, not legacy plain text)
- Base64-encodes and sends over SSH — every call logged to
tts-hook.log StrictHostKeyChecking=accept-new+ explicitUserKnownHostsFileprotects against MITM after first connect
Troubleshooting
- No audio, no `tts-hook.log`: Check
HERMES_HOMEenv var so the hook file is found; check directory write permissions - SSH permission denied: Register the key's public half on the
agentvibes-receiveruser - SSH host key changed error: Remove the stale entry from the
_KNOWN_HOSTSfile and reconnect once - "Queued" but silent on target: Check the queue watcher (
tts-watcher.ps1) is running on the target machine - Responses not spoken: Check
tts-hook.log— SSH errors are now logged with full detail
MCP Server Integration
AgentVibes ships with an MCP server (npx -y -p agentvibes@beta agentvibes-mcp-server) with tools for voice selection, effects, background music, and mute/unmute. Install it in your Hermes MCP config to control AgentVibes with natural language commands. The MCP server must run on the target machine where speakers live.
Security
- Security scanPassed, 91 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingdocs/hermes/skills/tts/hermes-agentvibes-hook/SKILL.md
Popularity
- Repository stars
- 153
- Repository forks
- 24
- 7-day trend score
- 25
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/paulpreibisch/agentvibes/hermes-agentvibes-hook)