agentvibes 5.10.1 → 5.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/.agentvibes/config.json +15 -1
  2. package/.agentvibes/install-manifest.json +342 -0
  3. package/.claude/audio/ui/CREDITS.txt +16 -0
  4. package/.claude/audio/ui/bling-success.wav +0 -0
  5. package/.claude/commands/agent-vibes/receiver.md +64 -0
  6. package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
  7. package/.claude/commands/agent-vibes-rdp.md +24 -24
  8. package/.claude/config/audio-effects.cfg +5 -4
  9. package/.claude/config/audio-effects.cfg.sample +52 -52
  10. package/.claude/config/background-music-enabled.txt +1 -1
  11. package/.claude/config/background-music-position.txt +27 -0
  12. package/.claude/config/background-music-volume.txt +1 -0
  13. package/.claude/config/background-music.cfg +1 -0
  14. package/.claude/config/background-music.txt +1 -0
  15. package/.claude/config/language.txt +1 -0
  16. package/.claude/config/personality.txt +1 -0
  17. package/.claude/config/reverb-level.txt +1 -0
  18. package/.claude/config/tts-speech-rate.txt +1 -0
  19. package/.claude/config/tts-verbosity.txt +1 -0
  20. package/.claude/docs/TERMUX_SETUP.md +408 -408
  21. package/.claude/github-star-reminder.txt +1 -1
  22. package/.claude/hooks/audio-cache-utils.sh +0 -0
  23. package/.claude/hooks/audio-processor.sh +57 -18
  24. package/.claude/hooks/background-music-manager.sh +0 -0
  25. package/.claude/hooks/bmad-party-speak.sh +0 -0
  26. package/.claude/hooks/bmad-speak-enhanced.sh +0 -0
  27. package/.claude/hooks/bmad-speak.sh +0 -0
  28. package/.claude/hooks/bmad-tts-injector.sh +0 -0
  29. package/.claude/hooks/bmad-voice-manager.sh +0 -0
  30. package/.claude/hooks/clawdbot-receiver-SECURE.sh +0 -0
  31. package/.claude/hooks/clawdbot-receiver.sh +0 -0
  32. package/.claude/hooks/clean-audio-cache.sh +0 -0
  33. package/.claude/hooks/cleanup-cache.sh +0 -0
  34. package/.claude/hooks/configure-rdp-mode.sh +0 -0
  35. package/.claude/hooks/download-extra-voices.sh +0 -0
  36. package/.claude/hooks/effects-manager.sh +0 -0
  37. package/.claude/hooks/github-star-reminder.sh +0 -0
  38. package/.claude/hooks/kokoro-installer.sh +117 -0
  39. package/.claude/hooks/kokoro-server.py +219 -0
  40. package/.claude/hooks/kokoro-tts.py +141 -0
  41. package/.claude/hooks/language-manager.sh +0 -0
  42. package/.claude/hooks/learn-manager.sh +0 -0
  43. package/.claude/hooks/macos-voice-manager.sh +0 -0
  44. package/.claude/hooks/migrate-background-music.sh +0 -0
  45. package/.claude/hooks/migrate-to-agentvibes.sh +0 -0
  46. package/.claude/hooks/optimize-background-music.sh +0 -0
  47. package/.claude/hooks/path-resolver.sh +0 -0
  48. package/.claude/hooks/personality-manager.sh +0 -0
  49. package/.claude/hooks/piper-download-voices.sh +39 -16
  50. package/.claude/hooks/piper-installer.sh +11 -6
  51. package/.claude/hooks/piper-multispeaker-registry.sh +0 -0
  52. package/.claude/hooks/piper-voice-manager.sh +6 -6
  53. package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +3 -1
  54. package/.claude/hooks/play-tts-agentvibes-receiver.sh +1 -0
  55. package/.claude/hooks/play-tts-elevenlabs.sh +360 -0
  56. package/.claude/hooks/play-tts-enhanced.sh +0 -0
  57. package/.claude/hooks/play-tts-kokoro.sh +127 -0
  58. package/.claude/hooks/play-tts-macos.sh +0 -0
  59. package/.claude/hooks/play-tts-piper.sh +0 -0
  60. package/.claude/hooks/play-tts-soprano.sh +0 -0
  61. package/.claude/hooks/play-tts-ssh-remote.sh +9 -2
  62. package/.claude/hooks/play-tts-termux-ssh.sh +3 -1
  63. package/.claude/hooks/play-tts-windows-receiver.sh +0 -0
  64. package/.claude/hooks/play-tts.sh +78 -2
  65. package/.claude/hooks/prepare-release.sh +0 -0
  66. package/.claude/hooks/provider-commands.sh +71 -22
  67. package/.claude/hooks/provider-manager.sh +15 -7
  68. package/.claude/hooks/replay-target-audio.sh +0 -0
  69. package/.claude/hooks/requirements.txt +6 -6
  70. package/.claude/hooks/sentiment-manager.sh +0 -0
  71. package/.claude/hooks/session-start-tts.sh +0 -0
  72. package/.claude/hooks/soprano-gradio-synth.py +139 -139
  73. package/.claude/hooks/speed-manager.sh +0 -0
  74. package/.claude/hooks/stop-tts.sh +0 -0
  75. package/.claude/hooks/termux-installer.sh +0 -0
  76. package/.claude/hooks/translate-manager.sh +0 -0
  77. package/.claude/hooks/translator.py +237 -237
  78. package/.claude/hooks/tts-queue-worker.sh +0 -0
  79. package/.claude/hooks/tts-queue.sh +0 -0
  80. package/.claude/hooks/verbosity-manager.sh +0 -0
  81. package/.claude/hooks/voice-manager.sh +0 -0
  82. package/.claude/hooks-windows/audio-cache-utils.ps1.user.bak +119 -0
  83. package/.claude/hooks-windows/kokoro-server.py +219 -0
  84. package/.claude/hooks-windows/kokoro-tts.py +107 -0
  85. package/.claude/hooks-windows/play-tts-kokoro.ps1 +191 -0
  86. package/.claude/hooks-windows/play-tts.ps1 +29 -1
  87. package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
  88. package/.claude/hooks-windows/soprano-gradio-synth.py.user.bak +153 -0
  89. package/.claude/piper-voices-dir.txt +1 -0
  90. package/.claude/verbosity.txt +1 -1
  91. package/.clawdbot/README.md +105 -105
  92. package/.mcp.json +6 -19
  93. package/README.md +127 -2116
  94. package/RELEASE_NOTES.md +73 -0
  95. package/WINDOWS-SETUP.md +208 -208
  96. package/bin/agent-vibes +39 -39
  97. package/bin/agentvibes-voice-browser.js +0 -0
  98. package/bin/agentvibes.js +0 -0
  99. package/bin/mcp-server.js +121 -121
  100. package/bin/mcp-server.sh +0 -0
  101. package/bin/test-bmad-pr +78 -78
  102. package/mcp-server/QUICK_START.md +203 -203
  103. package/mcp-server/README.md +345 -345
  104. package/mcp-server/WINDOWS_SETUP.md +0 -0
  105. package/mcp-server/examples/claude_desktop_config.json +11 -11
  106. package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
  107. package/mcp-server/examples/custom_instructions.md +169 -169
  108. package/mcp-server/install-deps.js +0 -0
  109. package/mcp-server/server.py +1807 -1807
  110. package/mcp-server/test_server.py +0 -0
  111. package/package.json +4 -3
  112. package/src/cli/list-personalities.js +110 -110
  113. package/src/cli/list-voices.js +114 -114
  114. package/src/commands/bmad-voices.js +394 -394
  115. package/src/commands/install-mcp.js +3 -3
  116. package/src/console/app.js +25 -9
  117. package/src/console/audio-env.js +85 -1
  118. package/src/console/brand-colors.js +13 -13
  119. package/src/console/constants/personalities.js +44 -44
  120. package/src/console/navigation.js +4 -0
  121. package/src/console/tabs/agents-tab.js +12 -6
  122. package/src/console/tabs/help-tab.js +314 -314
  123. package/src/console/tabs/music-tab.js +7 -25
  124. package/src/console/tabs/readme-tab.js +272 -272
  125. package/src/console/tabs/setup-tab.js +1704 -120
  126. package/src/console/tabs/voices-tab.js +72 -88
  127. package/src/console/widgets/destroy-list.js +25 -25
  128. package/src/console/widgets/format-utils.js +14 -2
  129. package/src/console/widgets/help-bar.js +55 -0
  130. package/src/console/widgets/notice.js +55 -55
  131. package/src/console/widgets/reverb-picker.js +429 -41
  132. package/src/console/widgets/track-picker.js +60 -51
  133. package/src/i18n/de.js +2 -1
  134. package/src/i18n/en.js +1 -0
  135. package/src/i18n/es.js +2 -1
  136. package/src/i18n/fr.js +2 -1
  137. package/src/i18n/hi.js +2 -1
  138. package/src/i18n/ja.js +2 -1
  139. package/src/i18n/ko.js +2 -1
  140. package/src/i18n/pt.js +2 -1
  141. package/src/i18n/strings.js +9 -9
  142. package/src/i18n/zh-CN.js +2 -1
  143. package/src/installer/language-screen.js +31 -31
  144. package/src/installer/music-file-input.js +304 -304
  145. package/src/installer.js +95 -7
  146. package/src/services/config-service.js +264 -264
  147. package/src/services/language-service.js +47 -47
  148. package/src/services/provider-service.js +35 -0
  149. package/src/services/provider-voice-catalog.js +126 -0
  150. package/src/services/tts-engine-service.js +51 -2
  151. package/src/utils/audio-duration-validator.js +53 -10
  152. package/src/utils/audio-format-validator.js +277 -277
  153. package/src/utils/dependency-checker.js +469 -469
  154. package/src/utils/file-ownership-verifier.js +358 -358
  155. package/src/utils/music-file-validator.js +285 -285
  156. package/src/utils/preview-list-prompt.js +144 -136
  157. package/src/utils/provider-validator.js +70 -0
  158. package/src/utils/secure-music-storage.js +412 -412
  159. package/templates/agentvibes-receiver.sh +235 -231
  160. package/templates/audio/welcome-music.mp3 +0 -0
package/README.md CHANGED
@@ -1,2225 +1,236 @@
1
- # 🎤 AgentVibes
1
+ <div align="center">
2
2
 
