agentvibes 5.3.0 → 5.4.0

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 (219) hide show
  1. package/.agentvibes/LITE-MODE.md +236 -0
  2. package/.agentvibes/README.md +136 -0
  3. package/.agentvibes/backup/session-start-tts.sh.20251210_212814 +141 -0
  4. package/.agentvibes/backups/agents/analyst_20260204_144958.md +78 -0
  5. package/.agentvibes/backups/agents/architect_20260204_144958.md +72 -0
  6. package/.agentvibes/backups/agents/dev_20260204_144958.md +74 -0
  7. package/.agentvibes/backups/agents/pm_20260204_144958.md +72 -0
  8. package/.agentvibes/backups/agents/quick-flow-solo-dev_20260204_144958.md +64 -0
  9. package/.agentvibes/backups/agents/sm_20260204_144958.md +87 -0
  10. package/.agentvibes/backups/agents/tea_20260204_144958.md +79 -0
  11. package/.agentvibes/backups/agents/tech-writer_20260204_144958.md +82 -0
  12. package/.agentvibes/backups/agents/ux-designer_20260204_144958.md +80 -0
  13. package/.agentvibes/bmad/bmad-voices.md +69 -69
  14. package/.agentvibes/config/README-personality-defaults.md +162 -0
  15. package/.agentvibes/config/mode.txt +1 -0
  16. package/.agentvibes/config/personality-voice-defaults.default.json +21 -0
  17. package/.agentvibes/config/save-audio.txt +1 -0
  18. package/.agentvibes/config/voice-metadata.json +160 -0
  19. package/.agentvibes/config.json +24 -15
  20. package/.agentvibes/hooks/help.sh +191 -0
  21. package/.agentvibes/hooks/post-tool-use-lite.sh +111 -0
  22. package/.agentvibes/hooks/save-audio-manager.sh +162 -0
  23. package/.agentvibes/hooks/session-start-full-optimized.sh +102 -0
  24. package/.agentvibes/hooks/session-start-full.sh +142 -0
  25. package/.agentvibes/hooks/session-start-lite-v2.sh +34 -0
  26. package/.agentvibes/hooks/session-start-lite.sh +29 -0
  27. package/.agentvibes/hooks/stop-lite.sh +115 -0
  28. package/.agentvibes/hooks/switch-mode.sh +215 -0
  29. package/.agentvibes/output-styles/audio-summary.md +30 -0
  30. package/.claude/activation-instructions +54 -54
  31. package/.claude/audio/voice-samples/piper/alan.wav +0 -0
  32. package/.claude/audio/voice-samples/piper/amy.wav +0 -0
  33. package/.claude/audio/voice-samples/piper/charlotte.wav +0 -0
  34. package/.claude/audio/voice-samples/piper/joe.wav +0 -0
  35. package/.claude/audio/voice-samples/piper/john.wav +0 -0
  36. package/.claude/audio/voice-samples/piper/katherine.wav +0 -0
  37. package/.claude/audio/voice-samples/piper/kristin.wav +0 -0
  38. package/.claude/audio/voice-samples/piper/linda.wav +0 -0
  39. package/.claude/audio/voice-samples/piper/marcus.wav +0 -0
  40. package/.claude/audio/voice-samples/piper/ryan.wav +0 -0
  41. package/.claude/commands/agent-vibes/add.md +21 -21
  42. package/.claude/commands/agent-vibes/agent-vibes.md +101 -101
  43. package/.claude/commands/agent-vibes/agent.md +79 -79
  44. package/.claude/commands/agent-vibes/background-music.md +111 -111
  45. package/.claude/commands/agent-vibes/bmad.md +198 -198
  46. package/.claude/commands/agent-vibes/clean.md +18 -18
  47. package/.claude/commands/agent-vibes/cleanup.md +18 -18
  48. package/.claude/commands/agent-vibes/commands.json +145 -145
  49. package/.claude/commands/agent-vibes/effects.md +97 -97
  50. package/.claude/commands/agent-vibes/get.md +9 -9
  51. package/.claude/commands/agent-vibes/hide.md +91 -91
  52. package/.claude/commands/agent-vibes/language.md +23 -23
  53. package/.claude/commands/agent-vibes/learn.md +67 -67
  54. package/.claude/commands/agent-vibes/list.md +13 -13
  55. package/.claude/commands/agent-vibes/mute.md +37 -37
  56. package/.claude/commands/agent-vibes/preview.md +17 -17
  57. package/.claude/commands/agent-vibes/provider.md +68 -68
  58. package/.claude/commands/agent-vibes/replay-target.md +14 -14
  59. package/.claude/commands/agent-vibes/sample.md +12 -12
  60. package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -84
  61. package/.claude/commands/agent-vibes/set-pretext.md +65 -65
  62. package/.claude/commands/agent-vibes/set-speed.md +41 -41
  63. package/.claude/commands/agent-vibes/show.md +84 -84
  64. package/.claude/commands/agent-vibes/switch.md +87 -87
  65. package/.claude/commands/agent-vibes/target-voice.md +26 -26
  66. package/.claude/commands/agent-vibes/target.md +30 -30
  67. package/.claude/commands/agent-vibes/translate.md +68 -68
  68. package/.claude/commands/agent-vibes/unmute.md +45 -45
  69. package/.claude/commands/agent-vibes/whoami.md +7 -7
  70. package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
  71. package/.claude/commands/agent-vibes-rdp.md +24 -24
  72. package/.claude/config/audio-effects.cfg +4 -11
  73. package/.claude/config/audio-effects.cfg.sample +52 -52
  74. package/.claude/config/background-music-position.txt +27 -0
  75. package/.claude/config/background-music-volume.txt +1 -1
  76. package/.claude/config/background-music.cfg +1 -0
  77. package/.claude/config/background-music.txt +1 -0
  78. package/.claude/config/tts-speech-rate.txt +1 -4
  79. package/.claude/config/tts-verbosity.txt +1 -0
  80. package/.claude/docs/TERMUX_SETUP.md +408 -408
  81. package/.claude/github-star-reminder.txt +1 -1
  82. package/.claude/hooks/README-TTS-QUEUE.md +135 -135
  83. package/.claude/hooks/audio-cache-utils.sh +0 -0
  84. package/.claude/hooks/audio-processor.sh +60 -14
  85. package/.claude/hooks/background-music-manager.sh +0 -0
  86. package/.claude/hooks/bmad-party-manager.sh +225 -0
  87. package/.claude/hooks/bmad-speak-enhanced.sh +0 -0
  88. package/.claude/hooks/bmad-speak.sh +6 -13
  89. package/.claude/hooks/bmad-tts-injector.sh +0 -0
  90. package/.claude/hooks/bmad-voice-manager.sh +0 -0
  91. package/.claude/hooks/clawdbot-receiver-SECURE.sh +25 -23
  92. package/.claude/hooks/clawdbot-receiver.sh +4 -28
  93. package/.claude/hooks/clean-audio-cache.sh +0 -0
  94. package/.claude/hooks/cleanup-cache.sh +0 -0
  95. package/.claude/hooks/configure-rdp-mode.sh +0 -0
  96. package/.claude/hooks/download-extra-voices.sh +0 -0
  97. package/.claude/hooks/effects-manager.sh +0 -0
  98. package/.claude/hooks/github-star-reminder.sh +0 -0
  99. package/.claude/hooks/language-manager.sh +0 -0
  100. package/.claude/hooks/learn-manager.sh +0 -0
  101. package/.claude/hooks/macos-voice-manager.sh +0 -0
  102. package/.claude/hooks/migrate-background-music.sh +0 -0
  103. package/.claude/hooks/migrate-to-agentvibes.sh +0 -0
  104. package/.claude/hooks/optimize-background-music.sh +0 -0
  105. package/.claude/hooks/personality-manager.sh +0 -0
  106. package/.claude/hooks/piper-download-voices.sh +0 -0
  107. package/.claude/hooks/piper-installer.sh +1 -1
  108. package/.claude/hooks/piper-multispeaker-registry.sh +0 -0
  109. package/.claude/hooks/piper-voice-manager.sh +0 -0
  110. package/.claude/hooks/play-tts-enhanced.sh +0 -0
  111. package/.claude/hooks/play-tts-macos.sh +6 -12
  112. package/.claude/hooks/play-tts-piper.sh +50 -79
  113. package/.claude/hooks/play-tts-soprano.sh +9 -43
  114. package/.claude/hooks/play-tts-ssh-remote.sh +43 -215
  115. package/.claude/hooks/play-tts-termux-ssh.sh +0 -0
  116. package/.claude/hooks/play-tts.sh +31 -31
  117. package/.claude/hooks/post-response.sh +41 -0
  118. package/.claude/hooks/prepare-release.sh +0 -0
  119. package/.claude/hooks/provider-commands.sh +0 -0
  120. package/.claude/hooks/provider-manager.sh +0 -0
  121. package/.claude/hooks/replay-target-audio.sh +0 -0
  122. package/.claude/hooks/requirements.txt +6 -6
  123. package/.claude/hooks/sentiment-manager.sh +0 -0
  124. package/.claude/hooks/session-start-tts.sh +56 -39
  125. package/.claude/hooks/soprano-gradio-synth.py +139 -139
  126. package/.claude/hooks/speed-manager.sh +0 -0
  127. package/.claude/hooks/stop.sh +63 -0
  128. package/.claude/hooks/termux-installer.sh +0 -0
  129. package/.claude/hooks/translate-manager.sh +0 -0
  130. package/.claude/hooks/translator.py +237 -237
  131. package/.claude/hooks/tts-queue-worker.sh +0 -0
  132. package/.claude/hooks/tts-queue.sh +0 -0
  133. package/.claude/hooks/verbosity-manager.sh +0 -0
  134. package/.claude/hooks/voice-manager.sh +26 -4
  135. package/.claude/hooks-windows/audio-cache-utils.ps1 +119 -119
  136. package/.claude/hooks-windows/bmad-party-speak.ps1 +278 -278
  137. package/.claude/hooks-windows/bmad-speak.ps1 +264 -264
  138. package/.claude/hooks-windows/clean-audio-cache.ps1 +53 -53
  139. package/.claude/hooks-windows/effects-manager.ps1 +294 -294
  140. package/.claude/hooks-windows/language-manager.ps1 +193 -193
  141. package/.claude/hooks-windows/learn-manager.ps1 +241 -241
  142. package/.claude/hooks-windows/personality-manager.ps1 +266 -266
  143. package/.claude/hooks-windows/play-tts-soprano.ps1 +5 -5
  144. package/.claude/hooks-windows/play-tts-termux-ssh.ps1 +138 -138
  145. package/.claude/hooks-windows/play-tts-windows-piper.ps1 +164 -0
  146. package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -0
  147. package/.claude/hooks-windows/play-tts.ps1 +104 -513
  148. package/.claude/hooks-windows/provider-manager.ps1 +158 -192
  149. package/.claude/hooks-windows/session-start-tts.ps1 +55 -46
  150. package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
  151. package/.claude/hooks-windows/speed-manager.ps1 +166 -166
  152. package/.claude/hooks-windows/voice-manager-windows.ps1 +176 -260
  153. package/.claude/output-styles/agent-vibes.md +202 -202
  154. package/.claude/personalities/angry.md +14 -14
  155. package/.claude/personalities/annoying.md +14 -14
  156. package/.claude/personalities/crass.md +14 -14
  157. package/.claude/personalities/dramatic.md +14 -14
  158. package/.claude/personalities/dry-humor.md +50 -50
  159. package/.claude/personalities/flirty.md +20 -20
  160. package/.claude/personalities/funny.md +14 -14
  161. package/.claude/personalities/grandpa.md +32 -32
  162. package/.claude/personalities/millennial.md +14 -14
  163. package/.claude/personalities/moody.md +14 -14
  164. package/.claude/personalities/normal.md +16 -16
  165. package/.claude/personalities/pirate.md +14 -14
  166. package/.claude/personalities/poetic.md +14 -14
  167. package/.claude/personalities/professional.md +14 -14
  168. package/.claude/personalities/rapper.md +55 -55
  169. package/.claude/personalities/robot.md +14 -14
  170. package/.claude/personalities/sarcastic.md +38 -38
  171. package/.claude/personalities/sassy.md +14 -14
  172. package/.claude/personalities/surfer-dude.md +14 -14
  173. package/.claude/personalities/zen.md +14 -14
  174. package/.claude/piper-voices-dir.txt +1 -0
  175. package/.claude/settings.json +25 -15
  176. package/.claude/verbosity.txt +1 -1
  177. package/.clawdbot/README.md +105 -105
  178. package/.clawdbot/skill/SKILL.md +149 -145
  179. package/.mcp.json +30 -11
  180. package/CLAUDE.md +170 -215
  181. package/README.md +206 -525
  182. package/RELEASE_NOTES.md +1132 -1976
  183. package/WINDOWS-SETUP.md +208 -208
  184. package/bin/agent-vibes +0 -0
  185. package/bin/agentvibes-voice-browser.js +64 -1289
  186. package/bin/agentvibes.js +0 -0
  187. package/bin/ensure-soprano-running.sh +43 -0
  188. package/bin/mcp-server.js +121 -121
  189. package/bin/mcp-server.sh +0 -0
  190. package/bin/test-bmad-pr +78 -78
  191. package/mcp-server/QUICK_START.md +203 -203
  192. package/mcp-server/README.md +345 -345
  193. package/mcp-server/WINDOWS_SETUP.md +260 -260
  194. package/mcp-server/docs/troubleshooting-audio.md +313 -313
  195. package/mcp-server/examples/claude_desktop_config.json +11 -11
  196. package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
  197. package/mcp-server/examples/custom_instructions.md +169 -169
  198. package/mcp-server/install-deps.js +130 -130
  199. package/mcp-server/pyproject.toml +52 -52
  200. package/mcp-server/requirements.txt +2 -2
  201. package/mcp-server/server.py +1451 -1578
  202. package/mcp-server/test_server.py +395 -395
  203. package/package.json +1 -3
  204. package/setup-windows.ps1 +815 -815
  205. package/src/installer.js +42 -5
  206. package/templates/agentvibes-receiver.sh +158 -483
  207. package/templates/audio/welcome-music.mp3 +0 -0
  208. package/.agentvibes/bmad-voice-map.json +0 -104
  209. package/.agentvibes/copilot-sessions.log +0 -4
  210. package/.claude/config/audio-effects-bmad.cfg +0 -50
  211. package/.claude/config/background-music-enabled.txt +0 -1
  212. package/.claude/config/intro-text.txt +0 -1
  213. package/.claude/config/personality.txt +0 -1
  214. package/.claude/config/piper-speech-rate.txt +0 -4
  215. package/.claude/config/piper-target-speech-rate.txt +0 -1
  216. package/.claude/config/reverb-level.txt +0 -1
  217. package/.claude/config/tts-target-speech-rate.txt +0 -1
  218. package/voice-assignments.json +0 -8245
  219. /package/{.claude → .agentvibes}/config/agentvibes.json +0 -0
@@ -1,69 +1,69 @@
1
- ---
2
- plugin: bmad-voices
3
- version: 2.0.0
4
- enabled: true
5
- description: Provider-aware voice mappings for BMAD agents
6
- ---
7
-
8
- # BMAD Voice Plugin
9
-
10
- This plugin automatically assigns voices to BMAD agents based on their role and active TTS provider.
11
-
12
- ## Agent Voice Mappings (Provider-Aware)
13
-
14
- | Agent ID | Agent Name | Intro | Piper TTS Voice | Piper Voice | Personality |
15
- |----------|------------|-------|------------------|-------------|-------------|
16
- | pm | John (Product Manager) | John, Product Manager here | Matthew Schmitz | en_US-john-medium | professional |
17
- | dev | Amelia (Developer) | Amelia, Developer here | Aria | en_US-amy-medium | normal |
18
- | analyst | Mary (Business Analyst) | Mary, Business Analyst here | Jessica Anne Bogart | en_US-kristin-medium | normal |
19
- | architect | Winston (Architect) | Winston, Architect here | Michael | en_GB-alan-medium | normal |
20
- | sm | Bob (Scrum Master) | Bob, Scrum Master here | Matthew Schmitz | en_US-joe-medium | professional |
21
- | tea | Murat (Test Architect) | Murat, Test Architect here | Michael | en_US-kusal-medium | normal |
22
- | tech-writer | Paige (Technical Writer) | Paige, Technical Writer here | Aria | en_US-lessac-medium | normal |
23
- | ux-designer | Sally (UX Designer) | Sally, UX Designer here | Jessica Anne Bogart | en_US-lessac-high | normal |
24
- | frame-expert | Saif (Visual Designer) | Saif, Visual Designer here | Matthew Schmitz | en_GB-alan-medium | normal |
25
- | bmad-master | BMad Master | BMad Master here | Michael | en_US-libritts-high | zen |
26
- | quick-flow-solo-dev | Barry (Quick Flow Solo Dev) | Barry, Quick Flow Solo Dev here | Matthew Schmitz | en_US-john-medium | professional |
27
-
28
- ## How It Works
29
-
30
- The voice manager automatically selects the appropriate voice based on your active TTS provider:
31
- - **Piper TTS active**: Uses voices from the "Piper TTS Voice" column
32
- - **Piper active**: Uses voices from the "Piper Voice" column
33
-
34
- This ensures BMAD agents work seamlessly regardless of which provider you're using.
35
-
36
- ### Supports Both Display Names and Agent IDs
37
-
38
- The `bmad-speak.sh` script accepts both formats:
39
-
40
- **Party Mode** (multiple agents, uses display names):
41
- ```bash
42
- .claude/hooks/bmad-speak.sh "Winston" "I recommend microservices for scalability"
43
- ```
44
-
45
- **Individual Agents** (single agent sessions, uses agent IDs):
46
- ```bash
47
- .claude/hooks/bmad-speak.sh "architect" "I recommend microservices for scalability"
48
- ```
49
-
50
- Both formats map to the same voice configuration based on the agent ID in the table above. This allows BMAD to use customizable display names while maintaining stable voice mappings.
51
-
52
- ## How to Edit
53
-
54
- Simply edit the table above to change voice mappings. The format is:
55
- - **Agent ID**: Must match BMAD's `agent.id` field (pm, dev, qa, etc.)
56
- - **Agent Name**: Display name (for reference only)
57
- - **Intro**: Text spoken before agent's message (e.g., "John, Product Manager here"). Leave empty to disable.
58
- - **Piper TTS Voice**: Voice name for Piper TTS provider
59
- - **Piper Voice**: Voice model name for Piper provider
60
- - **Personality**: Optional personality to apply (or "normal" for none)
61
-
62
- ## Commands
63
-
64
- - `/agent-vibes:bmad enable` - Enable BMAD voice plugin
65
- - `/agent-vibes:bmad disable` - Disable BMAD voice plugin
66
- - `/agent-vibes:bmad status` - Show plugin status
67
- - `/agent-vibes:bmad edit` - Open this file for editing
68
- - `/agent-vibes:bmad list` - List all agent voice mappings
69
- - `/agent-vibes:bmad set <agent-id> <piper-voice> <piper-voice> [personality]` - Set voices for specific agent
1
+ ---
2
+ plugin: bmad-voices
3
+ version: 2.0.0
4
+ enabled: true
5
+ description: Provider-aware voice mappings for BMAD agents
6
+ ---
7
+
8
+ # BMAD Voice Plugin
9
+
10
+ This plugin automatically assigns voices to BMAD agents based on their role and active TTS provider.
11
+
12
+ ## Agent Voice Mappings (Provider-Aware)
13
+
14
+ | Agent ID | Agent Name | Intro | Piper TTS Voice | Piper Voice | Personality |
15
+ |----------|------------|-------|------------------|-------------|-------------|
16
+ | pm | John (Product Manager) | John, Product Manager here | Matthew Schmitz | en_US-john-medium | professional |
17
+ | dev | Amelia (Developer) | Amelia, Developer here | Aria | en_US-amy-medium | normal |
18
+ | analyst | Mary (Business Analyst) | Mary, Business Analyst here | Jessica Anne Bogart | en_US-kristin-medium | normal |
19
+ | architect | Winston (Architect) | Winston, Architect here | Michael | en_GB-alan-medium | normal |
20
+ | sm | Bob (Scrum Master) | Bob, Scrum Master here | Matthew Schmitz | en_US-joe-medium | professional |
21
+ | tea | Murat (Test Architect) | Murat, Test Architect here | Michael | en_US-kusal-medium | normal |
22
+ | tech-writer | Paige (Technical Writer) | Paige, Technical Writer here | Aria | en_US-lessac-medium | normal |
23
+ | ux-designer | Sally (UX Designer) | Sally, UX Designer here | Jessica Anne Bogart | en_US-lessac-high | normal |
24
+ | frame-expert | Saif (Visual Designer) | Saif, Visual Designer here | Matthew Schmitz | en_GB-alan-medium | normal |
25
+ | bmad-master | BMad Master | BMad Master here | Michael | en_US-libritts-high | zen |
26
+ | quick-flow-solo-dev | Barry (Quick Flow Solo Dev) | Barry, Quick Flow Solo Dev here | Matthew Schmitz | en_US-john-medium | professional |
27
+
28
+ ## How It Works
29
+
30
+ The voice manager automatically selects the appropriate voice based on your active TTS provider:
31
+ - **Piper TTS active**: Uses voices from the "Piper TTS Voice" column
32
+ - **Piper active**: Uses voices from the "Piper Voice" column
33
+
34
+ This ensures BMAD agents work seamlessly regardless of which provider you're using.
35
+
36
+ ### Supports Both Display Names and Agent IDs
37
+
38
+ The `bmad-speak.sh` script accepts both formats:
39
+
40
+ **Party Mode** (multiple agents, uses display names):
41
+ ```bash
42
+ .claude/hooks/bmad-speak.sh "Winston" "I recommend microservices for scalability"
43
+ ```
44
+
45
+ **Individual Agents** (single agent sessions, uses agent IDs):
46
+ ```bash
47
+ .claude/hooks/bmad-speak.sh "architect" "I recommend microservices for scalability"
48
+ ```
49
+
50
+ Both formats map to the same voice configuration based on the agent ID in the table above. This allows BMAD to use customizable display names while maintaining stable voice mappings.
51
+
52
+ ## How to Edit
53
+
54
+ Simply edit the table above to change voice mappings. The format is:
55
+ - **Agent ID**: Must match BMAD's `agent.id` field (pm, dev, qa, etc.)
56
+ - **Agent Name**: Display name (for reference only)
57
+ - **Intro**: Text spoken before agent's message (e.g., "John, Product Manager here"). Leave empty to disable.
58
+ - **Piper TTS Voice**: Voice name for Piper TTS provider
59
+ - **Piper Voice**: Voice model name for Piper provider
60
+ - **Personality**: Optional personality to apply (or "normal" for none)
61
+
62
+ ## Commands
63
+
64
+ - `/agent-vibes:bmad enable` - Enable BMAD voice plugin
65
+ - `/agent-vibes:bmad disable` - Disable BMAD voice plugin
66
+ - `/agent-vibes:bmad status` - Show plugin status
67
+ - `/agent-vibes:bmad edit` - Open this file for editing
68
+ - `/agent-vibes:bmad list` - List all agent voice mappings
69
+ - `/agent-vibes:bmad set <agent-id> <piper-voice> <piper-voice> [personality]` - Set voices for specific agent
@@ -0,0 +1,162 @@
1
+ # Personality Voice Defaults
2
+
3
+ ## What is this?
4
+
5
+ This configuration file (`personality-voice-defaults.json`) maps each AgentVibes personality to a specific Piper TTS voice that sounds best for that character.
6
+
7
+ ## How it works for new users
8
+
9
+ When someone installs AgentVibes with Piper TTS:
10
+
11
+ ### 1. Installation Process
12
+
13
+ ```bash
14
+ # User installs Piper
15
+ .claude/hooks/piper-installer.sh
16
+ ```
17
+
18
+ **What happens:**
19
+ - Piper TTS binary gets installed via `pipx`
20
+ - User is asked: "Download voice models now?"
21
+ - If yes, runs `piper-download-voices.sh` which downloads:
22
+ - **16Speakers** (~25MB) - Multi-voice model with 16 speakers
23
+ - **en_GB-alan-medium** (~25MB) - British male voice
24
+ - **en_GB-semaine-medium** (~25MB) - British female voice
25
+ - Plus a few other standard voices
26
+ - Default personality mappings are installed automatically
27
+
28
+ ### 2. What gets downloaded
29
+
30
+ **Required voices for personality defaults:**
31
+ - ✅ **16Speakers** (1 file) - Provides 16 different speakers:
32
+ - #0: Cori Samuel (female) - Used for: flirty, dramatic, dry_humor, sassy
33
+ - #2: Kristin Hughes (female) - Used for: poetic, sarcastic
34
+ - #4: Mike Pelton (male) - Used for: grandpa
35
+ - #8: Rose Ibex (female) - Used for: moody
36
+ - #13: Jennifer Dorr (female) - Used for: millennial
37
+ - #14: Emily Cripps (female) - Used for: zen
38
+ - #15: Martin Clifton (male) - Used for: pirate
39
+
40
+ - ✅ **en_GB-alan-medium** - British male voice
41
+ - Used for: angry, professional, surfer_dude
42
+
43
+ - ✅ **en_GB-semaine-medium** - British female voice
44
+ - Used for: funny
45
+
46
+ **Total download size: ~75MB** (3 voice models)
47
+
48
+ ### 3. First time using a personality
49
+
50
+ ```bash
51
+ # User switches personality
52
+ /agent-vibes:personality flirty
53
+ ```
54
+
55
+ **What happens:**
56
+ 1. AgentVibes reads `personality-voice-defaults.json`
57
+ 2. Finds that "flirty" → "16Speakers#0" (Cori Samuel)
58
+ 3. Checks if 16Speakers is downloaded
59
+ 4. **If not downloaded:**
60
+ - Prompts: "Voice model not found: 16Speakers. Download? [y/N]"
61
+ - User says yes → Downloads automatically from HuggingFace
62
+ - Only happens once per voice model
63
+ 5. **If already downloaded:**
64
+ - Switches to the voice immediately
65
+ - Plays personality-appropriate TTS
66
+
67
+ ### 4. Graceful fallbacks
68
+
69
+ If a user:
70
+ - Skips voice downloads during install → On-demand download when needed
71
+ - Deletes the defaults file → Falls back to basic `en_US-lessac-medium`
72
+ - Uses a personality without a mapping → Uses default voice
73
+
74
+ ## For power users
75
+
76
+ ### Customizing defaults
77
+
78
+ Edit `.claude/personality-voice-defaults.json`:
79
+
80
+ ```json
81
+ {
82
+ "mappings": {
83
+ "flirty": {
84
+ "voice": "16Speakers#0",
85
+ "rating": 10,
86
+ "display_name": "Cori Samuel"
87
+ }
88
+ }
89
+ }
90
+ ```
91
+
92
+ Change the `voice` field to any Piper voice name.
93
+
94
+ ### Using the voice tester
95
+
96
+ 1. Run the voice tester (in `voice-tester/` folder)
97
+ 2. Rate voices for each personality
98
+ 3. Export ratings as JSON
99
+ 4. Import with: `./import-voice-ratings.sh my-ratings.json`
100
+
101
+ ### Available voices
102
+
103
+ List all Piper voices: https://huggingface.co/rhasspy/piper-voices
104
+
105
+ Any voice can be used - AgentVibes will download it on first use.
106
+
107
+ ## FAQ
108
+
109
+ **Q: Do new users need to download all voices upfront?**
110
+ A: No! Only 3 files (~75MB total) are recommended. Others download on-demand.
111
+
112
+ **Q: What if a user doesn't download any voices?**
113
+ A: First personality switch will prompt to download the needed voice.
114
+
115
+ **Q: Can users change the defaults?**
116
+ A: Yes! Edit the JSON file or use the voice tester to rate and export new preferences.
117
+
118
+ **Q: What if 16Speakers isn't available?**
119
+ A: It's hosted on AgentVibes HuggingFace and included in the download script.
120
+
121
+ **Q: What happens on slow connections?**
122
+ A: Each voice is ~25MB. Downloads are one-time only and optional.
123
+
124
+ ## Architecture
125
+
126
+ ```
127
+ Installation Flow:
128
+ 1. User runs piper-installer.sh
129
+
130
+ 2. Piper binary installed via pipx
131
+
132
+ 3. Ask: "Download voices?" → Yes
133
+
134
+ 4. piper-download-voices.sh runs
135
+ - Downloads 16Speakers (custom, HuggingFace)
136
+ - Downloads en_GB-alan-medium (official Piper)
137
+ - Downloads en_GB-semaine-medium (official Piper)
138
+ - Downloads other optional voices
139
+
140
+ 5. install-personality-defaults.sh runs
141
+ - Copies personality-voice-defaults.json to user config
142
+
143
+ 6. Ready! Personalities now auto-select best voices
144
+
145
+ Runtime Flow:
146
+ User: /agent-vibes:personality flirty
147
+
148
+ personality-manager.sh checks:
149
+ 1. User defaults (.claude/personality-voice-defaults.json)
150
+ 2. Personality file (piper_voice: field)
151
+ 3. Global default (en_US-lessac-medium)
152
+
153
+ Found: 16Speakers#0
154
+
155
+ Check if downloaded → Yes
156
+
157
+ Switch to voice & play TTS!
158
+ ```
159
+
160
+ ## Credits
161
+
162
+ Voice selections curated by Paul Preibisch based on extensive testing with the AgentVibes voice tester (16 personalities × 19 voices).
@@ -0,0 +1 @@
1
+ full
@@ -0,0 +1,21 @@
1
+ {
2
+ "version": "1.0",
3
+ "description": "Default Piper voice assignments for each personality",
4
+ "mappings": {
5
+ "angry": {"voice": "en_GB-alan-medium", "rating": 10, "display_name": "English GB - Alan"},
6
+ "dramatic": {"voice": "16Speakers#0", "rating": 10, "display_name": "Cori Samuel"},
7
+ "dry_humor": {"voice": "16Speakers#0", "rating": 10, "display_name": "Cori Samuel"},
8
+ "flirty": {"voice": "16Speakers#0", "rating": 10, "display_name": "Cori Samuel"},
9
+ "funny": {"voice": "en_GB-semaine-medium", "rating": 10, "display_name": "English GB - Semaine"},
10
+ "grandpa": {"voice": "16Speakers#4", "rating": 10, "display_name": "Mike Pelton"},
11
+ "millennial": {"voice": "16Speakers#13", "rating": 10, "display_name": "Jennifer Dorr"},
12
+ "moody": {"voice": "16Speakers#8", "rating": 10, "display_name": "Rose Ibex"},
13
+ "pirate": {"voice": "16Speakers#15", "rating": 10, "display_name": "Martin Clifton"},
14
+ "poetic": {"voice": "16Speakers#2", "rating": 10, "display_name": "Kristin Hughes"},
15
+ "professional": {"voice": "en_GB-alan-medium", "rating": 10, "display_name": "English GB - Alan"},
16
+ "sarcastic": {"voice": "16Speakers#2", "rating": 10, "display_name": "Kristin Hughes"},
17
+ "sassy": {"voice": "16Speakers#0", "rating": 10, "display_name": "Cori Samuel"},
18
+ "surfer_dude": {"voice": "en_GB-alan-medium", "rating": 10, "display_name": "English GB - Alan"},
19
+ "zen": {"voice": "16Speakers#14", "rating": 10, "display_name": "Emily Cripps"}
20
+ }
21
+ }
@@ -0,0 +1 @@
1
+ true
@@ -0,0 +1,160 @@
1
+ {
2
+ "version": "1.0.0",
3
+ "provider": "piper",
4
+ "voices": {
5
+ "ryan": {
6
+ "id": "en_US-ryan-high",
7
+ "displayName": "Ryan",
8
+ "gender": "male",
9
+ "accent": "American",
10
+ "region": "US",
11
+ "quality": "high",
12
+ "sampleRate": "22050Hz",
13
+ "personality": ["professional", "clear", "confident", "authoritative"],
14
+ "recommendedFor": ["business", "technical", "presentations", "narrator"],
15
+ "description": "Professional American male voice with clear articulation",
16
+ "sampleFile": "ryan.wav"
17
+ },
18
+ "joe": {
19
+ "id": "en_US-joe-medium",
20
+ "displayName": "Joe",
21
+ "gender": "male",
22
+ "accent": "American",
23
+ "region": "US",
24
+ "quality": "medium",
25
+ "sampleRate": "22050Hz",
26
+ "personality": ["warm", "friendly", "casual", "approachable"],
27
+ "recommendedFor": ["casual", "friendly", "conversational", "assistant"],
28
+ "description": "Warm and friendly American male voice",
29
+ "sampleFile": "joe.wav"
30
+ },
31
+ "alan": {
32
+ "id": "en_GB-alan-medium",
33
+ "displayName": "Alan",
34
+ "gender": "male",
35
+ "accent": "British",
36
+ "region": "GB",
37
+ "quality": "medium",
38
+ "sampleRate": "22050Hz",
39
+ "personality": ["refined", "sophisticated", "intelligent", "articulate"],
40
+ "recommendedFor": ["formal", "educational", "architect", "expert"],
41
+ "description": "Refined British male voice with sophisticated tone",
42
+ "sampleFile": "alan.wav"
43
+ },
44
+ "marcus": {
45
+ "id": "en_US-kusal-medium",
46
+ "displayName": "Marcus",
47
+ "gender": "male",
48
+ "accent": "American",
49
+ "region": "US",
50
+ "quality": "medium",
51
+ "sampleRate": "22050Hz",
52
+ "personality": ["steady", "reliable", "focused", "analytical"],
53
+ "recommendedFor": ["testing", "QA", "technical", "documentation"],
54
+ "description": "Steady and reliable American male voice",
55
+ "sampleFile": "marcus.wav"
56
+ },
57
+ "john": {
58
+ "id": "en_US-john-medium",
59
+ "displayName": "John",
60
+ "gender": "male",
61
+ "accent": "American",
62
+ "region": "US",
63
+ "quality": "medium",
64
+ "sampleRate": "22050Hz",
65
+ "personality": ["energetic", "enthusiastic", "engaging", "dynamic"],
66
+ "recommendedFor": ["product-management", "leadership", "motivational", "presentations"],
67
+ "description": "Energetic and enthusiastic American male voice",
68
+ "sampleFile": "john.wav"
69
+ },
70
+ "katherine": {
71
+ "id": "en_US-lessac-high",
72
+ "displayName": "Katherine",
73
+ "gender": "female",
74
+ "accent": "American",
75
+ "region": "US",
76
+ "quality": "high",
77
+ "sampleRate": "22050Hz",
78
+ "personality": ["professional", "articulate", "polished", "executive"],
79
+ "recommendedFor": ["business", "executive", "formal", "professional"],
80
+ "description": "Professional American female voice with executive presence",
81
+ "sampleFile": "katherine.wav"
82
+ },
83
+ "linda": {
84
+ "id": "en_US-ljspeech-high",
85
+ "displayName": "Linda",
86
+ "gender": "female",
87
+ "accent": "American",
88
+ "region": "US",
89
+ "quality": "high",
90
+ "sampleRate": "22050Hz",
91
+ "personality": ["clear", "neutral", "precise", "informative"],
92
+ "recommendedFor": ["narrator", "audiobooks", "educational", "news"],
93
+ "description": "Clear and precise American female narrator voice",
94
+ "sampleFile": "linda.wav"
95
+ },
96
+ "amy": {
97
+ "id": "en_US-amy-medium",
98
+ "displayName": "Amy",
99
+ "gender": "female",
100
+ "accent": "American",
101
+ "region": "US",
102
+ "quality": "medium",
103
+ "sampleRate": "22050Hz",
104
+ "personality": ["friendly", "approachable", "helpful", "cheerful"],
105
+ "recommendedFor": ["assistant", "notifications", "casual", "friendly"],
106
+ "description": "Friendly and approachable American female voice",
107
+ "sampleFile": "amy.wav"
108
+ },
109
+ "kristin": {
110
+ "id": "en_US-kristin-medium",
111
+ "displayName": "Kristin",
112
+ "gender": "female",
113
+ "accent": "American",
114
+ "region": "US",
115
+ "quality": "medium",
116
+ "sampleRate": "22050Hz",
117
+ "personality": ["analytical", "thoughtful", "intelligent", "insightful"],
118
+ "recommendedFor": ["analyst", "research", "strategy", "consulting"],
119
+ "description": "Thoughtful and analytical American female voice",
120
+ "sampleFile": "kristin.wav"
121
+ },
122
+ "charlotte": {
123
+ "id": "en_GB-southern_english_female-low",
124
+ "displayName": "Charlotte",
125
+ "gender": "female",
126
+ "accent": "British",
127
+ "region": "GB",
128
+ "quality": "low",
129
+ "sampleRate": "16000Hz",
130
+ "personality": ["elegant", "sophisticated", "cultured", "refined"],
131
+ "recommendedFor": ["formal", "sophisticated", "cultural", "narrator"],
132
+ "description": "Elegant British female voice with southern English accent",
133
+ "sampleFile": "charlotte.wav"
134
+ }
135
+ },
136
+ "defaultVoice": "ryan",
137
+ "installerVoices": [
138
+ "ryan",
139
+ "joe",
140
+ "alan",
141
+ "marcus",
142
+ "john",
143
+ "katherine",
144
+ "linda",
145
+ "amy",
146
+ "kristin",
147
+ "charlotte"
148
+ ],
149
+ "bmadAgentDefaults": {
150
+ "architect": "alan",
151
+ "analyst": "kristin",
152
+ "dev": "joe",
153
+ "pm": "john",
154
+ "sm": "amy",
155
+ "tea": "marcus",
156
+ "tech-writer": "linda",
157
+ "ux-designer": "charlotte",
158
+ "bmad-master": "ryan"
159
+ }
160
+ }
@@ -1,23 +1,32 @@
1
1
  {
2
+ "defaultVoice": "libritts-speaker-925",
3
+ "ttsProvider": "piper",
4
+ "provider": "soprano",
2
5
  "backgroundMusic": {
3
- "track": "agent_vibes_chillwave_v2_loop.mp3",
6
+ "enabled": false,
7
+ "track": "agent_vibes_japanese_city_pop_v1_loop.mp3",
8
+ "volume": 20
9
+ },
10
+ "music": {
4
11
  "enabled": true,
5
- "volume": 10
12
+ "track": "agentvibes_nature_sounds_rain.mp3"
6
13
  },
7
- "voice": "en_US-libritts-high::Derek-6",
8
- "pretext": "AgentVibes here",
9
- "provider": "piper",
14
+ "musicFavorites": [
15
+ "agentvibes_blues_smooth_guitar.mp3",
16
+ "agentvibes_lofi_beats_coding.mp3",
17
+ "agentvibes_nature_sounds_rain.mp3",
18
+ "agent_vibes_ganawa_ambient_v2_loop.mp3"
19
+ ],
10
20
  "effects": {
11
- "reverbPreset": "light"
21
+ "reverb": true,
22
+ "reverbAmount": 0.6,
23
+ "pitch": 2,
24
+ "reverbPreset": "medium"
12
25
  },
26
+ "verbosity": "high",
27
+ "personality": "grandpa",
28
+ "voice": "en_US-ljspeech-high",
29
+ "pretext": "Agent Vibes Here",
13
30
  "setupCompleted": true,
14
- "thumbsUp": [
15
- "en_US-libritts-high::Adam-10",
16
- "en_US-libritts-high::Leo-7"
17
- ],
18
- "favorites": [
19
- "en_US-libritts-high::Adam-10",
20
- "en_US-libritts-high::Leo-7"
21
- ],
22
- "thumbsDown": []
31
+ "ttsEngine": "piper"
23
32
  }