3
- > **Finally! Your agents can talk back!**
4
- >
5
- > 🌐 **[agentvibes.org](https://agentvibes.org)**
6
- >
7
- > Professional text-to-speech for **Claude Code**, **Claude Desktop**, **Warp Terminal**, and **OpenClaw** - **Soprano** (Neural), **Piper TTS** (Free!), **macOS Say** (Built-in!), or **Windows SAPI** (Zero Setup!)
3
+ # 🎙️ AgentVibes
8
4
 
9
- [![npm version](https://img.shields.io/npm/v/agentvibes)](https://www.npmjs.com/package/agentvibes)
10
- [![Test Suite](https://github.com/paulpreibisch/AgentVibes/actions/workflows/test.yml/badge.svg)](https://github.com/paulpreibisch/AgentVibes/actions/workflows/test.yml)
11
- [![Publish](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml/badge.svg)](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml)
12
- [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
13
-
14
- **Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v5.10.0
15
-
16
- ---
17
-
18
- ## 🚀 Quick Links
19
-
20
- | I want to... | Go here |
21
- |--------------|---------|
22
- | **Install AgentVibes** (just `npx`, no git!) | [Quick Start Guide](docs/quick-start.md) |
23
- | **Run Claude Code on Android** | [Android/Termux Setup](#-android--termux) |
24
- | **Secure OpenClaw on Remote Server** | [Security Hardening Guide](docs/security-hardening-guide.md) ⚠️ |
25
- | **Understand what I need** | [Prerequisites](#-prerequisites) |
26
- | **Set up on Windows (Native)** | [Windows Native Setup](WINDOWS-SETUP.md) |
27
- | **Set up on Windows (Claude Desktop/WSL)** | [Windows WSL Guide](mcp-server/WINDOWS_SETUP.md) |
28
- | **Use with OpenClaw** | [OpenClaw Integration](#-openclaw-integration) |
29
- | **Use natural language** | [MCP Setup](docs/mcp-setup.md) |
30
- | **Switch voices** | [Voice Library](docs/voice-library.md) |
31
- | **Fix issues** (git-lfs? MCP tokens? Read this!) | [Troubleshooting](docs/troubleshooting.md) & [FAQ](#-frequently-asked-questions-faq) |
32
-
33
- ---
34
-
35
- ## ✨ What is AgentVibes?
36
-
37
- **AgentVibes adds lively voice narration to your AI coding sessions!**
38
-
39
- Whether you're coding in Claude Code, chatting in Claude Desktop, using Warp Terminal, or running OpenClaw - AgentVibes brings AI to life with professional voices and personalities.
40
-
41
- ---
42
-
43
- ## 🌟 NEW IN v5.9.0 — SSH Remote + Windows Home Directory Fixes
44
-
45
- **SSH remote no longer hangs:** The SSH transport now applies a 10-second connection
46
- timeout, so a stuck or unreachable remote host surfaces an error quickly instead of
47
- blocking forever.
48
-
49
- **Windows home directory detection fixed:** `detectRemoteLlm()` now uses null-coalescing
50
- (`??`) to fall back to `os.homedir()` only when `HOME` is genuinely unset — safer than
51
- the previous `||` which could misfire on an empty string.
52
-
53
- ## v5.8.0 — Soprano Now Works + Voice Picker Fixed for All Engines
54
-
55
- **Soprano TTS actually works now:** Soprano (our neural TTS engine) was silently broken
56
- on Windows since launch — wrong binary name, stripped PATH, wav path sent to the wrong
57
- output stream, and no auto-start for the WebUI server. All fixed. Install with
58
- `pip install soprano-tts`, select Soprano in the setup tab, and AgentVibes handles
59
- the rest.
60
-
61
- **Voice picker now works for Windows SAPI and macOS Say:** Previously the picker showed
62
- the entire Piper voice catalog even when SAPI or macOS Say was selected, and Space-bar
63
- preview played through the wrong engine. The picker now shows exactly one item for each
64
- native engine and previews through the correct binary.
65
-
66
- **Auto-save no longer breaks your engine setting:** Saving an LLM config no longer silently
67
- overwrites your chosen engine back to Piper.
68
-
69
- ## v5.7.7 — Party Mode Voice Restore + Polish
70
-
71
- **Party mode agents now speak again:** BMAD `/party-mode` now reliably invokes the correct AgentVibes skill, and each agent's response is spoken aloud in their unique voice with per-agent music, pretext, and reverb — loaded automatically from `~/.agentvibes/bmad-voice-map.json`.
72
-
73
- **New bundled track:** 🌌 CelestialVelvet added to the built-in music catalog.
74
-
75
- **TUI contrast fix:** Selected rows in Voices and Agents tabs no longer render unreadable gray text.
76
-
77
- **SSH remote:** Fixed "wait: pid is not a child of this shell" error in `play-tts-ssh-remote.sh`.
78
-
79
- ## v5.7.6 — SSH Remote Payload Integrity + Receiver Rewrite
80
-
81
- **SSH remote music/voice fix:** The correct project music track and voice now reach the remote receiver — previously the global config was used instead of the active project's settings.
82
-
83
- **Bash receiver rewrite:** The Linux/Termux `agentvibes-receiver.sh` has been fully rewritten to decode the current base64 JSON payload format. The old positional-arg format from pre-v5.5 is gone.
84
-
85
- **No more double intro:** The personality pretext (e.g., "Bcs latin dance here") is no longer spoken twice over SSH remote. `play-tts.sh` prepends it to the text; the receiver no longer gets a separate pretext field to prepend again.
86
-
87
- **SSH host visible in TUI:** The Settings and Voices tabs now display your configured SSH remote host alias.
88
-
89
- **Security fixes** and 24 new BATS tests covering the full sender → receiver round-trip.
90
-
91
- ## v5.7.5 — TUI Button Contrast + BMAD Routing Fixes
92
-
93
- **BMAD v6.6.0:** AgentVibes now detects the new `.claude/skills/*/agents/` agent structure, correctly handles globally-installed BMAD at `~/_bmad`, and gracefully skips v6.6+ plain-Markdown agents during TTS injection instead of erroring. The BMAD tab now shows detection correctly for global installs.
94
-
95
- **Windows watcher:** `tts-watcher.ps1` is now a standalone file at `~/.agentvibes/tts-watcher.ps1`. Running `npx agentvibes update` now copies the latest watcher **and** restarts it automatically — both the file and the process are updated in one step, no manual restart needed.
96
-
97
- **Windows provider:** `play-tts.ps1` now respects the `ProviderOverride` from the Linux server config when receiving remote audio.
98
-
99
- ## v5.6.9 — Reverb & Background Music Silent in NPX Installs
100
-
101
- **WSL users:** AgentVibes was playing `en_US-lessac-medium` regardless of your configured voice. Fixed — Piper is now found in non-interactive shells by explicitly prepending `~/.local/bin` to `PATH` before the binary check.
102
-
103
- **Per-project routing:** The session-start hook now bakes `--project-dir` into every injected TTS command, so your configured voice and music play correctly in Bash tool calls even when `CLAUDE_PROJECT_DIR` isn't in the environment.
104
-
105
- `play-tts-piper.sh` and `play-tts-piper.ps1` are now included in `agentvibes install`'s critical hooks deployment — updated versions propagate automatically.
106
-
107
- ## v5.6.7 — Windows Preview Fixed
108
-
109
- The Preview button in LLM audio configuration now works correctly on Windows.
110
-
111
- ## v5.6.6 — Preview Button Works in WSL + Comprehensive Windows Test Suite
112
-
113
- **The Preview button in LLM audio configuration now works correctly in WSL.** When configuring a voice, reverb, and background track for each LLM, clicking Preview now plays your full audio setup — voice, music, and effects — exactly as it will sound during a real session. Previously, background music was silently dropped in `npm link` and global-install setups.
114
-
115
- A **comprehensive Windows test suite** has been added to CI, running alongside the existing Linux BATS suite. Windows-specific audio paths are now verified on every push — regressions can't slip through silently.
116
-
117
- ## v5.6.4 — Critical Uninstall Safety Fix
118
-
119
- `uninstall --global` was removing your entire `~/.claude/` directory — settings, CLAUDE.md, skills, MCP configs, everything. Fixed: AgentVibes now performs a surgical removal, only touching files it created. A regression test in CI enforces this going forward — if it ever regresses, the build breaks before it ships.
120
-
121
- ## v5.6.3 — Hermes + Easier Remote Setup
122
-
123
- **AgentVibes now works with [Hermes](https://github.com/NousResearch/hermes-agent)** — one of the most popular open-source AI agents on GitHub (21,000+ stars). When Hermes finishes a response, AgentVibes speaks it aloud through your speakers automatically.
124
-
125
- When you configure any LLM in AgentVibes (Claude Code, Copilot, Codex, or Hermes), you can set a **unique voice, reverb style, background music, and intro prefix** for each one — so every AI sounds distinct. New in this version: you can also set the **audio destination** per LLM. Choose **Local** to play through the computer you're on, or **Remote** to send audio to a different machine (your laptop, for example) while you work on a remote server.
126
-
127
- Setting up remote audio used to require typing an SSH path by hand. Now there's a **dropdown menu right in the AgentVibes TUI** that reads your existing SSH aliases — just pick the one that points to your speakers and you're done. Develop on a remote server or run Hermes in the cloud, and the voice comes out of your laptop speakers without any manual configuration.
128
-
129
- ## v5.6.2 — Per-Message Audio Control
130
-
131
- Remote senders (Hermes, SSH remote provider) can now control **voice, music, reverb, and volume per message** — no persistent config changes needed. Pass any field in the JSON payload and the Windows receiver applies it for that message only.
132
-
133
- ## v5.6.1 — Hermes Agent Integration
134
-
135
- AgentVibes now speaks for **[Hermes Agent](https://github.com/NousResearch/hermes-agent)** — the self-hosted, self-improving AI assistant. Two production-ready skills ship in `docs/hermes/skills/`:
136
-
137
- - **`hermes-agentvibes-hook`** — Auto-speaks every Hermes response via AgentVibes TTS. Fires on `agent:end`, strips markdown, rate-limits, and ships with full SSH MITM protection
138
- - **`agentvibes-target`** — Teaches Hermes to send any text to your speakers on demand, supporting laptop and Android targets
139
-
140
- Also in this release: Windows PS5.1 compatibility fixes for `play-tts.ps1`, modal/hotkey repairs, and BMAD tab now shows all agents.
141
-
142
- ## v5.5 — Per-LLM Audio Routing
143
-
144
- Give **each LLM its own voice, pretext, and music** — Claude Code, Copilot, and Codex can all sound different without touching global settings.
145
-
146
- - Add `llm:<name>|...|voice|pretext|engine` rows to `audio-effects.cfg`
147
- - MCP server auto-detects which LLM is calling and passes `--llm <key>`
148
- - Configure via **Setup tab → Configure** in the TUI
149
-
150
- Also fixed: Windows installer crash (`spinner.info is not a function`) on **reinstall** with an older global AgentVibes install.
151
-
152
- ---
153
-
154
- ## v5.4 — TUI Installer, Spinner Fix & Dependency Cleanup
155
-
156
- ### 🎤 Voice Browser — Browse, Sample & Install 914 Voices
157
-
158
- **Built right into the TUI — accessible via Setup → Configure → Voice**
159
-
160
- - 🎧 **Hear Before You Choose** - Press Space to preview any voice instantly
161
- - ⭐ **Mark Your Favorites** - Thumbs up/down with `+` / `-`
162
- - 🔍 **Alpha Jump** - Press any letter to jump to names starting with it
163
- - 📦 **One-Click Select** - Press Enter to set as your voice
164
- - 🎨 **Beautiful Interface** - Stunning terminal UI built into AgentVibes
165
-
166
- **914 Total Voices:**
167
- - 904 High-Quality Piper TTS Speakers (libritts-high model)
168
- - 10 Hand-Curated Personality Voices
169
-
170
- ---
171
-
172
- ### 💬 Intro Text (Pretext) - Your Personal AI Branding
173
-
174
- **Add custom prefixes to every TTS announcement!**
175
-
176
- ```bash
177
- npx agentvibes config intro-text
178
- ```
179
-
180
- Transform generic AI responses into your personal brand:
181
-
182
- **Before:**
183
- ```
184
- "Starting analysis of the codebase..."
185
- ```
186
-
187
- **After (with "FireBot: " intro text):**
188
- ```
189
- "FireBot: Starting analysis of the codebase..."
190
- ```
191
-
192
- **Perfect for:**
193
- - 🤖 **Personal AI Branding** - Make Claude sound like your custom assistant
194
- - 🏢 **Team Identity** - Company bots with branded voices
195
- - 🎮 **Character Roleplay** - Gaming assistants with character names
196
- - 🎓 **Teaching Contexts** - Professor Bot, Tutor AI, etc.
197
-
198
- **Features:**
199
- - Up to 50 characters
200
- - UTF-8 and emoji support 🎉
201
- - Set during installation or anytime after
202
- - Works with all TTS providers
203
- - Applies to every single announcement
204
-
205
- **Examples:**
206
- - `"JARVIS: "` - Iron Man style
207
- - `"🤖 Assistant: "` - With emoji
208
- - `"CodeBot: "` - Development assistant
209
- - `"Chef AI: "` - Cooking helper
210
-
211
- Configure now: `npx agentvibes config intro-text`
212
-
213
- ---
214
-
215
- ### 🎵 Custom Background Music - Complete Audio Control
216
-
217
- **Upload your own background music with battle-tested security!**
218
-
219
- ```bash
220
- npx agentvibes # press M for Music tab
221
- ```
222
-
223
- ![AgentVibes Music Tab](https://raw.githubusercontent.com/paulpreibisch/AgentVibes/master/docs/installation-screenshots/screenshot-music.png)
224
-
225
- Replace the default background tracks with your own audio files for complete sonic branding.
226
-
227
- **Supported Formats:**
228
- - 🎵 MP3 (.mp3)
229
- - 🎵 WAV (.wav)
230
- - 🎵 OGG (.ogg)
231
- - 🎵 M4A (.m4a)
232
-
233
- **Security First:**
234
- - ✅ **180+ attack variations tested** - Path traversal, symlinks, Unicode tricks
235
- - ✅ **100% attack rejection rate** - Every malicious attempt blocked
236
- - ✅ **OWASP CWE-22 compliant** - Industry-standard security
237
- - ✅ **7 validation layers** - Defense-in-depth architecture
238
- - ✅ **File ownership verification** - Only your files accepted
239
- - ✅ **Magic number validation** - Real audio files only
240
- - ✅ **Secure storage** - 600 permissions, restricted directory
241
-
242
- **Smart Validation:**
243
- - Recommended duration: 30-90 seconds (optimal looping)
244
- - Maximum: 300 seconds (5 minutes)
245
- - Maximum size: 50MB
246
- - Automatic format detection
247
- - Duration warnings for non-optimal lengths
248
-
249
- **Custom Track Naming Rules:**
250
- - Use `snake_case` filenames only — e.g. `my_focus_music.mp3` ✅
251
- - No spaces or uppercase letters in filenames — e.g. `My Focus Music.mp3` ❌
252
- - Misnamed files will not appear in the music picker and will be skipped by the audio engine
253
-
254
- **Perfect for:**
255
- - 🎸 **Team Audio Branding** - Company theme music
256
- - 🎮 **Gaming Sessions** - Epic background tracks
257
- - 🎼 **Personal Playlists** - Your favorite instrumental
258
- - 🎹 **Focus Music** - Lo-fi, classical, ambient
259
-
260
- **Features:**
261
- - Preview before setting
262
- - One-command upload
263
- - Works with all TTS providers
264
- - Loops seamlessly under voice
265
- - Easy restore to defaults
266
-
267
- **Menu Options:**
268
- 1. Change music - Upload new audio file
269
- 2. Remove music - Clear custom music
270
- 3. Reset to default - Restore built-in tracks (16 genres)
271
- 4. Enable/Disable - Toggle background music
272
- 5. Preview current - Sample your music
273
-
274
- Configure now: `npx agentvibes config music`
275
-
276
- **Security Certified:** See full audit report at `docs/security/SECURITY-AUDIT.md`
277
-
278
- ---
279
-
280
- ### 🎯 Key Features
281
-
282
- **🎛️ NEW IN v5.4.0 — TUI Installer & Fixes:**
283
- - 🖥️ **TUI Installer** - Interactive terminal UI: browse voices, configure providers, enable BMAD party mode
284
- - 🔧 **Spinner Fix** - Resolved `spinner.info is not a function` crash on WSL/Linux
285
- - 🐛 **Circular Dependency Fix** - Removed self-referential `agentvibes@^3.5.9` dep that silently broke installs
286
- - 🎵 **Background Music Volume Fix** - Restored `bg_volume="0.20"` fallback in `audio-processor.sh`
287
- - 📂 **PROJECT_ROOT Fix** - `play-tts.sh` now correctly resolves project root for per-project config
288
-
289
- **🪟 v3.5.5 — Native Windows Support:**
290
- - 🖥️ **Windows Native TTS** - Soprano, Piper, and Windows SAPI providers. No WSL required!
291
- - 🎵 **Background Music** - 16 genre tracks mixed under voice
292
- - 🎛️ **Reverb & Audio Effects** - 5 reverb levels via ffmpeg
293
- - 🔊 **Verbosity Control** - High, Medium, or Low settings
294
- - 🎨 **Beautiful Installer** - `npx agentvibes install` or `.\setup-windows.ps1`
295
-
296
- **⚡ v3.4.0 Highlights:**
297
- - 🎤 **Soprano TTS Provider** - Ultra-fast neural TTS with 20x CPU, 2000x GPU acceleration (thanks [@nathanchase](https://github.com/nathanchase)!)
298
- - 🛡️ **Security Hardening** - 9.5/10 score with comprehensive validation and timeouts
299
- - 🌐 **Environment Intelligence** - PulseAudio tunnel auto-detection for SSH scenarios
300
-
301
- **⚡ Core Features:**
302
- - ⚡ **One-Command Install** - Get started in 30 seconds (`npx agentvibes install` or `.\setup-windows.ps1` without Node.js)
303
- - 🎭 **Multi-Provider Support** - Soprano (neural), Piper TTS (50+ free voices), macOS Say (100+ built-in), or Windows SAPI
304
- - 🎙️ **27+ Professional AI Voices** - Character voices, accents, and unique personalities
305
- - 🎙️ **Verbosity Control** - Choose how much Claude speaks (LOW, MEDIUM, HIGH)
306
- - 🎙️ **AgentVibes MCP** - Natural language control ("Switch to Aria voice") for Claude Code, Desktop & Warp
307
- - 🔊 **SSH Audio Optimization** - Auto-detects remote sessions and eliminates static (VS Code Remote SSH, cloud dev)
308
-
309
- **🎭 Personalization:**
310
- - 🎭 **19 Built-in Personalities** - From sarcastic to flirty, pirate to dry humor
311
- - 💬 **Advanced Sentiment System** - Apply personality styles to ANY voice without changing it
312
- - 🎵 **Voice Preview & Replay** - Listen before you choose, replay last 10 TTS messages
313
-
314
- **🚀 Integrations & Power Features:**
315
- - 🔌 **Enhanced BMAD Plugin** - Auto voice switching for BMAD agents with multilingual support
316
- - 🔊 **Live Audio Feedback** - Hear task acknowledgments and completions in any language
317
- - 🌍 **30+ Languages** - Multilingual support with native voice quality
318
- - 🆓 **Free & Open** - Use Piper TTS with no API key required
319
-
320
- ### 🤗 Hugging Face AI Voice Models
321
-
322
- **AgentVibes' Piper TTS uses 100% Hugging Face-trained AI voice models** from [rhasspy/piper-voices](https://huggingface.co/rhasspy/piper-voices).
323
-
324
- **What are Hugging Face voice models?**
325
-
326
- Hugging Face voice models are pre-trained artificial intelligence models hosted on the Hugging Face Model Hub platform, designed to convert text into human-like speech (Text-to-Speech or TTS) or perform other speech tasks like voice cloning and speech-to-speech translation. They're accessible via their Transformers library for easy use in applications like voice assistants, audio generation, and more.
327
-
328
- **Key Benefits:**
329
- - 🎯 **Human-like Speech** - VITS-based neural models for natural pronunciation and intonation
330
- - 🌍 **35+ Languages** - Multilingual support with native accents
331
- - 🆓 **100% Open Source** - All Piper voices are free HF models (Tacotron2, FastSpeech2, VITS)
332
- - 🔧 **Developer-Friendly** - Fine-tune, customize, or deploy for various audio projects
333
- - ⚡ **Offline & Fast** - No API keys, no internet needed once installed
334
-
335
- All 50+ Piper voices AgentVibes provides are sourced from Hugging Face's open-source AI voice models, ensuring high-quality, natural-sounding speech synthesis across all supported platforms.
336
-
337
- ---
338
-
339
- ## 📑 Table of Contents
340
-
341
- ### Getting Started
342
- - [🚀 Quick Start](#-quick-start) - Get voice in 30 seconds (3 simple steps)
343
- - [📱 Android/Termux](#-quick-setup-android--termux-claude-code-on-your-phone) - Run Claude Code on your phone
344
- - [📋 Prerequisites](#-prerequisites) - What you actually need (Node.js + optional tools)
345
- - [✨ What is AgentVibes?](#-what-is-agentvibes) - Overview & key features
346
- - [🌟 NEW FEATURE HIGHLIGHTS](#-new-feature-highlights) - **START HERE!**
347
- - [🎤 Voices Tab](#-voices-tab) - Browse & sample 914 voices in the TUI
348
- - [💬 Intro Text](#-intro-text-pretext---your-personal-ai-branding) - Custom TTS prefixes
349
- - [🎵 Custom Background Music](#-custom-background-music---complete-audio-control) - Upload your own tracks
350
- - [📰 Latest Release](#-latest-release) - v5.5.0 with Per-LLM Audio Routing, Windows Installer Resilience
351
- - [🪟 Windows Setup Guide for Claude Desktop](mcp-server/WINDOWS_SETUP.md) - Complete Windows installation with WSL & Python
352
-
353
- ### AgentVibes MCP (Natural Language Control)
354
- - [🎙️ AgentVibes MCP Overview](#%EF%B8%8F-agentvibes-mcp) - **Easiest way** - Natural language commands
355
- - [For Claude Desktop](docs/mcp-setup.md#for-claude-desktop) - Windows/WSL setup, Python requirements
356
-
357
- - [For Claude Code](docs/mcp-setup.md#for-claude-code) - Project-specific setup
358
-
359
- ### Core Features
360
- - [🎤 Voices Tab](#-voices-tab) - **Browse and sample 914 voices in the TUI**
361
- - [🎤 Commands Reference](#-commands-reference) - All available commands
362
- - [🎙️ Verbosity Control](#%EF%B8%8F-verbosity-control) - Control how much Claude speaks (low/medium/high)
363
- - [🎭 Personalities vs Sentiments](#-personalities-vs-sentiments) - Two systems explained
364
- - [🗣️ Voice Library](#%EF%B8%8F-voice-library) - 914 voices with friendly names
365
- - [🔌 BMAD Plugin](#-bmad-plugin) - Auto voice switching for BMAD agents
366
- - [🎙️ AgentVibes Receiver - NEW!](#%EF%B8%8F-agentvibes-receiver-remote-audio-streaming-from-voiceless-servers) - Remote audio streaming from voiceless servers
367
-
368
- ### Integrations & Platforms
369
- - [🤖 OpenClaw Integration](#-openclaw-integration) - Use AgentVibes with OpenClaw messaging platform
370
- - [🎙️ AgentVibes Skill for OpenClaw](#-agentvibes-skill-for-openclaw---what-you-get) - 50+ voices, effects, personalities for OpenClaw
371
- - [📱 AgentVibes Receiver](#-agentvibes-receiver-local-phone-) - Remote audio on phones/local machines
372
-
373
- ### Advanced Topics
374
- - [📦 Installation Structure](#-installation-structure) - What gets installed
375
- - [💡 Common Workflows](#-common-workflows) - Quick examples
376
- - [🔧 Advanced Features](#-advanced-features) - Custom voices & personalities
377
- - [🔊 Remote Audio Setup](#-remote-audio-setup) - Play TTS from remote servers
378
- - [🖥️ Windows SSH Receiver & TTS Watcher](#️-windows-ssh-receiver--tts-watcher) - Stream audio to Windows PC from Linux/macOS
379
- - [🚨 Security Hardening Guide](docs/security-hardening-guide.md) - **REQUIRED if running OpenClaw on remote server**: SSH hardening, Fail2Ban, Tailscale, UFW, AIDE
380
- - [🔬 Technical Deep Dive](docs/technical-deep-dive.md) - How AgentVibes works under the hood
381
- - [❓ Troubleshooting](#-troubleshooting) - Common issues & fixes
382
-
383
- ### Additional Resources
384
- - [🔗 Useful Links](#-useful-links) - Voice typing & AI tools
385
- - [🔄 Updating](#-updating) - Keep AgentVibes current
386
- - [🗑️ Uninstalling](#️-uninstalling) - Remove AgentVibes cleanly
387
- - [❓ FAQ](#-frequently-asked-questions-faq) - **NEW!** Common questions answered (git-lfs, MCP tokens, installation)
388
- - [🍎 macOS Testing](docs/macos-testing.md) - Automated testing on macOS with GitHub Actions
389
- - [🤗 Hugging Face Voice Models](docs/hugging-face-models.md) - Technical details on AI voice models
390
- - [🙏 Credits](#-credits) - Acknowledgments
391
- - [🤝 Contributing](#-contributing) - Show support
392
-
393
- ---
394
-
395
- ## 📰 Latest Release
396
-
397
- **[v3.6.0 - "Voice Explorer" Release](https://github.com/paulpreibisch/AgentVibes/releases/tag/v5.7.5)** 🎉
398
-
399
- ### 🎤 Voices Tab — Browse & Sample 914 Voices
400
-
401
- **Built into the TUI — launch with `npx agentvibes` then press V**
402
-
403
- ![AgentVibes Voices Tab](https://raw.githubusercontent.com/paulpreibisch/AgentVibes/master/docs/installation-screenshots/screenshot-voices.png)
404
-
405
- - 🎧 Real-time voice sampling - press Space to hear before you choose
406
- - ⭐ Favorite system - mark your top voices
407
- - 🔍 Search & filter - find voices by personality, accent, gender
408
- - 📦 One-click select - press Enter to install directly
409
- - 🎨 Beautiful UI - built into the AgentVibes TUI
410
-
411
- **914 Total Voices:**
412
- - 904 Piper speaker variations (libritts-high)
413
- - 10 curated personality voices
414
-
415
- ### 🎯 Major Features
416
-
417
- **🏷️ Friendly Voice Names**
418
- - No more cryptic IDs! Switch voices with names like "Ryan", "Joe", "Sarah"
419
- - All 904+ voices have memorable, personality-matched names
420
- - Voice metadata includes personalities, accents, and recommendations
421
-
422
- ```bash
423
- # Before: /agent-vibes:switch en_US-libritts_r-medium-speaker-123
424
- # After:
425
- /agent-vibes:switch Ryan
426
- ```
427
-
428
- **💬 Intro Text (Pretext) Feature**
429
- - Custom prefix for all TTS announcements
430
- - Set during installation or anytime after
431
- - Perfect for personal branding: "FireBot: Starting analysis..."
432
- - Up to 50 characters, UTF-8 and emoji support
433
-
434
- ```bash
435
- npx agentvibes config intro-text
436
- ```
437
-
438
- **🎵 Custom Background Music**
439
- - Upload your own audio files (.mp3, .wav, .ogg, .m4a)
440
- - **Battle-tested security:** 180+ attack variations blocked
441
- - Magic number validation ensures real audio files
442
- - File ownership verification (UID checks)
443
- - Audio duration validation (30-90s recommended, 300s max)
444
- - Secure storage with 600 permissions
445
- - Perfect for team audio branding
446
-
447
- ```bash
448
- npx agentvibes config music
449
- ```
450
-
451
- **🎨 Interactive Installer**
452
- - Preview voices during installation
453
- - Sample all 16 background music tracks
454
- - Audio environment auto-detection
455
- - Cross-platform preview support
456
-
457
- **🛡️ Security Hardening**
458
- - **180+ attack variations tested** - Path traversal, symlinks, Unicode, null bytes
459
- - **100% attack rejection rate** - All malicious attempts blocked
460
- - **OWASP compliant** - CWE-22 path traversal prevention verified
461
- - **Production certified** - Comprehensive security audit completed
462
- - **Defense-in-depth** - 7 validation layers protect your system
463
- - File ownership verification and secure storage (600 permissions)
464
- - Security audit report: `docs/security/SECURITY-AUDIT.md`
465
-
466
- ### Quick Install
467
-
468
- ```bash
469
- # Install AgentVibes
470
- npx agentvibes install
471
-
472
- # Browse voices in the TUI
473
- npx agentvibes # press V for Voices tab
474
- ```
475
-
476
- **🐞 Bug Fixes in v3.6.0:**
477
- - Fixed `get_verbosity` MCP tool returning wrong level after fresh install (now reads from correct project directory, defaults to `high`)
478
- - Fixed Voice Browser Soprano TTS detection, Custom Music race conditions, installer emoji rendering
479
-
480
- 💡 **Tip:** If `npx agentvibes` shows an older version, clear cache: `npm cache clean --force && npx agentvibes@latest --help`
481
-
482
- 🐛 **Found a bug?** Report at [GitHub Issues](https://github.com/paulpreibisch/AgentVibes/issues)
483
-
484
- [→ View Complete Release Notes](RELEASE_NOTES_v3.6.0.md) | [→ View All Releases](https://github.com/paulpreibisch/AgentVibes/releases)
485
-
486
- [↑ Back to top](#-table-of-contents)
487
-
488
- ---
489
-
490
- ## 🎙️ AgentVibes MCP
491
-
492
- Agent Vibes was originally created to give the Claude Code assistant a voice! Simply install it with an npx command in your terminal, and Claude Code can talk back to you.
493
-
494
- We've now enhanced this capability by adding an MCP (Model Context Protocol) server. This integration exposes Agent Vibes' functionality directly to your AI assistant, allowing you to configure and control Agent Vibes using natural language instead of typing "/" slash commands.
495
-
496
- Setting it up is straightforward: just add the MCP server to your Claude Code configuration files.
497
-
498
- But the convenience doesn't stop there. With the MCP server in place, Claude Desktop can now use Agent Vibes too!
499
-
500
- We're thrilled about this expansion because it means Claude Desktop can finally talk back as well!
501
-
502
- If you decide to use the MCP server on Claude Desktop, after configuration, give Claude Desktop this command: "every time i give you a command, speak the acknowledgement using agentvibes and the confirmation about what you completed, when done"—and watch the magic happen!
503
-
504
- **🎯 Control AgentVibes with natural language - no slash commands to remember!**
505
-
506
- Just say "Switch to Aria voice" or "Speak in Spanish" instead of typing commands.
507
-
508
- **Works in:** Claude Desktop, Claude Code
509
-
510
- **[→ View Complete MCP Setup Guide](docs/mcp-setup.md)** - Full setup for all platforms, configuration examples, available tools, and MCP vs slash commands comparison
511
-
512
- [↑ Back to top](#-table-of-contents)
513
-
514
- ---
515
-
516
- ## 🚀 Quick Start - Get Voice in 30 Seconds
517
-
518
- **3 Simple Steps:**
519
-
520
- ### 1️⃣ Install
521
- ```bash
522
- npx agentvibes install
523
- ```
524
-
525
- ![AgentVibes Setup Tab — LLM Providers](https://raw.githubusercontent.com/paulpreibisch/AgentVibes/master/docs/installation-screenshots/screenshot-setup.png)
526
-
527
- Click **Configure** on any LLM to set its voice, pretext, reverb, and music:
528
-
529
- ![AgentVibes Configure Claude Code Audio](https://raw.githubusercontent.com/paulpreibisch/AgentVibes/master/docs/installation-screenshots/screenshot-configure.png)
530
-
531
- ### 2️⃣ Choose Provider (Auto-Detected)
532
- - **macOS**: Native `say` provider (100+ voices) ✨
533
- - **Linux/WSL**: Piper TTS (50+ free voices) 🎙️
534
- - **Windows Native**: Soprano, Piper, or SAPI 🪟
535
- - **Android**: Termux with auto-setup 📱
536
-
537
- ### 3️⃣ Use in Claude Code
538
- Just code normally - AgentVibes automatically speaks task acknowledgments and completions! 🔊
539
-
540
- ---
541
-
542
- **🍎 macOS Users (One-Time Setup):**
543
- ```bash
544
- brew install bash # Required for bash 5.x features
545
- ```
546
- macOS ships with bash 3.2 (from 2007). After this, everything works perfectly!
547
-
548
- ---
549
-
550
- **[→ Full Setup Guide](docs/quick-start.md)** - Advanced options, provider switching, and detailed setup
551
-
552
- [↑ Back to top](#-table-of-contents)
553
-
554
- ---
555
-
556
- ## 🎤 Voice Browser
557
-
558
- **914 voices — browse, preview, and select right inside the TUI.**
559
-
560
- ```bash
561
- npx agentvibes # Setup tab → Configure → Voice (or press V for global voice)
562
- ```
563
-
564
- ![AgentVibes Voice Browser](https://raw.githubusercontent.com/paulpreibisch/AgentVibes/master/docs/installation-screenshots/screenshot-voice-browser.png)
565
-
566
- ### Features
567
-
568
- - **914 Voices** - Browse 904 Piper speakers + 10 curated voices
569
- - **Real-Time Sampling** - Press Space to hear any voice instantly
570
- - **Favorite System** - Thumbs up `+` / thumbs down `-` for quick filtering
571
- - **Alpha Jump** - Press any letter key to jump to that part of the list
572
- - **One-Click Select** - Press Enter to install and switch to a voice
573
- - **Beautiful UI** - Stunning console interface built into AgentVibes
574
-
575
- ### Keyboard Shortcuts
576
-
577
- | Key | Action |
578
- |-----|--------|
579
- | **Space** | Preview voice sample |
580
- | **Enter** | Select/Install voice |
581
- | **+** | Thumbs up (favorite) |
582
- | **-** | Thumbs down |
583
- | **PgUp / PgDn** | Page through list |
584
- | **↑/↓** | Navigate list |
585
- | **a-z** | Jump to names starting with letter |
586
- | **Esc** | Cancel / close |
587
-
588
- ### Voice Categories
589
-
590
- **Curated Voices** (10 hand-picked personalities):
591
- - Professional, Friendly, Authoritative, Warm, Energetic
592
- - Technical, Calm, Narrator, Conversational, Enthusiastic
593
-
594
- **Speaker Variations** (904 from libritts-high):
595
- - Male and female speakers
596
- - Various accents and tones
597
- - High-quality neural voices
598
- - Unique characteristics
599
-
600
- ### Finding Your Perfect Voice
601
-
602
- 1. **Open voice browser:** Setup tab → Configure → navigate to Voice → Enter
603
- 2. **Jump alphabetically:** Press a letter key to jump to that name
604
- 3. **Sample voices:** Navigate with arrows, press Space to hear
605
- 4. **Mark favorites:** Press `+` on voices you like
606
- 5. **Select:** Press Enter to set as your voice
607
-
608
- **Pro Tip:** Use PgUp/PgDn to page quickly through 900+ voices!
609
-
610
- [↑ Back to top](#-table-of-contents)
611
-
612
- ---
613
-
614
- ## 📋 Prerequisites - What You Actually Need
615
-
616
- ### Minimum (Core Features)
617
- **✅ REQUIRED:**
618
- - **Node.js** ≥16.0 - Check with: `node --version`
619
-
620
- ### Required for Full Features
621
- **✅ STRONGLY RECOMMENDED:**
622
- - **Python** 3.10+ - Needed for Piper TTS voice engine
623
- - **bash** 5.0+ - macOS only (macOS ships with 3.2 from 2007)
624
-
625
- ### Optional but Recommended
626
- **⭕ OPTIONAL (TTS still works without them):**
627
- - **sox** - Audio effects (reverb, EQ, pitch shifting)
628
- - **ffmpeg** - Background music, audio padding, RDP compression
629
-
630
- ### NOT Required (Despite What You've Heard)
631
- **❌ DEFINITELY NOT NEEDED:**
632
- - ❌ Git or git-lfs (npm handles everything)
633
- - ❌ Repository cloning (unless you're contributing code)
634
- - ❌ Build tools or C++ compilers (pre-built package ready to use)
635
-
636
- ### Installation Methods
637
-
638
- | Method | Command | Use Case |
639
- |--------|---------|----------|
640
- | **✅ RECOMMENDED: NPX (via npm)** | `npx agentvibes install` | **All platforms** - Just want to use AgentVibes |
641
- | **🪟 Windows PowerShell** | `.\setup-windows.ps1` | **Windows** - Standalone installer (no Node.js needed) |
642
- | **⚠️ Git Clone** | `git clone ...` | **Developers Only** - Contributing code |
643
-
644
- **Why npx?** Zero git operations, no build steps, just 30 seconds to voice!
645
-
646
- ### For Developers (Contributing Code)
647
-
648
- If you want to contribute to AgentVibes:
649
- ```bash
650
- git clone https://github.com/paulpreibisch/AgentVibes.git
651
- cd AgentVibes
652
- npm install
653
- npm link
654
- ```
655
-
656
- Requires: Node.js 16+, Git (no git-lfs), and `npm link` familiarity.
657
-
658
- [↑ Back to top](#-table-of-contents)
659
-
660
- ---
661
-
662
- ---
663
-
664
- ## 📱 Quick Setup: Android & Termux (Claude Code on Your Phone!)
665
-
666
- **Want to run Claude Code on your Android phone with professional voices?**
667
-
668
- Simply install Termux from F-Droid (NOT Google Play) and run:
669
- ```bash
670
- pkg update && pkg upgrade
671
- pkg install nodejs-lts
672
- npx agentvibes install
673
- ```
674
-
675
- Termux auto-detects and installs everything needed (proot-distro for compatibility, Piper TTS, audio playback).
676
-
677
- **[→ Full Android/Termux Setup Guide](#-android--termux)** - Detailed troubleshooting and verification steps
678
-
679
- [↑ Back to top](#-table-of-contents)
680
-
681
- ---
682
-
683
- ## 📋 System Requirements
684
-
685
- AgentVibes requires certain system dependencies for optimal audio processing and playback. Requirements vary by operating system and TTS provider.
686
-
687
- ### Core Requirements (All Platforms)
688
-
689
- | Tool | Required For | Why It's Needed |
690
- |------|-------------|-----------------|
691
- | **Node.js** ≥16.0 | All platforms | Runtime for AgentVibes installer and MCP server |
692
- | **Bash** ≥5.0 | macOS | Modern bash features (macOS ships with 3.2 from 2007) |
693
- | **Python** 3.10+ | Piper TTS, MCP server | Runs Piper voice engine and MCP server |
694
-
695
- ### Audio Processing Tools (Recommended)
696
-
697
- | Tool | Status | Purpose | Impact if Missing |
698
- |------|--------|---------|------------------|
699
- | **sox** | Recommended | Audio effects (reverb, EQ, pitch, compression) | No audio effects, still works |
700
- | **ffmpeg** | Recommended | Background music mixing, audio padding, RDP compression | No background music or RDP optimization |
701
-
702
- ### Platform-Specific Requirements
703
-
704
- #### 🐧 Linux / WSL
705
-
706
- ```bash
707
- # Ubuntu/Debian
708
- sudo apt-get update
709
- sudo apt-get install -y sox ffmpeg python3-pip pipx
710
-
711
- # Fedora/RHEL
712
- sudo dnf install -y sox ffmpeg python3-pip pipx
713
-
714
- # Arch Linux
715
- sudo pacman -S sox ffmpeg python-pip python-pipx
716
- ```
717
-
718
- **Audio Playback** (one of the following):
719
- - `paplay` (PulseAudio - usually pre-installed)
720
- - `aplay` (ALSA - fallback)
721
- - `mpg123` (fallback)
722
- - `mpv` (fallback)
723
-
724
- **Why these tools?**
725
- - **sox**: Applies audio effects defined in `.claude/config/audio-effects.cfg` (reverb, pitch shifting, EQ, compression)
726
- - **ffmpeg**: Mixes background music tracks, adds silence padding to prevent audio cutoff, compresses audio for RDP/SSH sessions
727
- - **paplay/aplay**: Plays generated TTS audio files
728
- - **pipx**: Isolated Python environment manager for Piper TTS installation
729
-
730
- #### 🍎 macOS
731
-
732
- ```bash
733
- # Install Homebrew if not already installed
734
- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
735
-
736
- # Required: Modern bash
737
- brew install bash
738
-
739
- # Recommended: Audio processing tools
740
- brew install sox ffmpeg pipx
741
- ```
742
-
743
- **Audio Playback**:
744
- - `afplay` (built-in - always available)
745
- - `say` (built-in - for macOS TTS provider)
746
-
747
- **Why these tools?**
748
- - **bash 5.x**: macOS ships with bash 3.2 which lacks associative arrays and other modern features AgentVibes uses
749
- - **sox**: Same audio effects processing as Linux
750
- - **ffmpeg**: Same background music and padding as Linux
751
- - **afplay**: Built-in macOS audio player
752
- - **say**: Built-in macOS text-to-speech (alternative to Piper)
753
-
754
- #### 🪟 Windows
755
-
756
- **Option A: Native Windows (Recommended)**
757
-
758
- AgentVibes now supports native Windows with three TTS providers. No WSL required!
759
-
760
- ```powershell
761
- # Interactive Node.js installer (recommended)
762
- npx agentvibes install
763
-
764
- # Or use the standalone PowerShell installer
765
- .\setup-windows.ps1
766
- ```
767
-
768
- **Providers available natively:**
769
- - **Soprano** - Ultra-fast neural TTS (best quality, requires `pip install soprano-tts`)
770
- - **Windows Piper** - High quality offline neural voices (auto-downloaded)
771
- - **Windows SAPI** - Built-in Windows voices (zero setup)
772
-
773
- **Requirements:** Node.js 16+, PowerShell 5.1+, ffmpeg (optional, for background music & reverb)
774
-
775
- See [Windows Native Setup Guide](WINDOWS-SETUP.md) for full instructions.
776
-
777
- **Option B: WSL (Legacy)**
778
-
779
- For Claude Desktop or WSL-based workflows, follow the [Windows WSL Guide](mcp-server/WINDOWS_SETUP.md).
780
-
781
- ```powershell
782
- # Install WSL from PowerShell (Administrator)
783
- wsl --install -d Ubuntu
784
- ```
785
-
786
- Then follow Linux requirements above inside WSL.
787
-
788
- #### 🤖 Android / Termux
789
-
790
- **Running Claude Code on Your Android Using Termux**
791
-
792
- AgentVibes fully supports Android devices through the [Termux app](https://termux.dev/). This enables you to run Claude Code with professional TTS voices directly on your Android phone or tablet!
793
-
794
- **Quick Setup:**
795
-
796
- ```bash
797
- # 1. Install Termux from F-Droid (NOT Google Play - it's outdated)
798
- # Download: https://f-droid.org/en/packages/com.termux/
799
-
800
- # 2. Install Node.js in Termux
801
- pkg update && pkg upgrade
802
- pkg install nodejs-lts
803
-
804
- # 3. Install AgentVibes (auto-detects Android and runs Termux installer)
805
- npx agentvibes install
806
- ```
807
-
808
- **What Gets Installed?**
809
-
810
- The Termux installer automatically sets up:
811
- - **proot-distro** with Debian (for glibc compatibility)
812
- - **Piper TTS** via proot wrapper (Android uses bionic libc, not glibc)
813
- - **termux-media-player** for audio playback (`paplay` doesn't work on Android)
814
- - **Audio dependencies**: ffmpeg, sox, bc for processing
815
- - **termux-api** for Android-specific audio routing
816
-
817
- **Why Termux Instead of Standard Installation?**
818
-
819
- Android's architecture requires special handling:
820
- - ❌ Standard pip/pipx fails (missing wheels for bionic libc)
821
- - ❌ Linux binaries require glibc (Android uses bionic)
822
- - ❌ `/tmp` directory is not accessible on Android
823
- - ❌ Standard audio tools like `paplay` don't exist
824
-
825
- ✅ Termux installer solves all these issues with proot-distro and Android-native audio playback!
826
-
827
- **Requirements:**
828
- - [Termux app](https://f-droid.org/en/packages/com.termux/) (from F-Droid, NOT Google Play)
829
- - [Termux:API](https://f-droid.org/en/packages/com.termux.api/) (for audio playback)
830
- - Android 7.0+ (recommended: Android 10+)
831
- - ~500MB free storage (for Piper TTS + voice models)
832
-
833
- **Audio Playback:**
834
- - Uses `termux-media-player` instead of `paplay`
835
- - Audio automatically routes through Android's media system
836
- - Supports all Piper TTS voices (50+ languages)
837
-
838
- **Verifying Your Setup:**
839
-
840
- ```bash
841
- # Check Termux environment
842
- echo $PREFIX # Should show /data/data/com.termux/files/usr
843
-
844
- # Check Node.js
845
- node --version # Should be ≥16.0
846
-
847
- # Check if Piper is installed
848
- which piper # Should return /data/data/com.termux/files/usr/bin/piper
849
-
850
- # Test audio playback
851
- termux-media-player play /path/to/audio.wav
852
- ```
853
-
854
- **Troubleshooting:**
855
-
856
- | Issue | Solution |
857
- |-------|----------|
858
- | "piper: not found" | Run `npx agentvibes install` - auto-detects Termux |
859
- | No audio playback | Install Termux:API from F-Droid |
860
- | Permission denied | Run `termux-setup-storage` to grant storage access |
861
- | Slow installation | Use WiFi, not mobile data (~300MB download) |
862
-
863
- **Why F-Droid and Not Google Play?**
864
-
865
- Google Play's Termux version is outdated and unsupported. Always use the [F-Droid version](https://f-droid.org/en/packages/com.termux/) for the latest security updates and compatibility.
866
-
867
- ### TTS Provider Requirements
868
-
869
- #### Piper TTS (Free, Offline)
870
- - **Python** 3.10+
871
- - **pipx** (for isolated installation)
872
- - **Disk Space**: ~50MB per voice model
873
- - **Internet**: Only for initial voice downloads
874
-
875
- ```bash
876
- # Installed automatically by AgentVibes
877
- pipx install piper-tts
878
- ```
879
-
880
- #### macOS Say (Built-in, macOS Only)
881
- - No additional requirements
882
- - 100+ voices pre-installed on macOS
883
- - Use: `/agent-vibes:provider switch macos`
884
-
885
- ### Verifying Your Setup
886
-
887
- ```bash
888
- # Check all dependencies
889
- node --version # Should be ≥16.0
890
- python3 --version # Should be ≥3.10
891
- bash --version # Should be ≥5.0 (macOS users!)
892
- sox --version # Optional but recommended
893
- ffmpeg -version # Optional but recommended
894
- pipx --version # Required for Piper TTS
895
-
896
- # Check audio playback (Linux/WSL)
897
- paplay --version || aplay --version
898
-
899
- # Check audio playback (macOS)
900
- which afplay # Should return /usr/bin/afplay
901
- ```
902
-
903
- ### What Happens Without Optional Dependencies?
904
-
905
- | Missing Tool | Impact | Workaround |
906
- |-------------|--------|------------|
907
- | sox | No audio effects (reverb, EQ, pitch) | TTS still works, just no effects |
908
- | ffmpeg | No background music, no audio padding | TTS still works, audio may cut off slightly early |
909
- | paplay/aplay | No audio playback on Linux | Install at least one audio player |
910
-
911
- **All TTS generation still works** - optional tools only enhance the experience!
912
-
913
- [↑ Back to top](#-table-of-contents)
914
-
915
- ---
916
-
917
- ## 🎭 Choose Your Voice Provider
918
-
919
- **Piper TTS** (free, works offline on Linux/WSL) or **macOS Say** (free, built-in on Mac) - pick one and switch anytime.
920
-
921
- | Provider | Platform | Cost | Quality | Setup |
922
- |----------|----------|------|---------|-------|
923
- | **macOS Say** | macOS only | Free (built-in) | ⭐⭐⭐⭐ | Zero config |
924
- | **Piper** | Linux/WSL/Windows | Free | ⭐⭐⭐⭐ | Auto-downloads |
925
- | **Soprano** | Linux/WSL/Windows | Free | ⭐⭐⭐⭐⭐ | `pip install soprano-tts` |
926
- | **Windows SAPI** | Windows | Free (built-in) | ⭐⭐⭐ | Zero config |
927
-
928
- On macOS, the native `say` provider is automatically detected and recommended!
929
-
930
- **[→ Provider Comparison Guide](docs/providers.md)**
931
-
932
- [↑ Back to top](#-table-of-contents)
933
-
934
- ---
935
-
936
- ## 🎤 Commands Reference
937
-
938
- AgentVibes provides **50+ slash commands** and **natural language MCP equivalents**.
939
-
940
- **Quick Examples:**
941
- ```bash
942
- # Voice control
943
- /agent-vibes:switch Aria # Or: "Switch to Aria voice"
944
- /agent-vibes:list # Or: "List all voices"
945
-
946
- # Personality & sentiment
947
- /agent-vibes:personality pirate # Or: "Set personality to pirate"
948
- /agent-vibes:sentiment sarcastic # Or: "Apply sarcastic sentiment"
949
-
950
- # Language & learning
951
- /agent-vibes:set-language spanish # Or: "Speak in Spanish"
952
- /agent-vibes:learn # Or: "Enable learning mode"
953
- ```
954
-
955
- **[→ View Complete Command Reference](docs/commands.md)** - All voice, system, personality, sentiment, language, and BMAD commands with MCP equivalents
956
-
957
- ### Voices Tab Commands
958
-
959
- ```bash
960
- # Launch the TUI and open Voices tab
961
- npx agentvibes # then press V
962
- ```
963
-
964
- ### Intro Text Commands
965
-
966
- ```bash
967
- # Configure intro text
968
- /agent-vibes:config intro-text
969
- npx agentvibes config intro-text
970
-
971
- # View current intro text
972
- cat ~/.claude/config/intro-text.txt
973
- ```
974
-
975
- **MCP Equivalent:**
976
- ```
977
- "Set my intro text to 'FireBot: '"
978
- "What's my current intro text?"
979
- "Clear my intro text"
980
- ```
981
-
982
- ### Custom Music Commands
983
-
984
- ```bash
985
- # Configure background music
986
- /agent-vibes:config music
987
- npx agentvibes config music
988
-
989
- # Menu options:
990
- # 1. Change music - Upload new audio file
991
- # 2. Remove music - Clear custom music
992
- # 3. Reset to default - Restore built-in tracks
993
- # 4. Enable/Disable - Toggle background music
994
- # 5. Preview current - Sample current music
995
- ```
996
-
997
- **MCP Equivalent:**
998
- ```
999
- "Configure my background music"
1000
- "Add custom background music"
1001
- "Remove custom music"
1002
- "Preview my background music"
1003
- ```
1004
-
1005
- ### Friendly Voice Name Commands
1006
-
1007
- ```bash
1008
- # Switch using friendly name
1009
- /agent-vibes:switch Ryan
1010
- /agent-vibes:switch Sarah
1011
-
1012
- # List all voices with friendly names
1013
- /agent-vibes:list
1014
-
1015
- # Get current voice (shows friendly name if available)
1016
- /agent-vibes:whoami
1017
- ```
1018
-
1019
- **MCP Equivalent:**
1020
- ```
1021
- "Switch to Ryan voice"
1022
- "Use the Sarah voice"
1023
- "List all available voices"
1024
- ```
1025
-
1026
- [↑ Back to top](#-table-of-contents)
1027
-
1028
- ---
1029
-
1030
- ## 🎙️ Verbosity Control
1031
-
1032
- **Control how much Claude speaks while working!** 🔊
1033
-
1034
- Choose from three verbosity levels:
1035
-
1036
- ### LOW (Minimal) 🔇
1037
- - Acknowledgments only (start of task)
1038
- - Completions only (end of task)
1039
- - Perfect for quiet work sessions
1040
-
1041
- ### MEDIUM (Balanced) 🤔
1042
- - Acknowledgments + completions
1043
- - Major decisions ("I'll use grep to search")
1044
- - Key findings ("Found 12 instances")
1045
- - Perfect for understanding decisions without full narration
1046
-
1047
- ### HIGH (Maximum Transparency) 💭
1048
- - All reasoning ("Let me search for all instances")
1049
- - All decisions ("I'll use grep for this")
1050
- - All findings ("Found it at line 1323")
1051
- - Perfect for learning mode, debugging complex tasks
1052
-
1053
- **Quick Commands:**
1054
- ```bash
1055
- /agent-vibes:verbosity # Show current level
1056
- /agent-vibes:verbosity high # Maximum transparency
1057
- /agent-vibes:verbosity medium # Balanced
1058
- /agent-vibes:verbosity low # Minimal (default)
1059
- ```
1060
-
1061
- **MCP Equivalent:**
1062
- ```
1063
- "Set verbosity to high"
1064
- "What's my current verbosity level?"
1065
- ```
1066
-
1067
- 💡 **How it works:** Claude uses emoji markers (💭 🤔 ✓) in its text, and AgentVibes automatically detects and speaks them based on your verbosity level. No manual TTS calls needed!
1068
-
1069
- ⚠️ **Note:** Changes take effect on next Claude Code session restart.
1070
-
1071
- [↑ Back to top](#-table-of-contents)
1072
-
1073
- ---
1074
-
1075
- ## 📚 Language Learning Mode
1076
-
1077
- **🎯 Learn Spanish (or 30+ languages) while you program!** 🌍
1078
-
1079
- Every task acknowledgment plays **twice** - first in English, then in your target language. Context-based learning while you code!
1080
-
1081
- **[→ View Complete Learning Mode Guide](docs/language-learning-mode.md)** - Full tutorial, quick start, commands, speech rate control, supported languages, and pro tips
1082
-
1083
- [↑ Back to top](#-table-of-contents)
1084
-
1085
- ---
1086
-
1087
- ## 🎭 Personalities vs Sentiments
1088
-
1089
- **Two ways to add personality:**
1090
-
1091
- - **🎪 Personalities** - Changes BOTH voice AND speaking style (e.g., `pirate` personality = Pirate Marshal voice + pirate speak)
1092
- - **💭 Sentiments** - Keeps your current voice, only changes speaking style (e.g., Aria voice + sarcastic sentiment)
1093
-
1094
- **[→ Complete Personalities Guide](docs/personalities.md)** - All 19 personalities, create custom ones
1095
-
1096
- [↑ Back to top](#-table-of-contents)
1097
-
1098
- ---
1099
-
1100
- ## 🗣️ Voice Library
1101
-
1102
- **Browse voices in the TUI:** Run `npx agentvibes` and press **V** to open the **[Voices Tab](#-voices-tab)** — browse, sample, and install from 914 voices without leaving your terminal.
1103
-
1104
- ### Friendly Voice Names
1105
-
1106
- All voices now have memorable names! Instead of technical IDs like `en_US-libritts_r-medium-speaker-123`, just use friendly names like **Ryan**, **Joe**, or **Sarah**.
1107
-
1108
- **Voice Metadata Includes:**
1109
- - Display name and technical ID
1110
- - Gender, accent, and region
1111
- - Personality traits (professional, warm, friendly, etc.)
1112
- - Recommended use cases
1113
- - Quality rating and sample rate
1114
-
1115
- ### Voice Categories
1116
-
1117
- **Curated Voices** (10 personalities):
1118
- These hand-picked voices cover common use cases with clear characteristics.
1119
-
1120
- **Speaker Variations** (904 voices):
1121
- High-quality Piper TTS voices from the libritts-high model. Each speaker has unique vocal characteristics, accents, and tones.
1122
-
1123
- ### Popular Voices
1124
-
1125
- AgentVibes includes professional AI voices from Piper TTS and macOS Say with multilingual support.
1126
-
1127
- 🎧 **Try in Claude Code:** `/agent-vibes:preview` to hear all voices
1128
- 🌍 **Multilingual:** Use Antoni, Rachel, Domi, or Bella for automatic language detection
1129
-
1130
- **[→ View Complete Voice Library](docs/voice-library.md)** - All voices with clickable samples, descriptions, and best use cases
1131
-
1132
- [↑ Back to top](#-table-of-contents)
1133
-
1134
- ---
1135
-
1136
- ## 🔌 BMAD Plugin
1137
-
1138
- **Automatically switch voices when using BMAD agents!**
1139
-
1140
- The BMAD plugin detects when you activate a BMAD agent (e.g., `/BMad:agents:pm`) and automatically uses the assigned voice for that role.
1141
-
1142
- **Version Support**: AgentVibes supports both BMAD v4 and v6-alpha installations. Version detection is automatic - just install BMAD and AgentVibes will detect and configure itself correctly!
1143
-
1144
- ### 🎭 BMad Tab — Assign a Voice to Every Agent
1145
-
1146
- Open the **BMad** tab in the AgentVibes TUI (`npx agentvibes` → press **B**) to configure which voice, reverb, and pretext each BMAD agent uses:
1147
-
1148
- ![AgentVibes BMad Tab](https://raw.githubusercontent.com/paulpreibisch/AgentVibes/master/docs/installation-screenshots/screenshot-bmad.png)
1149
-
1150
- ### 🔊 TTS Injection: How It Works
1151
-
1152
- BMAD uses a **loosely-coupled injection system** for voice integration. BMAD source files contain placeholder markers that AgentVibes replaces with speaking instructions during installation:
1153
-
1154
- **Before Installation (BMAD Source):**
1155
- ```xml
1156
- <rules>
1157
- <r>ALWAYS communicate in {communication_language}...</r>
1158
- <!-- TTS_INJECTION:agent-tts -->
1159
- <r>Stay in character until exit selected</r>
1160
- </rules>
1161
- ```
1162
-
1163
- **After Installation (with AgentVibes enabled):**
1164
- ```xml
1165
- <rules>
1166
- <r>ALWAYS communicate in {communication_language}...</r>
1167
- - When responding to user messages, speak your responses using TTS:
1168
- Call: `.claude/hooks/bmad-speak.sh '{agent-id}' '{response-text}'`
1169
- Where {agent-id} is your agent type (pm, architect, dev, etc.)
1170
-
1171
- - Auto Voice Switching: AgentVibes automatically switches to the voice
1172
- assigned for your agent role when activated
1173
- <r>Stay in character until exit selected</r>
1174
- </rules>
1175
- ```
1176
-
1177
- **After Installation (with TTS disabled):**
1178
- ```xml
1179
- <rules>
1180
- <r>ALWAYS communicate in {communication_language}...</r>
1181
- <r>Stay in character until exit selected</r>
1182
- </rules>
1183
- ```
1184
-
1185
- This design means **any TTS provider** can integrate with BMAD by replacing these markers with their own instructions!
1186
-
1187
- **[→ View Complete BMAD Documentation](docs/bmad-plugin.md)** - All agent mappings, language support, TTS injection details, plugin management, and customization
1188
-
1189
- [↑ Back to top](#-table-of-contents)
1190
-
1191
- ---
1192
-
1193
- ## 🤖 OpenClaw Integration
1194
-
1195
- **Use AgentVibes TTS with OpenClaw - the revolutionary AI assistant you can access via any instant messenger!**
1196
-
1197
- **What is OpenClaw?** [OpenClaw](https://openclaw.ai/) is a revolutionary AI assistant that brings Claude AI to your favorite messaging platforms - WhatsApp, Telegram, Discord, and more. No apps to install, no websites to visit - just message your AI assistant like you would a friend.
1198
-
1199
- 🌐 **Website**: https://openclaw.ai/
1200
-
1201
- AgentVibes seamlessly integrates with OpenClaw, providing professional text-to-speech for AI assistants running on messaging platforms and remote servers.
1202
-
1203
- ### 🚨 CRITICAL: Security Before Running OpenClaw on Any Remote Server
1204
-
1205
- ⚠️ **SECURITY IS NOT OPTIONAL** - Running OpenClaw on a remote server exposes your infrastructure to attack vectors including SSH compromise, credential theft, and lateral movement.
1206
-
1207
- **👉 READ THIS FIRST:** [Security Hardening Guide](docs/security-hardening-guide.md) - **Required reading** covering:
1208
- - ✅ SSH hardening (key-only auth, port 2222, fail2ban)
1209
- - ✅ Firewall configuration (UFW/iptables)
1210
- - ✅ Intrusion detection (AIDE, Wazuh)
1211
- - ✅ VPN tunneling (Tailscale alternative to direct SSH)
1212
-
1213
- **Do not expose your OpenClaw server to the internet without reading this guide.**
1214
-
1215
- ### 🎯 Key Benefits
1216
-
1217
- - **Free & Offline**: No API costs, works without internet
1218
- - **Remote SSH Audio**: Audio tunnels from server to local machine via PulseAudio
1219
- - **50+ Voices**: Professional AI voices in 30+ languages
1220
- - **Zero Config**: Automatic when AgentVibes is installed
1221
-
1222
- ### 🚀 Installation
1223
-
1224
- AgentVibes includes a ready-to-use OpenClaw skill that enables TTS on messaging platforms. The setup involves two components:
1225
-
1226
- #### Component 1: OpenClaw Server (Remote)
1227
-
1228
- Install AgentVibes on your OpenClaw server:
1229
-
1230
- ```bash
1231
- # On your remote server where OpenClaw is running
1232
- npx agentvibes install
1233
- ```
1234
-
1235
- The OpenClaw skill is **automatically included** in the AgentVibes npm package at `.clawdbot/skill/SKILL.md`.
5
+ ### Finally — your AI agents can talk back.
1236
6
 
1237
- **How to activate the skill in OpenClaw:**
7
+ **AgentVibes gives your AI coding agents a real spoken voice.** When an agent starts a task, you hear it. When it finishes, you hear that too — out loud, in a genuinely human voice, while you keep working on something else.
1238
8
 
1239
- 1. **Locate the skill** - After installing AgentVibes, the skill is at:
1240
- ```
1241
- node_modules/agentvibes/.clawdbot/skill/SKILL.md
1242
- ```
9
+ [![npm version](https://img.shields.io/npm/v/agentvibes)](https://www.npmjs.com/package/agentvibes)
10
+ [![Test Suite](https://github.com/paulpreibisch/AgentVibes/actions/workflows/test.yml/badge.svg)](https://github.com/paulpreibisch/AgentVibes/actions/workflows/test.yml)
11
+ [![Publish](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml/badge.svg)](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml)
12
+ [![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
1243
13
 
1244
- 2. **Link to OpenClaw skills directory** (if OpenClaw uses skills):
1245
- ```bash
1246
- # Example - adjust path based on your OpenClaw installation
1247
- ln -s $(npm root -g)/agentvibes/.clawdbot/skill/SKILL.md ~/.openclaw/skills/agentvibes.md
1248
- ```
14
+ [**Website**](https://agentvibes.org) · [**Quick Start**](docs/quick-start.md) · [**Voice Library**](docs/voice-library.md) · [**Commands**](docs/commands.md) · [**Providers**](docs/providers.md)
1249
15
 
1250
- 3. **OpenClaw auto-detection** - Many OpenClaw setups automatically detect AgentVibes when it's installed. Check your OpenClaw logs for:
1251
- ```
1252
- ✓ AgentVibes skill detected and loaded
1253
- ```
16
+ </div>
1254
17
 
1255
18
  ---
1256
19
 
1257
- #### 🎙️ AgentVibes Voice Management Skill for OpenClaw
1258
-
1259
- Manage your text-to-speech voices across multiple providers with the AgentVibes Voice Management Skill:
1260
-
1261
- **Voice Management Features:**
1262
- - 🎤 **50+ Professional Voices** - Across Piper TTS, Piper (free offline), and macOS Say providers
1263
- - 🔀 **Multi-Provider Support** - Switch between Piper TTS (premium), Piper (free), and macOS Say
1264
- - 👂 **Voice Preview** - Listen to voices before selecting them
1265
- - 🎚️ **Voice Customization** - Add custom voices, set pretext, control speech rate
1266
- - 📋 **Voice Management** - List, switch, replay, and manage your voice library
1267
- - 🔇 **Mute Control** - Mute/unmute TTS output with persistent settings
1268
- - 🌍 **Multilingual Support** - Voices in 30+ languages across all providers
1269
-
1270
- **Installation Confirmation:**
1271
- ✅ The skill is **automatically included** in the AgentVibes npm package at:
1272
- ```
1273
- node_modules/agentvibes/.clawdbot/skill/SKILL.md
1274
- ```
1275
-
1276
- No extra setup needed - when you run `npx agentvibes install` on your OpenClaw server, the skill is ready to use!
1277
-
1278
- **Full Skill Documentation:**
1279
- **[→ View Complete AgentVibes Skill Guide](.clawdbot/skill/SKILL.md)** - 430+ lines covering:
1280
- - Quick start with 50+ voice options
1281
- - Background music & effects management
1282
- - Personality system (19+ styles)
1283
- - Voice effects (reverb, reverb, EQ)
1284
- - Speed & verbosity control
1285
- - Remote SSH audio setup
1286
- - Troubleshooting & complete reference
1287
-
1288
- **Popular Voice Examples:**
1289
- ```bash
1290
- # Female voices
1291
- npx agentvibes speak "Hello" --voice en_US-amy-medium
1292
- npx agentvibes speak "Bonjour" --voice fr_FR-siwis-medium
1293
-
1294
- # Male voices
1295
- npx agentvibes speak "Hello" --voice en_US-lessac-medium
1296
- npx agentvibes speak "Good day" --voice en_GB-alan-medium
20
+ ## 🎯 The pitch
1297
21
 
1298
- # Add personality!
1299
- bash ~/.claude/hooks/personality-manager.sh set sarcastic
1300
- bash ~/.claude/hooks/play-tts.sh "Oh wonderful, another request"
1301
- ```
22
+ > **Your AI agents get a voice — they actually speak.** Even when you're developing on a remote server, the **receiver** pipes that voice straight to your **local** speakers. With the latest neural voices — **Kokoro** and **ElevenLabs** — your agent team becomes a hands-free partner for your flow: perfect when you're running **multiple agents** and don't want to be glued to one screen. If you're a multitasker, this is your tool. And it's always under your control — **mute it, or toggle it on and off, whenever you want.**
1302
23
 
1303
24
  ---
1304
25
 
1305
- #### Component 2: AgentVibes Receiver (Local/Phone) ⚠️ REQUIRED
1306
-
1307
- **CRITICAL: You MUST install AgentVibes on your phone (or local machine) to receive and play audio!**
1308
-
1309
- Without this, audio cannot be heard - the server generates TTS but needs a receiver to play it.
1310
-
1311
- **Install on Android Phone (Termux):**
1312
-
1313
- 1. **Install Termux from F-Droid** (NOT Google Play):
1314
- - Download: https://f-droid.org/en/packages/com.termux/
1315
-
1316
- 2. **Install Node.js in Termux:**
1317
- ```bash
1318
- pkg update && pkg upgrade
1319
- pkg install nodejs-lts
1320
- ```
1321
-
1322
- 3. **Install AgentVibes in Termux:**
1323
- ```bash
1324
- npx agentvibes install
1325
- ```
1326
-
1327
- 4. **Install Termux:API** (for audio playback):
1328
- - Download: https://f-droid.org/en/packages/com.termux.api/
1329
- - Then in Termux: `pkg install termux-api`
1330
-
1331
- **Install on Local Mac/Linux:**
1332
-
1333
- ```bash
1334
- npx agentvibes install
1335
- ```
1336
-
1337
- **Why is this needed?**
1338
- - The **server generates TTS** but has no speakers (headless)
1339
- - AgentVibes on your **phone acts as the audio receiver** via SSH tunnel
1340
- - Audio tunnels from server → SSH → phone → speakers 🔊
1341
-
1342
- Without AgentVibes installed on the receiving device, you'll generate audio but hear nothing!
1343
-
1344
- #### How It Works: Server → SSH Tunnel → Local Playback
1345
-
1346
- ```
1347
- ┌─────────────────────────────────────────────────────────┐
1348
- │ 1. User messages OpenClaw via Telegram/WhatsApp │
1349
- │ "Tell me about the weather" │
1350
- └─────────────────────────────────────────────────────────┘
1351
-
1352
- ┌─────────────────────────────────────────────────────────┐
1353
- │ 2. OpenClaw (Server) processes request with Claude │
1354
- │ AgentVibes skill generates TTS audio │
1355
- └─────────────────────────────────────────────────────────┘
1356
-
1357
- ┌─────────────────────────────────────────────────────────┐
1358
- │ 3. Audio tunnels through SSH → PulseAudio (port 14713)│
1359
- │ Server: PULSE_SERVER=tcp:localhost:14713 │
1360
- └─────────────────────────────────────────────────────────┘
1361
-
1362
- ┌─────────────────────────────────────────────────────────┐
1363
- │ 4. Local AgentVibes receives and plays audio │
1364
- │ Phone speakers, laptop speakers, etc. │
1365
- │ 🔊 "The weather is sunny and 72 degrees" │
1366
- └─────────────────────────────────────────────────────────┘
1367
- ```
1368
-
1369
- **Architecture:**
1370
- - **Server (OpenClaw)**: Generates TTS, sends via PulseAudio
1371
- - **SSH Tunnel**: RemoteForward port 14713 (encrypted transport)
1372
- - **Local (Termux/Desktop)**: AgentVibes receives audio, plays on speakers
1373
-
1374
- This creates a **Siri-like experience** - message from anywhere, hear responses on your phone! 📱🎤
1375
-
1376
- ### 📝 Usage
1377
-
1378
- #### Basic TTS Commands
1379
-
1380
- ```bash
1381
- # Basic TTS
1382
- npx agentvibes speak "Hello from OpenClaw"
1383
-
1384
- # With different voices
1385
- npx agentvibes speak "Hello" --voice en_US-amy-medium
1386
- npx agentvibes speak "Bonjour" --voice fr_FR-siwis-medium
1387
-
1388
- # List available voices
1389
- npx agentvibes voices
1390
- ```
1391
-
1392
- #### Advanced: Direct Hook Usage with Voice Override
1393
-
1394
- For programmatic control, use the TTS hook directly:
1395
-
1396
- ```bash
1397
- # Basic: Use default voice
1398
- bash ~/.claude/hooks/play-tts.sh "Hello from OpenClaw"
1399
-
1400
- # Advanced: Override voice per message
1401
- bash ~/.claude/hooks/play-tts.sh "Welcome message" "en_US-amy-medium"
1402
- bash ~/.claude/hooks/play-tts.sh "Bonjour!" "fr_FR-siwis-medium"
1403
- bash ~/.claude/hooks/play-tts.sh "British greeting" "en_GB-alan-medium"
1404
- ```
1405
-
1406
- **Parameters:**
1407
- - `$1` - **TEXT** (required): Message to speak
1408
- - `$2` - **VOICE** (optional): Voice name to override default
1409
-
1410
- #### Audio Effects Configuration for OpenClaw
1411
-
1412
- **File**: `.claude/config/audio-effects.cfg`
1413
-
1414
- Customize audio effects, background music, and voice processing per agent or use default settings:
1415
-
1416
- **Format:**
1417
- ```
1418
- AGENT_NAME|SOX_EFFECTS|BACKGROUND_FILE|BACKGROUND_VOLUME
1419
- ```
1420
-
1421
- **Example Configuration:**
1422
-
1423
- ```bash
1424
- # Default - subtle background music
1425
- default||agentvibes_soft_flamenco_loop.mp3|0.30
1426
-
1427
- # Custom agent with reverb + background
1428
- MyAgent|reverb 40 50 90 gain -2|agentvibes_soft_flamenco_loop.mp3|0.20
1429
-
1430
- # Agent with pitch shift and EQ
1431
- Assistant|pitch -100 equalizer 3000 1q +2|agentvibes_dark_chill_step_loop.mp3|0.15
1432
- ```
1433
-
1434
- **Available SOX Effects:**
1435
-
1436
- | Effect | Syntax | Example | Description |
1437
- |--------|--------|---------|-------------|
1438
- | **Reverb** | `reverb <reverberance> <HF-damping> <room-scale>` | `reverb 40 50 90` | Adds room ambiance (light: 30 40 70, heavy: 50 60 100) |
1439
- | **Pitch** | `pitch <cents>` | `pitch -100` | Shift pitch (100 cents = 1 semitone, negative = lower) |
1440
- | **Equalizer** | `equalizer <freq> <width>q <gain-dB>` | `equalizer 3000 1q +2` | Boost/cut frequencies (bass: 200Hz, treble: 4000Hz) |
1441
- | **Gain** | `gain <dB>` | `gain -2` | Adjust volume (negative = quieter, positive = louder) |
1442
- | **Compand** | `compand <attack,decay> <threshold:in,out>` | `compand 0.3,1 6:-70,-60,-20` | Dynamic range compression (makes quiet parts louder) |
1443
-
1444
- **Background Music Tracks:**
1445
-
1446
- Built-in tracks available in `.claude/audio/tracks/`:
1447
- - `agentvibes_soft_flamenco_loop.mp3` - Warm, rhythmic flamenco
1448
- - `agentvibes_dark_chill_step_loop.mp3` - Modern chill electronic
1449
- - (50+ additional tracks available)
1450
-
1451
- **Background Volume:**
1452
- - `0.10` - Very subtle (10%)
1453
- - `0.20` - Subtle (20%)
1454
- - `0.30` - Moderate (30%, recommended default)
1455
- - `0.40` - Noticeable (40%, party mode)
1456
-
1457
- **Example: OpenClaw Custom Configuration**
1458
-
1459
- Create `.claude/config/audio-effects.cfg` on your OpenClaw server:
1460
-
1461
- ```bash
1462
- # OpenClaw assistant - warm voice with subtle reverb
1463
- OpenClaw|reverb 30 40 70 gain -1|agentvibes_soft_flamenco_loop.mp3|0.25
1464
-
1465
- # Help desk agent - clear, bright voice
1466
- HelpDesk|equalizer 4000 1q +3 compand 0.2,0.5 6:-70,-60,-20|agentvibes_dark_chill_step_loop.mp3|0.15
1467
-
1468
- # Default fallback
1469
- default||agentvibes_soft_flamenco_loop.mp3|0.30
1470
- ```
1471
-
1472
- **How AgentVibes Applies Effects:**
1473
-
1474
- 1. **Generate TTS** - Create base audio with Piper TTS
1475
- 2. **Apply SOX effects** - Process audio (reverb, EQ, pitch, etc.)
1476
- 3. **Mix background** - Blend background music at specified volume
1477
- 4. **Tunnel via SSH** - Send processed audio to local receiver
1478
- 5. **Play on device** - Output to phone/laptop speakers
1479
-
1480
- This allows **per-message customization** or **consistent agent branding** with unique audio signatures!
1481
-
1482
- ### 🔊 Remote SSH Audio
26
+ ## Why you'll want this
1483
27
 
1484
- Perfect for running OpenClaw on a remote server with audio on your local machine:
28
+ You're in flow. You've got three agents running across three terminals. The old way? You babysit one window, alt-tab to the next, and hope you didn't miss the one that finished four minutes ago and has been sitting idle ever since.
1485
29
 
1486
- **Quick Setup:**
30
+ **AgentVibes speaks each agent's task start and completion aloud.** You stop staring at a silent terminal and start *hearing* your agents work — glance away, write some notes, grab a coffee, and the moment an agent wraps a task or needs you, its voice tells you. It's built for the way you actually work: many agents, in parallel, all talking back.
1487
31
 
1488
- 1. **Remote server** - Configure PulseAudio:
1489
- ```bash
1490
- echo 'export PULSE_SERVER=tcp:localhost:14713' >> ~/.bashrc
1491
- source ~/.bashrc
1492
- ```
1493
-
1494
- 2. **Local machine** - Add SSH tunnel (`~/.ssh/config`):
1495
- ```
1496
- Host your-server
1497
- RemoteForward 14713 localhost:14713
1498
- ```
1499
-
1500
- 3. **Connect and test**:
1501
- ```bash
1502
- ssh your-server
1503
- agentvibes speak "Testing remote audio from OpenClaw"
1504
- ```
32
+ And here's the part that feels like magic: **working on a remote server with no audio device?** The AgentVibes **Remote Receiver** pipes your agent's voice straight through *your laptop's speakers*. The work happens on the box. The voice arrives at your desk.
1505
33
 
1506
- Audio plays on your local speakers! 🔊
34
+ <div align="center">
1507
35
 
1508
- ### 📚 Documentation
36
+ ![AgentVibes setup TUI](https://raw.githubusercontent.com/paulpreibisch/AgentVibes/master/docs/installation-screenshots/screenshot-setup.png)
1509
37
 
1510
- - **OpenClaw Skill**: [.clawdbot/README.md](.clawdbot/README.md)
1511
- - **OpenClaw Website**: https://openclaw.ai/
1512
- - **Remote Audio Setup**: [docs/remote-audio-setup.md](docs/remote-audio-setup.md)
1513
- - **Security Hardening**: [docs/security-hardening-guide.md](docs/security-hardening-guide.md) ⚠️
1514
-
1515
- [↑ Back to top](#-table-of-contents)
38
+ </div>
1516
39
 
1517
40
  ---
1518
41
 
1519
- ## 🎙️ AgentVibes Receiver: Remote Audio Streaming from Voiceless Servers
1520
-
1521
- **Receive and play TTS audio from servers that have no audio output!**
1522
-
1523
- AgentVibes Receiver is a lightweight audio client that runs on your phone, tablet, or personal computer, which receives TTS audio from remote voiceless servers, where your OpenClaw Personal Assistant or your Claude Code project is installed.
1524
-
1525
- ### 🎯 What AgentVibes Receiver Solves
1526
-
1527
- You have OpenClaw running on a Mac mini or remote server with **no audio output**:
1528
- - 🖥️ Mac mini (silent)
1529
- - 🖥️ Ubuntu server (headless)
1530
- - ☁️ AWS/DigitalOcean instance
1531
- - 📦 Docker container
1532
- - 🪟 WSL (Windows Subsystem for Linux)
1533
-
1534
- Users message you via WhatsApp, Telegram, Discord but only get text responses:
1535
- - ❌ No voice = Less engaging experience
1536
- - ❌ No personality = Feels robotic
1537
- - ❌ No audio cues = Miss important context
1538
-
1539
- **AgentVibes Receiver transforms this:**
1540
- - ✅ OpenClaw speaks with voice (Siri-like experience)
1541
- - ✅ Audio streams to your device automatically
1542
- - ✅ You hear responses on your speakers
1543
- - ✅ Users get a conversational AI experience
1544
-
1545
- ### 🔧 How It Works
1546
-
1547
- **One-time setup:**
1548
- 1. Install AgentVibes on your voiceless server with OpenClaw
1549
- 2. Install AgentVibes Receiver on your personal device (phone/tablet/laptop)
1550
- 3. Connect via SSH tunnel (or Tailscale VPN)
1551
- 4. Done - automatic from then on
1552
-
1553
- **Flow diagram:**
1554
- ```
1555
- ┌──────────────────────────────────────────┐
1556
- │ Your Mac mini / Server │
1557
- │ (OpenClaw + AgentVibes) │
1558
- │ • Generates TTS audio │
1559
- │ • Sends via SSH tunnel │
1560
- └──────────────────────────────────────────┘
1561
- ↓ Encrypted SSH tunnel
1562
- ┌──────────────────────────────────────────┐
1563
- │ Your Phone / Laptop │
1564
- │ (AgentVibes Receiver) │
1565
- │ • Receives audio stream (or text stream) │
1566
- │ • Auto-plays on device speakers │
1567
- └──────────────────────────────────────────┘
1568
- ```
1569
-
1570
- **Real-world example:**
1571
- ```
1572
- 📱 WhatsApp: "Tell me about quantum computing"
1573
-
1574
- 🖥️ Mac mini: OpenClaw processes + generates TTS
1575
- ↓ SSH tunnel (audio or text stream)
1576
- 📱 Your phone (Agent Vibes Receiver): Plays audio 🔊
1577
-
1578
- You hear on your device speakers: "Quantum computing uses quantum bits..."
1579
-
1580
- 💬 Conversation feels alive!
1581
- ```
1582
-
1583
- ### ✨ Key Features
1584
-
1585
- | Feature | Benefit |
1586
- |---------|---------|
1587
- | **One-Time Pairing** | SSH key setup, automatic reconnect |
1588
- | **Real-Time Streaming** | Low-latency audio playback |
1589
- | **SSH Encryption** | Secure audio tunnel |
1590
- | **Tailscale Support** | Easy VPN for remote servers |
1591
- | **Voice Selection** | Configure server-side voice |
1592
- | **Audio Effects** | Reverb, echo, pitch on server |
1593
- | **Cache Tracking** | Monitor audio generation |
1594
- | **Multiple Servers** | Connect to different OpenClaw instances |
1595
-
1596
- ### 🚀 Perfect For
1597
-
1598
- - 🖥️ **Mac mini + OpenClaw** - Home server with professional voices
1599
- - ☁️ **Remote Servers** - OpenClaw on AWS/GCP/DigitalOcean
1600
- - 📱 **WhatsApp/Telegram** - Users message, hear responses
1601
- - 🎓 **Discord Bots** - Bot speaks with voices
1602
- - 🏗️ **Docker/Containers** - Containerized OpenClaw with audio
1603
- - 🔧 **WSL Development** - Windows developers using voiceless WSL
1604
-
1605
- ### 📝 Setup
42
+ ## Quick start (30 seconds)
1606
43
 
1607
44
  ```bash
1608
- # On your server (Mac mini, Ubuntu, AWS, etc.)
45
+ # Install interactive TUI installer, no git clone required
1609
46
  npx agentvibes install
1610
- # Selects OpenClaw option
1611
- # AgentVibes installs with SSH-Remote provider
1612
-
1613
- # On your personal device (phone, laptop, tablet)
1614
- npx agentvibes receiver setup
1615
- # Pairing prompt with server SSH key
1616
- # Done!
1617
47
  ```
1618
48
 
1619
- ### 📚 Documentation
1620
-
1621
- **[→ View AgentVibes Receiver Setup Guide](docs/agentvibes-receiver.md)** - Pairing, SSH configuration, Tailscale setup, troubleshooting
1622
-
1623
- **[→ View OpenClaw Integration Guide](docs/openclaw-integration.md)** - Server setup, voice configuration, audio effects, and best practices
1624
-
1625
- [↑ Back to top](#-table-of-contents)
1626
-
1627
- ---
1628
-
1629
- ## 📦 Installation Structure
1630
-
1631
- **What gets installed:** Commands, hooks, personalities, and plugins in `.claude/` directory.
1632
-
1633
- **[→ View Complete Installation Structure](docs/installation-structure.md)** - Full directory tree, file descriptions, and settings storage
1634
-
1635
- [↑ Back to top](#-table-of-contents)
1636
-
1637
- ---
1638
-
1639
- ## 💡 Common Workflows
49
+ That's it. The installer wires up the Claude Code hooks and walks you through choosing a voice. Then **just code** — AgentVibes speaks automatically as your agents acknowledge and complete tasks.
1640
50
 
1641
51
  ```bash
1642
- # Switch voices
1643
- /agent-vibes:list # See all voices
1644
- /agent-vibes:switch Aria # Change voice
1645
-
1646
- # Try personalities
1647
- /agent-vibes:personality pirate # Pirate voice + style
1648
- /agent-vibes:personality list # See all 19 personalities
1649
-
1650
- # Speak in other languages
1651
- /agent-vibes:set-language spanish # Speak in Spanish
1652
- /agent-vibes:set-language list # See 30+ languages
1653
-
1654
- # Replay audio
1655
- /agent-vibes:replay # Replay last message
52
+ npx agentvibes # open the TUI any time
1656
53
  ```
1657
54
 
1658
- **💡 Tip:** Using MCP? Just say "Switch to Aria voice" or "Speak in Spanish" instead of typing commands.
55
+ > **macOS only, one time:** `brew install bash` macOS ships bash 3.2; AgentVibes needs 5.x.
1659
56
 
1660
- [ Back to top](#-table-of-contents)
57
+ New here? The [**Quick Start guide**](docs/quick-start.md) walks you through your first voiced session.
1661
58
 
1662
59
  ---
1663
60
 
1664
- ## 🔧 Advanced Features
1665
-
1666
- AgentVibes supports **custom personalities** and **custom voices**.
1667
-
1668
- **Quick Examples:**
1669
- ```bash
1670
- # Create custom personality
1671
- /agent-vibes:personality add mycustom
1672
-
1673
- # Add custom Piper voice
1674
- /agent-vibes:add "My Voice" abc123xyz789
61
+ ## 🆕 Neural voices (v5.11.0)
1675
62
 
1676
- # Use in custom output styles
1677
- [Bash: .claude/hooks/play-tts.sh "Starting" "Aria"]
1678
- ```
1679
-
1680
- **[→ View Advanced Features Guide](docs/advanced-features.md)** - Custom personalities, custom voices, and more
1681
-
1682
- [↑ Back to top](#-table-of-contents)
1683
-
1684
- ---
63
+ Your agent team can now sound genuinely human — each agent with its own distinct voice.
1685
64
 
1686
- ## 🔊 Remote Audio Setup
65
+ - **🧠 Kokoro** local neural TTS that runs on your **CPU, no GPU required**, with **Chinese, Japanese, and Korean** voices built in.
66
+ - **☁️ ElevenLabs** — premium cloud neural voices when you want the absolute best.
1687
67
 
1688
- **Running AgentVibes on a remote server?** No problem!
68
+ Plus combinable audio effects landed too: stack **reverb**, **echo**, and **chorus** on any voice.
1689
69
 
1690
- **Auto-detects SSH sessions** - Works with VS Code Remote SSH, regular SSH, cloud dev environments
1691
- ✅ **Zero configuration** - Audio optimizes automatically
1692
- ✅ **No static/clicking** - Clean playback through SSH tunnels
70
+ <div align="center">
1693
71
 
1694
- **[ Remote Audio Setup Guide](docs/remote-audio-setup.md)** - Full PulseAudio configuration details
72
+ ![AgentVibes voice browser](https://raw.githubusercontent.com/paulpreibisch/AgentVibes/master/docs/installation-screenshots/screenshot-voice-browser.png)
1695
73
 
1696
- [↑ Back to top](#-table-of-contents)
74
+ </div>
1697
75
 
1698
76
  ---
1699
77
 
1700
- ## 🖥️ Windows SSH Receiver & TTS Watcher
1701
-
1702
- **Stream TTS audio from a Linux/macOS machine to your Windows PC.**
1703
-
1704
- When you run Claude Code on a Linux server (or WSL) and want audio to play on your Windows laptop, AgentVibes routes audio over SSH using a queue-based architecture — required because SSH connections on Windows run in **Session 0**, which has no access to audio devices.
1705
-
1706
- ### How It Works
1707
-
1708
- ```
1709
- Linux/macOS (sender) Windows (receiver)
1710
- ───────────────────── ──────────────────
1711
- play-tts-ssh-remote.sh agentvibes-receiver.ps1 ← SSH ForceCommand
1712
- │ │
1713
- │ SSH: base64 JSON payload ──────────────▶ │ writes req-xxxx.json
1714
- │ ▼
1715
- │ ~/.agentvibes/tts-queue/
1716
- │ │
1717
- │ tts-watcher.ps1 ← runs in your user session
1718
- │ │
1719
- │ play-tts.ps1 → piper/SAPI → 🔊 speakers
1720
- ```
1721
-
1722
- The **receiver** (`agentvibes-receiver.ps1`) runs as an SSH ForceCommand — it accepts base64 JSON payloads and writes them to a queue directory. The **watcher** (`tts-watcher.ps1`) runs invisibly in your user session (the only session that has audio), picks up queue items, and plays them.
1723
-
1724
- ### Is It Visible to the User?
1725
-
1726
- **No — completely invisible during normal use.** The watcher is a hidden background process that:
1727
- - Auto-starts on Windows login via the Startup folder shortcut (`agentvibes-watcher.vbs`)
1728
- - Runs as a hidden PowerShell window (no taskbar icon, no UI)
1729
- - Writes a log to `%USERPROFILE%\.agentvibes\watcher.log` for debugging
1730
- - Silently plays audio when TTS requests arrive
1731
-
1732
- ### One-Time Setup (Windows)
1733
-
1734
- Run this **once** in an **Administrator PowerShell** from the AgentVibes repo:
78
+ ## Features
1735
79
 
1736
- ```powershell
1737
- powershell -ExecutionPolicy Bypass -File setup-ssh-receiver.ps1
1738
- ```
1739
-
1740
- This:
1741
- 1. Installs and hardens OpenSSH with ForceCommand (SSH → receiver only, no shell)
1742
- 2. Creates the `agentvibes-receiver` Windows user for SSH isolation
1743
- 3. Installs the TTS watcher + auto-start shortcut in your Startup folder
1744
- 4. Configures the firewall rule (Tailscale-only by default)
80
+ **🗣️ Automatic spoken narration.**
81
+ AgentVibes installs Claude Code hooks that fire on their own — when your agent acknowledges a task and when it completes one, you hear it spoken. No manual calls, no extra commands; you just code and listen.
1745
82
 
1746
- **After setup, no further action is needed.** The watcher starts automatically on every login.
83
+ **📡 Remote Receiver voice from anywhere, on your speakers.**
84
+ SSH'd into a server with no sound card? The receiver routes the synthesized audio back to your local machine and plays it through *your* speakers. The work runs remotely; the voice lands at your desk.
1747
85
 
1748
- ### After-Install Checklist
86
+ **🧠 Neural and free voices — 900+ to choose from.**
87
+ Run fully free and offline with **Piper** (900+ voices, incl. the LibriTTS library) or your OS's built-in **macOS Say** / **Windows SAPI**. Want human-grade quality? Switch to neural: **Kokoro** (local, CPU-only, with Chinese/Japanese/Korean) or **ElevenLabs** (premium cloud). Browse and preview them all in the Voices tab.
1749
88
 
1750
- | Step | Required? | Notes |
1751
- |------|-----------|-------|
1752
- | Run `setup-ssh-receiver.ps1` | ✅ Once | Admin PowerShell |
1753
- | Add sender's SSH public key | ✅ Once | To `C:\ProgramData\ssh\administrators_authorized_keys` |
1754
- | Start the watcher | ✅ First time | Auto-starts on next login; or run `start-watcher.vbs` manually |
1755
- | Install piper voices on Windows | Optional | Without it, falls back to Windows SAPI (built-in) |
89
+ **👥 A distinct voice per agent (BMAD).**
90
+ Give every agent on a multi-agent BMAD team its own voice and auto-assign them from your active provider. When the analyst, architect, dev, and QA each sound different, you know who's talking without looking.
1756
91
 
1757
- ### Watcher Fallback Behaviour
92
+ **🎚️ Per-LLM routing.**
93
+ Claude Code, Claude Desktop, Warp, OpenClaw — each LLM can have its own voice, effects, background music, and intro phrase, so every assistant sounds distinct.
1758
94
 
1759
- If `%USERPROFILE%\.claude\hooks-windows\play-tts.ps1` is not present (e.g. AgentVibes has not been installed on the Windows machine itself), the watcher automatically falls back to **Windows SAPI** — the built-in speech synthesizer. Audio will still play; it just uses the default Windows voice instead of a Piper voice.
95
+ **🎛️ Combinable audio effects.**
96
+ Stack **reverb**, **echo**, and **chorus** on any voice and preview live — from a subtle room to a cathedral with a cave echo.
1760
97
 
1761
- ### Troubleshooting
1762
-
1763
- **No audio after the watcher is running:**
1764
- ```powershell
1765
- # Check the log
1766
- Get-Content "$env:USERPROFILE\.agentvibes\watcher.log" -Tail 20
1767
- ```
98
+ **🎭 Personalities & sentiment.**
99
+ Apply speaking styles (pirate, sarcastic, and more) to give the narration character.
1768
100
 
1769
- **Watcher not running after reboot:**
1770
- ```powershell
1771
- # Restart manually (no admin needed)
1772
- Start-Process wscript.exe -ArgumentList "$env:USERPROFILE\.agentvibes\start-watcher.vbs" -WindowStyle Hidden
1773
- ```
101
+ **🎵 Background music.**
102
+ Play ambient soundtracks underneath the narration, with per-track volume control.
1774
103
 
1775
- **Update the watcher without re-running full setup:**
1776
- ```powershell
1777
- # From the AgentVibes repo root (no admin needed)
1778
- powershell -ExecutionPolicy Bypass -File update-watcher.ps1
1779
- ```
104
+ **🌍 Languages & translation.**
105
+ Narrate in the language you choose — e.g. `/agent-vibes:set-language spanish`.
1780
106
 
1781
- ### Platform Comparison
107
+ **💬 Natural-language control (MCP).**
108
+ Every one of the 50+ slash commands has a plain-English equivalent through the MCP integration — type the command, or just *ask*.
1782
109
 
1783
- | Platform | Watcher needed? | Reason |
1784
- |----------|----------------|--------|
1785
- | **Windows** | ✅ Yes | SSH runs in Session 0 — no audio access |
1786
- | **Linux** | No | SSH sessions can reach PulseAudio/PipeWire directly |
1787
- | **macOS** | No | SSH sessions have audio access |
1788
- | **WSL** | No | Uses Linux audio stack |
110
+ **🤐 Always under your control.**
111
+ Mute and unmute instantly, and toggle narration on or off per LLM — quiet when you need to focus, loud when you want the play-by-play.
1789
112
 
1790
- [↑ Back to top](#-table-of-contents)
113
+ **🖥️ Runs everywhere.**
114
+ Claude Code, Claude Desktop, Warp Terminal, OpenClaw, and even Android/Termux (Claude Code on your phone).
1791
115
 
1792
116
  ---
1793
117
 
1794
- ## 🛠️ Technical Documentation
1795
-
1796
- ### Audio Architecture
1797
-
1798
- AgentVibes uses a cross-platform audio module (`src/console/audio-env.js`) that handles player detection and environment configuration for all supported platforms.
1799
-
1800
- #### Platform Audio Support Matrix
1801
-
1802
- | Platform | PulseAudio Config | MP3 Players (preference order) | WAV Players (preference order) |
1803
- |----------|-------------------|-------------------------------|-------------------------------|
1804
- | **Native Linux** | System default (not overridden) | ffplay → play (sox) → mpg123 → cvlc → mpv | aplay → paplay → play → ffplay |
1805
- | **WSL2** | Auto-detects `/mnt/wslg/PulseServer` | Same as Linux | Same as Linux |
1806
- | **macOS** | Not applicable | ffplay → play → mpg123 → cvlc → mpv → afplay | aplay → paplay → play → ffplay → afplay |
1807
- | **Windows** | Not applicable | ffplay → mpv (if installed) | ffplay → mpv → PowerShell SoundPlayer (built-in) |
1808
-
1809
- #### Key Design Decisions
1810
-
1811
- - **Direct spawn, not shell chains**: Audio players are spawned directly via Node's `spawn()` instead of `sh -c 'cmd1 || cmd2'` chains. VLC/cvlc crashes when stderr is redirected inside shell wrappers.
1812
- - **Player detection at startup**: The available player is detected once using `which` and cached. No runtime fallback chains.
1813
- - **PULSE_SERVER safety**: The WSL2 PulseServer path (`/mnt/wslg/PulseServer`) is only set when the socket file actually exists. Hardcoding it on native Linux silently breaks audio output.
1814
- - **Windows WAV fallback**: PowerShell's `System.Media.SoundPlayer` is used as a built-in fallback when no cross-platform player is installed.
1815
-
1816
- #### Multi-Speaker Voice Models
1817
-
1818
- Piper supports multi-speaker ONNX models (e.g., `16Speakers.onnx`) that contain multiple voices in a single file. AgentVibes expands these automatically:
1819
-
1820
- - The `.onnx.json` metadata file contains `num_speakers` and `speaker_id_map`
1821
- - `scanInstalledVoices()` expands multi-speaker models into individual selectable entries (e.g., `16Speakers::Cori_Samuel`)
1822
- - When selected, the system writes `tts-piper-model.txt` and `tts-piper-speaker-id.txt` to `.claude/`
1823
- - `play-tts-piper.sh` reads these files and passes `--speaker <id>` to the piper binary
1824
-
1825
- #### Voice Directory Resolution
118
+ ## 🎚️ The TUI
1826
119
 
1827
- Voice storage follows the same precedence chain in both JavaScript and shell:
120
+ Run `npx agentvibes` to configure everything visually:
1828
121
 
1829
- 1. `PIPER_VOICES_DIR` environment variable
1830
- 2. Project-local `.claude/piper-voices-dir.txt` (walks up directory tree)
1831
- 3. Global `~/.claude/piper-voices-dir.txt`
1832
- 4. Default `~/.claude/piper-voices`
122
+ | Tab | What it does |
123
+ |-----|--------------|
124
+ | **Setup** | Pick per-LLM provider, voice, and audio effects |
125
+ | **Voices** (press <kbd>V</kbd>) | Browse and preview 900+ voices |
126
+ | **Music** | Manage background music |
127
+ | **BMAD** | Give each agent in a multi-agent team its own voice + auto-assign |
1833
128
 
1834
- #### Voice Catalog System
129
+ <div align="center">
1835
130
 
1836
- AgentVibes includes a 914-voice catalog (`voice-assignments.json`) that lets users browse, preview, and install voices directly from the Voices tab:
131
+ ![AgentVibes BMAD multi-agent voices](https://raw.githubusercontent.com/paulpreibisch/AgentVibes/master/docs/installation-screenshots/screenshot-bmad.png)
1837
132
 
1838
- - **10 Curated Voices** — Hand-picked high-quality voices installed by default
1839
- - **904 LibriTTS Speakers** — Automatically extracted from the `16Speakers` multi-speaker model's `speaker_id_map`, plus the full LibriTTS catalog from Hugging Face
1840
- - **Download on Demand** — Uninstalled voices appear greyed-out in the list; pressing Enter opens a download modal that fetches the voice via `piper-voice-manager.sh`
1841
- - **Catalog Metadata** — Each entry includes `voiceId`, `displayName`, `gender`, `type` (curated/libritts), and download URL
1842
- - **LibriTTS Speaker Names** — Raw numeric IDs are patched at load time using `patchLibriTTSSpeakerNames()` which maps speaker IDs to human-readable names from the registry
133
+ </div>
1843
134
 
1844
- The catalog is loaded once at tab initialization by `loadCatalog()`. Installed voices (from disk scan) are shown with full color; catalog-only voices are dimmed until downloaded.
1845
-
1846
- #### Required System Dependencies for Background Music
1847
-
1848
- Background music requires an MP3-capable audio player. The installer detects missing players and offers to install `ffmpeg` automatically. If no player is found, the Music tab displays a clear error message.
135
+ ---
1849
136
 
1850
- ```bash
1851
- # Install ffmpeg (recommended — provides ffplay)
1852
- # Ubuntu/Debian/WSL2:
1853
- sudo apt install ffmpeg
137
+ ## 🎙️ Voice providers — pick your tradeoff
1854
138
 
1855
- # macOS:
1856
- brew install ffmpeg
139
+ Mix and match per LLM. Start free with a built-in engine, level up to neural when you want it. The free providers need **no paid API** — ElevenLabs is the only one that requires a key, and it's optional.
1857
140
 
1858
- # Arch Linux:
1859
- sudo pacman -S ffmpeg
1860
- ```
141
+ | Provider | Type | Cost | Notes |
142
+ |----------|------|------|-------|
143
+ | **macOS Say** | Built-in | Free | Zero config on Mac |
144
+ | **Piper** | Local, offline | Free | Linux/WSL/Windows · 900+ voices incl. LibriTTS |
145
+ | **Windows SAPI** | Built-in | Free | Zero setup on Windows |
146
+ | **Soprano** | Neural | Free | `pip install soprano-tts` |
147
+ | 🆕 **Kokoro** | Local neural | Free | Runs on CPU (no GPU) · Chinese/Japanese/Korean |
148
+ | 🆕 **ElevenLabs** | Cloud neural | Paid (API key) | Premium, most human-sounding |
1861
149
 
1862
- [ Back to top](#-table-of-contents)
150
+ See the [**Providers guide**](docs/providers.md) and the [**Voice Library**](docs/voice-library.md) for samples and setup.
1863
151
 
1864
152
  ---
1865
153
 
1866
- ## 🔗 Useful Links
1867
-
1868
- ### Voice & AI Tools
1869
-
1870
- - 🎤 **[WhisperTyping](https://whispertyping.com/)** - Fast voice-to-text typing for developers
1871
- - 🗣️ **[OpenWhisper (Azure)](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/whisper-overview)** - Microsoft's speech-to-text service
1872
- - 🆓 **[Piper TTS](https://github.com/rhasspy/piper)** - Free offline neural TTS
1873
- - 🤖 **[Claude Code](https://claude.com/claude-code)** - AI coding assistant
1874
- - 🎭 **[BMAD METHOD](https://github.com/bmad-code-org/BMAD-METHOD)** - Multi-agent framework
1875
-
1876
- ### AgentVibes Resources
154
+ ## 🤖 Works with your stack
1877
155
 
1878
- - 🐛 **[Issues](https://github.com/paulpreibisch/AgentVibes/issues)** - Report bugs
1879
- - 📝 **[Changelog](https://github.com/paulpreibisch/AgentVibes/releases)** - Version history
1880
- - 📰 **[Technical Deep Dive - LinkedIn Article](https://www.linkedin.com/pulse/agent-vibes-add-voice-claude-code-deep-dive-npx-paul-preibisch-8zrcc/)** - How AgentVibes works under the hood
1881
-
1882
- [↑ Back to top](#-table-of-contents)
156
+ **Claude Code** (automatic voiced hooks) · **Claude Desktop** (natural-language control via [MCP](docs/mcp-setup.md)) · **Warp Terminal** · **OpenClaw** · **Android / Termux** (Claude Code on your phone)
1883
157
 
1884
158
  ---
1885
159
 
1886
- ## Troubleshooting
1887
-
1888
- **Common Issues:**
160
+ ## 💬 50+ commands — slash or natural language
1889
161
 
1890
- **❌ Error: "git-lfs is not installed"**
162
+ Every slash command has a natural-language MCP equivalent — type the command, or just ask in plain English.
1891
163
 
1892
- **AgentVibes does NOT require git-lfs.** This error suggests:
164
+ | Slash command | Just say… |
165
+ |---------------|-----------|
166
+ | `/agent-vibes:switch Aria` | "Switch to Aria voice" |
167
+ | `/agent-vibes:list` | "List the available voices" |
168
+ | `/agent-vibes:personality pirate` | "Set the personality to pirate" |
169
+ | `/agent-vibes:set-language spanish` | "Set the language to Spanish" |
170
+ | `/agent-vibes:mute` | "Mute AgentVibes" |
1893
171
 
1894
- 1. **Wrong installation method** - Use npm, not git clone:
1895
- ```bash
1896
- # ✅ CORRECT - Use this:
1897
- npx agentvibes install
172
+ Full reference: [**Commands**](docs/commands.md) · enable natural language: [**MCP Setup**](docs/mcp-setup.md)
1898
173
 
1899
- # ❌ WRONG - Don't clone unless contributing:
1900
- git clone https://github.com/paulpreibisch/AgentVibes.git
1901
- ```
174
+ <div align="center">
1902
175
 
1903
- 2. **Different project** - You may be in a BMAD-METHOD or other repo that uses git-lfs
176
+ ![Configure a Claude Code voice](https://raw.githubusercontent.com/paulpreibisch/AgentVibes/master/docs/installation-screenshots/screenshot-configure.png)
1904
177
 
1905
- 3. **Global git config** - Your git may have lfs enabled globally:
1906
- ```bash
1907
- git config --global --list | grep lfs
1908
- ```
1909
-
1910
- **Solution:** Use `npx agentvibes install` - no git operations needed!
178
+ </div>
1911
179
 
1912
180
  ---
1913
181
 
1914
- **No Audio Playing?**
1915
- 1. Verify hook is installed: `ls -la .claude/hooks/session-start-tts.sh`
1916
- 2. Test: `/agent-vibes:sample Aria`
182
+ ## 👥 Built for multi-agent (BMAD)
1917
183
 
1918
- **No Audio on Windows (SSH Receiver)?**
1919
- The Windows receiver queues audio but requires a separate watcher process to play it:
1920
- 1. Check if watcher is running: `Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -like "*tts-watcher*" }`
1921
- 2. If not running: `Start-Process wscript.exe -ArgumentList "$env:USERPROFILE\.agentvibes\start-watcher.vbs" -WindowStyle Hidden`
1922
- 3. Check the log: `Get-Content "$env:USERPROFILE\.agentvibes\watcher.log" -Tail 20`
1923
- 4. [→ Full Windows setup guide](#️-windows-ssh-receiver--tts-watcher)
184
+ Running a full BMAD agent team? **Every agent gets its own distinct voice**, auto-assigned from your active provider. You don't just *see* who's talking — you *hear* it. The analyst, the architect, the dev, the QA — each one recognizable the instant they speak.
1924
185
 
1925
- **Commands Not Found?**
1926
- ```bash
1927
- npx agentvibes install --yes
1928
- ```
186
+ <div align="center">
1929
187
 
1930
- **[ View Complete Troubleshooting Guide](docs/troubleshooting.md)** - Solutions for audio issues, command problems, MCP errors, voice issues, and more
188
+ ![AgentVibes background music](https://raw.githubusercontent.com/paulpreibisch/AgentVibes/master/docs/installation-screenshots/screenshot-music.png)
1931
189
 
1932
- [↑ Back to top](#-table-of-contents)
190
+ </div>
1933
191
 
1934
192
  ---
1935
193
 
1936
- ## 🔄 Updating
1937
-
1938
- **Quick Update (From Claude Code):**
1939
- ```bash
1940
- /agent-vibes:update
1941
- ```
1942
-
1943
- **Alternative Methods:**
1944
- ```bash
1945
- # Via npx
1946
- npx agentvibes update --yes
1947
-
1948
- # Via npm (if installed globally)
1949
- npm update -g agentvibes && agentvibes update --yes
1950
- ```
1951
-
1952
- **Check Version:** `/agent-vibes:version`
1953
-
1954
- **[→ View Complete Update Guide](docs/updating.md)** - All update methods, version checking, what gets updated, and troubleshooting
194
+ ## 📋 Prerequisites
1955
195
 
1956
- [↑ Back to top](#-table-of-contents)
196
+ - **Node.js** required, for `npx`.
197
+ - **bash 5.x** — required on macOS (`brew install bash`).
198
+ - **Audio tools** — optional but recommended for effects and music.
199
+ - **Piper voices** — downloaded automatically on first use; nothing to install manually.
200
+ - **No paid API** is needed for the free providers; ElevenLabs is optional and cloud-based.
1957
201
 
1958
202
  ---
1959
203
 
1960
- ## 🗑️ Uninstalling
1961
-
1962
- **Quick Uninstall (Project Only):**
1963
- ```bash
1964
- npx agentvibes uninstall
1965
- ```
204
+ ## 📚 Documentation
1966
205
 
1967
- **Uninstall Options:**
1968
- ```bash
1969
- # Interactive uninstall (confirms before removing)
1970
- npx agentvibes uninstall
206
+ | Guide | |
207
+ |-------|--|
208
+ | [Quick Start](docs/quick-start.md) | Get voiced in minutes |
209
+ | [MCP Setup](docs/mcp-setup.md) | Natural-language control |
210
+ | [Commands](docs/commands.md) | Every slash command |
211
+ | [Providers](docs/providers.md) | Engine setup & samples |
212
+ | [Voice Library](docs/voice-library.md) | All 900+ voices |
213
+ | [Windows Setup](WINDOWS-SETUP.md) | Windows-specific steps |
214
+ | [Troubleshooting](docs/troubleshooting.md) | Common fixes |
215
+ | [Security Hardening](docs/security-hardening-guide.md) | Locking down remote setups |
216
+ | [Release Notes](RELEASE_NOTES.md) | What's new · [all releases →](https://github.com/paulpreibisch/AgentVibes/releases) |
1971
217
 
1972
- # Auto-confirm (skip confirmation prompt)
1973
- npx agentvibes uninstall --yes
218
+ ---
1974
219
 
1975
- # Also remove global configuration
1976
- npx agentvibes uninstall --global
220
+ ## About
1977
221
 
1978
- # Complete uninstall including Piper TTS
1979
- npx agentvibes uninstall --global --with-piper
1980
- ```
222
+ **AgentVibes** · v5.11.1 · Licensed under [Apache-2.0](LICENSE)
1981
223
 
1982
- **What Gets Removed:**
224
+ Built by **Paul Preibisch** — [@997Fire on X](https://x.com/997Fire) · [agentvibes.org](https://agentvibes.org) · [github.com/paulpreibisch/AgentVibes](https://github.com/paulpreibisch/AgentVibes)
1983
225
 
1984
- **Project-level (default):**
1985
- - `.claude/commands/agent-vibes/` - Slash commands
1986
- - `.claude/hooks/` - TTS scripts
1987
- - `.claude/personalities/` - Personality templates
1988
- - `.claude/output-styles/` - Output styles
1989
- - `.claude/audio/` - Audio cache
1990
- - `.claude/tts-*.txt` - TTS configuration files
1991
- - `.agentvibes/` - BMAD integration files
226
+ <div align="center">
1992
227
 
1993
- **Global (with `--global` flag):**
1994
- - `~/.claude/` - Global configuration
1995
- - `~/.agentvibes/` - Global cache
228
+ *Stop watching silent terminals. Start hearing your agents work.*
1996
229
 
1997
- **Piper TTS (with `--with-piper` flag):**
1998
- - `~/piper/` - Piper TTS installation
230
+ **If AgentVibes gives your agents a voice you enjoy, ⭐ star the repo!**
1999
231
 
2000
- **To Reinstall:**
2001
232
  ```bash
2002
233
  npx agentvibes install
2003
234
  ```
2004
235
 
2005
- **💡 Tips:**
2006
- - Default uninstall only removes project-level files
2007
- - Use `--global` if you want to completely reset AgentVibes
2008
- - Use `--with-piper` if you also want to remove the Piper TTS engine
2009
- - Run `npx agentvibes status` to check installation status
2010
-
2011
- [↑ Back to top](#-table-of-contents)
2012
-
2013
- ---
2014
-
2015
- ## ❓ Frequently Asked Questions (FAQ)
2016
-
2017
- ### Installation & Setup
2018
-
2019
- **Q: Does AgentVibes require git-lfs?**
2020
- **A:** **NO.** AgentVibes has zero git-lfs requirement. Use `npx agentvibes install` - no git operations needed.
2021
-
2022
- **Q: Do I need to clone the GitHub repository?**
2023
- **A:** **NO** (unless you're contributing code). Normal users should use `npx agentvibes install`. Repository cloning is only for developers who want to contribute to the project.
2024
-
2025
- **Q: Why is the GitHub repo so large?**
2026
- **A:** The repo includes demo files and development dependencies (node_modules). The actual npm package you download is **< 50MB** and optimized for users.
2027
-
2028
- **Q: What's the difference between npm install and git clone?**
2029
- **A:**
2030
- - `npx agentvibes install` → **For users** - Downloads pre-built package, zero git operations, instant setup
2031
- - `git clone ...` → **For developers only** - Full source code, development setup, contributing code
2032
-
2033
- **Q: I saw an error about git-lfs, is something wrong?**
2034
- **A:** You're likely:
2035
- 1. Using wrong installation method (use `npx` not `git clone`)
2036
- 2. In a different project directory that uses git-lfs
2037
- 3. Have global git config with lfs enabled
2038
-
2039
- AgentVibes itself does NOT use or require git-lfs.
2040
-
2041
- ### Features & Usage
2042
-
2043
- **Q: Does MCP consume tokens from my context window?**
2044
- **A:** **YES.** Every MCP tool schema adds to the context window. AgentVibes MCP is designed to be minimal (~1500-2000 tokens), but if you're concerned about token usage, you can use slash commands instead of MCP.
2045
-
2046
- **Q: What's the difference between using MCP vs slash commands?**
2047
- **A:**
2048
- - **MCP**: Natural language ("Switch to Aria voice"), uses ~1500-2000 context tokens
2049
- - **Slash commands**: Explicit commands (`/agent-vibes:switch Aria`), zero token overhead
2050
-
2051
- Both do the exact same thing - MCP is more convenient, slash commands are more token-efficient.
2052
-
2053
- **Q: Is AgentVibes just a bash script?**
2054
- **A:** No. AgentVibes includes:
2055
- - Multi-provider TTS abstraction (Piper TTS, macOS Say)
2056
- - Voice management system with 50+ voices
2057
- - Personality & sentiment system
2058
- - Language learning mode with bilingual playback
2059
- - Audio effects processing (reverb, EQ, compression)
2060
- - MCP server for natural language control
2061
- - BMAD integration for multi-agent voice switching
2062
- - Remote audio optimization for SSH/RDP sessions
2063
-
2064
- **Q: Can I use AgentVibes without BMAD?**
2065
- **A:** **YES.** AgentVibes works standalone. BMAD integration is optional - only activates if you install BMAD separately.
2066
-
2067
- **Q: What are the audio dependencies?**
2068
- **A:**
2069
- - **Required**: Node.js 16+, Python 3.10+ (for Piper TTS)
2070
- - **Optional**: sox (audio effects), ffmpeg (background music, padding)
2071
- - All TTS generation works without optional dependencies - they just enhance the experience
2072
-
2073
- ### Voices Tab & New Features
2074
-
2075
- **Q: How do I browse and select voices?**
2076
- **A:** Run `npx agentvibes` and press **V** to open the Voices tab. Use arrow keys to navigate, Space to preview voices, Enter to select/install, F to favorite, and / to search.
2077
-
2078
- **Q: What are friendly voice names?**
2079
- **A:** Instead of technical IDs like `en_US-ryan-high`, you can now use simple names like "Ryan" when switching voices. All 904+ voices have friendly names matched to their characteristics.
2080
-
2081
- **Q: How do I set up custom intro text?**
2082
- **A:** During installation, you'll be prompted for intro text. You can also configure it anytime with `npx agentvibes config intro-text`. Enter text like "FireBot: " and it will prefix all TTS announcements.
2083
-
2084
- **Q: Can I use my own background music?**
2085
- **A:** Yes! Run `npx agentvibes config music` and select "Change music". Provide the path to your audio file (.mp3, .wav, .ogg, or .m4a). Files are validated for security and must be under 50MB.
2086
-
2087
- **Q: What's the recommended duration for custom music?**
2088
- **A:** Between 30-90 seconds is ideal for smooth looping. The system supports up to 300 seconds (5 minutes) but will warn you if the duration is non-optimal.
2089
-
2090
- **Q: Are friendly voice names case-sensitive?**
2091
- **A:** No! You can type "ryan", "Ryan", or "RYAN" - they all work. The voice resolution is case-insensitive.
2092
-
2093
- **Q: Can I favorite voices without installing them?**
2094
- **A:** Yes! In the Voices tab, press 'F' to mark any voice as a favorite. Favorites are saved and you can filter to show only favorites later.
2095
-
2096
- **Q: Does custom music work with all TTS providers?**
2097
- **A:** Yes! Custom background music works with Piper TTS, Soprano, macOS Say, and Windows SAPI.
2098
-
2099
- **Q: Can I preview music before setting it as my background?**
2100
- **A:** Yes! When configuring custom music with `npx agentvibes config music`, you can select "Preview current" to hear your music. During installation, you can also sample all built-in tracks.
2101
-
2102
- **Q: What security measures protect custom music uploads?**
2103
- **A:** AgentVibes implements **defense-in-depth security with 7 validation layers**, tested against 180+ attack variations:
2104
-
2105
- 1. **Path Validation** - `path.resolve()` prevents traversal attacks (../, encoded, Unicode)
2106
- 2. **Home Directory Boundary** - Files must be within your home directory
2107
- 3. **File Existence Check** - Verifies file actually exists
2108
- 4. **File Type Verification** - Must be a regular file (not device, socket, etc.)
2109
- 5. **Ownership Verification** - File must be owned by you (UID check)
2110
- 6. **Format Validation** - Magic number checking ensures real audio files
2111
- 7. **Secure Storage** - Files copied to restricted directory with 600 permissions
2112
-
2113
- **Security Certification:**
2114
- - ✅ 100% attack rejection rate (107/107 tests passed)
2115
- - ✅ OWASP CWE-22 compliant (path traversal prevention)
2116
- - ✅ No information disclosure in error messages
2117
- - ✅ Production-ready and certified secure
2118
-
2119
- See full security audit: `docs/security/SECURITY-AUDIT.md`
2120
-
2121
- **Q: Has the security been independently verified?**
2122
- **A:** Yes! AgentVibes v3.6.0 includes a comprehensive security audit with 180+ attack variations tested. All path traversal, symlink, Unicode, null byte, and edge case attacks were successfully blocked (100% rejection rate). The system is OWASP CWE-22 compliant and includes a detailed security audit report at `docs/security/SECURITY-AUDIT.md`.
2123
-
2124
- **Q: What attack patterns were tested?**
2125
- **A:** The security test suite covers:
2126
- - **Path Traversal:** 100 variations (basic, URL-encoded, Unicode, null bytes, mixed)
2127
- - **Symlink Attacks:** 10 variations (sensitive files, chains, traversal targets)
2128
- - **Hard Link Attacks:** 5 variations (ownership verification)
2129
- - **Edge Cases:** 65+ variations (CRLF, whitespace, Unicode normalization, platform-specific)
2130
-
2131
- Every attack was correctly rejected with no information disclosure.
2132
-
2133
- ### Troubleshooting
2134
-
2135
- **Q: Why isn't Claude speaking?**
2136
- **A:** Common causes:
2137
- 1. Hook not installed - Run `npx agentvibes install --yes`
2138
- 2. Audio player missing - Install `sox` and `ffmpeg`
2139
- 3. TTS protocol not enabled in settings
2140
- 4. Test with `/agent-vibes:sample Aria`
2141
-
2142
- **Q: Can I use this on Windows?**
2143
- **A:** Yes! AgentVibes supports **native Windows** with PowerShell scripts (Soprano, Piper, SAPI providers). See [Windows Native Setup](WINDOWS-SETUP.md). WSL is also supported for legacy workflows - see [Windows WSL Guide](mcp-server/WINDOWS_SETUP.md).
2144
-
2145
- **Q: How do I reduce token usage?**
2146
- **A:**
2147
- 1. Use slash commands instead of MCP (zero context token overhead)
2148
- 2. Set verbosity to LOW (`/agent-vibes:verbosity low`)
2149
- 3. Disable BMAD integration if not using it
2150
-
2151
- [↑ Back to top](#-table-of-contents)
2152
-
2153
- ---
2154
-
2155
- ## ⚠️ Important Disclaimers
2156
-
2157
- **API Costs & Usage:**
2158
- - Usage is completely free with Piper TTS and Mac Say (no API costs)
2159
- - Users are solely responsible for their own API costs and usage
2160
-
2161
-
2162
- **Third-Party Services:**
2163
- - This project integrates with Piper TTS (local processing) and macOS Say (system built-in)
2164
- - We are **not affiliated with, endorsed by, or officially connected** to Anthropic, Apple, or Claude
2165
- - Piper TTS is subject to its terms of service
2166
-
2167
- **Privacy & Data:**
2168
- - **Piper TTS**: All processing happens locally on your machine, no external data transmission
2169
- - **macOS Say**: All processing happens locally using Apple's built-in speech synthesis
2170
-
2171
- **Software License:**
2172
- - Provided "as-is" under Apache 2.0 License without warranty of any kind
2173
- - See [LICENSE](LICENSE) file for full terms
2174
- - No liability for data loss, bugs, service interruptions, or any damages
2175
-
2176
- **Use at Your Own Risk:**
2177
- - This is open-source software maintained by the community
2178
- - Always test in development before production use
2179
- - Monitor your API usage and costs regularly
2180
-
2181
- [↑ Back to top](#-table-of-contents)
2182
-
2183
- ---
2184
-
2185
- ## 🙏 Credits
2186
-
2187
- **Built with ❤️ by [Paul Preibisch](https://github.com/paulpreibisch)**
2188
-
2189
- - 🐦 Twitter: [@997Fire](https://x.com/997Fire)
2190
- - 💼 LinkedIn: [paul-preibisch](https://www.linkedin.com/in/paul-preibisch/)
2191
- - 🌐 GitHub: [paulpreibisch](https://github.com/paulpreibisch)
2192
-
2193
- **Powered by:**
2194
- - [Piper TTS](https://github.com/rhasspy/piper) - Free neural voices
2195
- - [Soprano TTS](https://github.com/suno-ai/bark) - Ultra-fast neural TTS
2196
- - **Windows SAPI** - Native Windows text-to-speech
2197
- - **macOS Say** - Native macOS text-to-speech
2198
- - [Claude Code](https://claude.com/claude-code) - AI coding assistant
2199
- - Licensed under Apache 2.0
2200
-
2201
- **Contributors:**
2202
- - 🎤 [@nathanchase](https://github.com/nathanchase) - Soprano TTS Provider integration (PR #95) - Ultra-fast neural TTS with GPU acceleration
2203
-
2204
- **Special Thanks:**
2205
- - 💡 [Claude Code Hooks Mastery](https://github.com/disler/claude-code-hooks-mastery) by [@disler](https://github.com/disler) - Hooks inspiration
2206
- - 🤖 [BMAD METHOD](https://github.com/bmad-code-org/BMAD-METHOD) - Multi-agent framework with auto voice switching integration
2207
-
2208
- [↑ Back to top](#-table-of-contents)
2209
-
2210
- ---
2211
-
2212
- ## 🤝 Contributing
2213
-
2214
- If AgentVibes makes your coding more fun:
2215
- - ⭐ **Star this repo** on GitHub
2216
- - 🐦 **Tweet** and tag [@997Fire](https://x.com/997Fire)
2217
- - 🎥 **Share videos** of Claude with personality
2218
- - 💬 **Tell dev friends** about voice-powered AI
2219
-
2220
- ---
2221
-
2222
- **Ready to give Claude a voice? Install now and code with personality! 🎤✨**
2223
-
2224
- [↑ Back to top](#-table-of-contents)
2225
-
236
+ </div>