agentvibes 2.0.8 → 2.0.10

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 (143) hide show
  1. package/.claude/github-star-reminder.txt +1 -0
  2. package/.claude/hooks/check-output-style.sh +2 -2
  3. package/.claude/hooks/github-star-reminder.sh +94 -0
  4. package/.claude/hooks/personality-manager.sh +2 -2
  5. package/.claude/hooks/piper-installer.sh +144 -0
  6. package/.claude/hooks/play-tts-elevenlabs.sh +30 -3
  7. package/.claude/hooks/play-tts.sh +3 -0
  8. package/.claude/hooks/provider-commands.sh +30 -1
  9. package/.claude/hooks/voice-manager.sh +2 -2
  10. package/README.md +2 -2
  11. package/RELEASE_NOTES.md +236 -0
  12. package/package.json +1 -1
  13. package/src/installer.js +59 -33
  14. package/test/helpers/test-helper.bash +4 -2
  15. package/test/unit/personality-manager.bats +16 -4
  16. package/test/unit/personality-voice-mapping.bats +15 -6
  17. package/test/unit/play-tts.bats +0 -9
  18. package/agentvibes.org/.claude/commands/agent-vibes/add.md +0 -21
  19. package/agentvibes.org/.claude/commands/agent-vibes/agent-vibes.md +0 -68
  20. package/agentvibes.org/.claude/commands/agent-vibes/commands.json +0 -53
  21. package/agentvibes.org/.claude/commands/agent-vibes/get.md +0 -9
  22. package/agentvibes.org/.claude/commands/agent-vibes/list.md +0 -13
  23. package/agentvibes.org/.claude/commands/agent-vibes/personality.md +0 -79
  24. package/agentvibes.org/.claude/commands/agent-vibes/preview.md +0 -16
  25. package/agentvibes.org/.claude/commands/agent-vibes/provider.md +0 -54
  26. package/agentvibes.org/.claude/commands/agent-vibes/replay.md +0 -19
  27. package/agentvibes.org/.claude/commands/agent-vibes/sample.md +0 -12
  28. package/agentvibes.org/.claude/commands/agent-vibes/sentiment.md +0 -52
  29. package/agentvibes.org/.claude/commands/agent-vibes/set-language.md +0 -47
  30. package/agentvibes.org/.claude/commands/agent-vibes/set-pretext.md +0 -65
  31. package/agentvibes.org/.claude/commands/agent-vibes/switch.md +0 -53
  32. package/agentvibes.org/.claude/commands/agent-vibes/update.md +0 -20
  33. package/agentvibes.org/.claude/commands/agent-vibes/version.md +0 -10
  34. package/agentvibes.org/.claude/commands/agent-vibes/whoami.md +0 -7
  35. package/agentvibes.org/.claude/hooks/bmad-voice-manager.sh +0 -278
  36. package/agentvibes.org/.claude/hooks/language-manager.sh +0 -190
  37. package/agentvibes.org/.claude/hooks/personality-manager.sh +0 -279
  38. package/agentvibes.org/.claude/hooks/piper-download-voices.sh +0 -133
  39. package/agentvibes.org/.claude/hooks/piper-voice-manager.sh +0 -227
  40. package/agentvibes.org/.claude/hooks/play-tts-elevenlabs.sh +0 -201
  41. package/agentvibes.org/.claude/hooks/play-tts-piper.sh +0 -175
  42. package/agentvibes.org/.claude/hooks/play-tts.sh +0 -138
  43. package/agentvibes.org/.claude/hooks/provider-commands.sh +0 -374
  44. package/agentvibes.org/.claude/hooks/provider-manager.sh +0 -196
  45. package/agentvibes.org/.claude/hooks/sentiment-manager.sh +0 -163
  46. package/agentvibes.org/.claude/hooks/voice-manager.sh +0 -349
  47. package/agentvibes.org/.claude/hooks/voices-config.sh +0 -33
  48. package/agentvibes.org/.claude/journal/2025-10-07.html +0 -373
  49. package/agentvibes.org/.claude/journal/index.html +0 -91
  50. package/agentvibes.org/.claude/output-styles/agent-vibes.md +0 -203
  51. package/agentvibes.org/.claude/personalities/angry.md +0 -16
  52. package/agentvibes.org/.claude/personalities/annoying.md +0 -16
  53. package/agentvibes.org/.claude/personalities/crass.md +0 -16
  54. package/agentvibes.org/.claude/personalities/dramatic.md +0 -16
  55. package/agentvibes.org/.claude/personalities/dry-humor.md +0 -52
  56. package/agentvibes.org/.claude/personalities/flirty.md +0 -22
  57. package/agentvibes.org/.claude/personalities/funny.md +0 -16
  58. package/agentvibes.org/.claude/personalities/grandpa.md +0 -34
  59. package/agentvibes.org/.claude/personalities/millennial.md +0 -16
  60. package/agentvibes.org/.claude/personalities/moody.md +0 -16
  61. package/agentvibes.org/.claude/personalities/normal.md +0 -18
  62. package/agentvibes.org/.claude/personalities/pirate.md +0 -16
  63. package/agentvibes.org/.claude/personalities/poetic.md +0 -16
  64. package/agentvibes.org/.claude/personalities/professional.md +0 -16
  65. package/agentvibes.org/.claude/personalities/robot.md +0 -16
  66. package/agentvibes.org/.claude/personalities/sarcastic.md +0 -40
  67. package/agentvibes.org/.claude/personalities/sassy.md +0 -16
  68. package/agentvibes.org/.claude/personalities/surfer-dude.md +0 -16
  69. package/agentvibes.org/.claude/personalities/zen.md +0 -16
  70. package/agentvibes.org/.mcp-minimal.json +0 -60
  71. package/agentvibes.org/CHANGELOG.md +0 -56
  72. package/agentvibes.org/README.md +0 -93
  73. package/agentvibes.org/app/(auth)/layout.tsx +0 -15
  74. package/agentvibes.org/app/(auth)/reset-password/page.tsx +0 -45
  75. package/agentvibes.org/app/(auth)/signin/page.tsx +0 -82
  76. package/agentvibes.org/app/(auth)/signup/page.tsx +0 -104
  77. package/agentvibes.org/app/(default)/layout.tsx +0 -31
  78. package/agentvibes.org/app/(default)/page.tsx +0 -20
  79. package/agentvibes.org/app/api/hello/route.ts +0 -3
  80. package/agentvibes.org/app/css/additional-styles/theme.css +0 -82
  81. package/agentvibes.org/app/css/additional-styles/utility-patterns.css +0 -55
  82. package/agentvibes.org/app/css/style.css +0 -100
  83. package/agentvibes.org/app/layout.tsx +0 -63
  84. package/agentvibes.org/components/cta.tsx +0 -58
  85. package/agentvibes.org/components/features.tsx +0 -256
  86. package/agentvibes.org/components/hero-home.tsx +0 -133
  87. package/agentvibes.org/components/modal-video.tsx +0 -137
  88. package/agentvibes.org/components/page-illustration.tsx +0 -55
  89. package/agentvibes.org/components/spotlight.tsx +0 -77
  90. package/agentvibes.org/components/testimonials.tsx +0 -282
  91. package/agentvibes.org/components/ui/footer.tsx +0 -82
  92. package/agentvibes.org/components/ui/header.tsx +0 -53
  93. package/agentvibes.org/components/ui/logo.tsx +0 -10
  94. package/agentvibes.org/components/workflows.tsx +0 -176
  95. package/agentvibes.org/next.config.js +0 -4
  96. package/agentvibes.org/package-lock.json +0 -1974
  97. package/agentvibes.org/package.json +0 -30
  98. package/agentvibes.org/pnpm-lock.yaml +0 -1141
  99. package/agentvibes.org/postcss.config.js +0 -5
  100. package/agentvibes.org/public/audio/02-sarcastic.mp3 +0 -0
  101. package/agentvibes.org/public/audio/03-angry.mp3 +0 -0
  102. package/agentvibes.org/public/audio/04-grandpa.mp3 +0 -0
  103. package/agentvibes.org/public/audio/05-sarcastic-example2.mp3 +0 -0
  104. package/agentvibes.org/public/audio/french-rachel.mp3 +0 -0
  105. package/agentvibes.org/public/audio/spanish-antoni.mp3 +0 -0
  106. package/agentvibes.org/public/favicon.ico +0 -0
  107. package/agentvibes.org/public/fonts/nacelle-italic.woff2 +0 -0
  108. package/agentvibes.org/public/fonts/nacelle-regular.woff2 +0 -0
  109. package/agentvibes.org/public/fonts/nacelle-semibold.woff2 +0 -0
  110. package/agentvibes.org/public/fonts/nacelle-semibolditalic.woff2 +0 -0
  111. package/agentvibes.org/public/images/blurred-shape-gray.svg +0 -1
  112. package/agentvibes.org/public/images/blurred-shape.svg +0 -1
  113. package/agentvibes.org/public/images/client-logo-01.svg +0 -1
  114. package/agentvibes.org/public/images/client-logo-02.svg +0 -1
  115. package/agentvibes.org/public/images/client-logo-03.svg +0 -1
  116. package/agentvibes.org/public/images/client-logo-04.svg +0 -1
  117. package/agentvibes.org/public/images/client-logo-05.svg +0 -1
  118. package/agentvibes.org/public/images/client-logo-06.svg +0 -1
  119. package/agentvibes.org/public/images/client-logo-07.svg +0 -1
  120. package/agentvibes.org/public/images/client-logo-08.svg +0 -1
  121. package/agentvibes.org/public/images/client-logo-09.svg +0 -1
  122. package/agentvibes.org/public/images/features.png +0 -0
  123. package/agentvibes.org/public/images/footer-illustration.svg +0 -1
  124. package/agentvibes.org/public/images/hero-image-01.jpg +0 -0
  125. package/agentvibes.org/public/images/logo.svg +0 -1
  126. package/agentvibes.org/public/images/page-illustration.svg +0 -1
  127. package/agentvibes.org/public/images/secondary-illustration.svg +0 -1
  128. package/agentvibes.org/public/images/testimonial-01.jpg +0 -0
  129. package/agentvibes.org/public/images/testimonial-02.jpg +0 -0
  130. package/agentvibes.org/public/images/testimonial-03.jpg +0 -0
  131. package/agentvibes.org/public/images/testimonial-04.jpg +0 -0
  132. package/agentvibes.org/public/images/testimonial-05.jpg +0 -0
  133. package/agentvibes.org/public/images/testimonial-06.jpg +0 -0
  134. package/agentvibes.org/public/images/testimonial-07.jpg +0 -0
  135. package/agentvibes.org/public/images/testimonial-08.jpg +0 -0
  136. package/agentvibes.org/public/images/testimonial-09.jpg +0 -0
  137. package/agentvibes.org/public/images/workflow-01.png +0 -0
  138. package/agentvibes.org/public/images/workflow-02.png +0 -0
  139. package/agentvibes.org/public/images/workflow-03.png +0 -0
  140. package/agentvibes.org/public/videos/video.mp4 +0 -0
  141. package/agentvibes.org/tsconfig.json +0 -28
  142. package/agentvibes.org/utils/useMasonry.tsx +0 -67
  143. package/agentvibes.org/utils/useMousePosition.tsx +0 -27
package/src/installer.js CHANGED
@@ -73,25 +73,38 @@ async function install(options = {}) {
73
73
  console.log(chalk.gray(` Install location: ${currentDir}/.claude/`));
74
74
  console.log(chalk.gray(` Package version: ${VERSION}`));
75
75
 
76
- // Show latest release notes from git log
76
+ // Show latest release notes from RELEASE_NOTES.md
77
77
  try {
78
- const { execSync } = await import('node:child_process');
79
- const gitLog = execSync(
80
- 'git log --oneline --no-decorate -5',
81
- { cwd: path.join(__dirname, '..'), encoding: 'utf8' }
82
- ).trim();
83
-
84
- if (gitLog) {
85
- console.log(chalk.cyan('\n📰 Latest Release Notes:'));
86
- const commits = gitLog.split('\n');
87
- commits.forEach(commit => {
88
- const [hash, ...messageParts] = commit.split(' ');
89
- const message = messageParts.join(' ');
90
- console.log(chalk.gray(` ${hash}`) + ' ' + chalk.white(message));
91
- });
78
+ const releaseNotesPath = path.join(__dirname, '..', 'RELEASE_NOTES.md');
79
+ const releaseNotes = await fs.readFile(releaseNotesPath, 'utf8');
80
+ const lines = releaseNotes.split('\n');
81
+
82
+ // Extract the first release section (v2.0.x format)
83
+ console.log(chalk.cyan('\n📰 Latest Release Notes:'));
84
+
85
+ let foundFirstRelease = false;
86
+ let lineCount = 0;
87
+ const maxLines = 8; // Show first 8 lines of latest release
88
+
89
+ for (const line of lines) {
90
+ if (line.startsWith('## 📦 v')) {
91
+ if (foundFirstRelease) break; // Stop at second release
92
+ foundFirstRelease = true;
93
+ console.log(chalk.white(line.replace('## 📦 ', '')));
94
+ continue;
95
+ }
96
+ if (foundFirstRelease && line.trim()) {
97
+ if (line.startsWith('###')) {
98
+ console.log(chalk.gray(line));
99
+ } else if (line.startsWith('- ')) {
100
+ console.log(chalk.gray(' ' + line));
101
+ }
102
+ lineCount++;
103
+ if (lineCount >= maxLines) break;
104
+ }
92
105
  }
93
106
  } catch (error) {
94
- // Git not available or not a git repo - skip release notes
107
+ // RELEASE_NOTES.md not available - skip release notes
95
108
  }
96
109
 
97
110
  // Provider selection prompt
@@ -572,7 +585,7 @@ async function install(options = {}) {
572
585
  chalk.green.bold('✨ Installation Complete! ✨\n\n') +
573
586
  chalk.yellow.bold('⚠️ IMPORTANT SETUP STEP:\n') +
574
587
  chalk.white('In Claude Code, run this command:\n') +
575
- chalk.cyan.bold('/output-style agent-vibes') + '\n\n' +
588
+ chalk.cyan.bold('/output-style Agent Vibes') + '\n\n' +
576
589
  chalk.white('🎤 Available Commands:\n\n') +
577
590
  chalk.cyan(' /agent-vibes') + chalk.gray(' .................... Show all commands\n') +
578
591
  chalk.cyan(' /agent-vibes:list') + chalk.gray(' ............... List available voices\n') +
@@ -598,7 +611,7 @@ async function install(options = {}) {
598
611
  );
599
612
 
600
613
  console.log(chalk.yellow.bold('\n⚠️ REQUIRED SETUP:'));
601
- console.log(chalk.white(' 1. In Claude Code, run: ') + chalk.cyan.bold('/output-style agent-vibes'));
614
+ console.log(chalk.white(' 1. In Claude Code, run: ') + chalk.cyan.bold('/output-style Agent Vibes'));
602
615
  console.log(chalk.gray(' This enables TTS narration for your sessions\n'));
603
616
  console.log(chalk.gray('💡 Then try these commands:'));
604
617
  console.log(chalk.gray(' • /agent-vibes:list - See all available voices'));
@@ -730,25 +743,38 @@ program
730
743
  console.log(chalk.gray(` Update location: ${targetDir}/.claude/`));
731
744
  console.log(chalk.gray(` Package version: ${version}`));
732
745
 
733
- // Show latest release notes from git log
746
+ // Show latest release notes from RELEASE_NOTES.md
734
747
  try {
735
- const { execSync } = await import('node:child_process');
736
- const gitLog = execSync(
737
- 'git log --oneline --no-decorate -5',
738
- { cwd: path.join(__dirname, '..'), encoding: 'utf8' }
739
- ).trim();
748
+ const releaseNotesPath = path.join(__dirname, '..', 'RELEASE_NOTES.md');
749
+ const releaseNotes = await fs.readFile(releaseNotesPath, 'utf8');
750
+ const lines = releaseNotes.split('\n');
740
751
 
741
- if (gitLog) {
742
- console.log(chalk.cyan('\n📰 Latest Release Notes:'));
743
- const commits = gitLog.split('\n');
744
- commits.forEach(commit => {
745
- const [hash, ...messageParts] = commit.split(' ');
746
- const message = messageParts.join(' ');
747
- console.log(chalk.gray(` ${hash}`) + ' ' + chalk.white(message));
748
- });
752
+ // Extract the first release section (v2.0.x format)
753
+ console.log(chalk.cyan('\n📰 Latest Release Notes:'));
754
+
755
+ let foundFirstRelease = false;
756
+ let lineCount = 0;
757
+ const maxLines = 8; // Show first 8 lines of latest release
758
+
759
+ for (const line of lines) {
760
+ if (line.startsWith('## 📦 v')) {
761
+ if (foundFirstRelease) break; // Stop at second release
762
+ foundFirstRelease = true;
763
+ console.log(chalk.white(line.replace('## 📦 ', '')));
764
+ continue;
765
+ }
766
+ if (foundFirstRelease && line.trim()) {
767
+ if (line.startsWith('###')) {
768
+ console.log(chalk.gray(line));
769
+ } else if (line.startsWith('- ')) {
770
+ console.log(chalk.gray(' ' + line));
771
+ }
772
+ lineCount++;
773
+ if (lineCount >= maxLines) break;
774
+ }
749
775
  }
750
776
  } catch (error) {
751
- // Git not available or not a git repo - skip release notes
777
+ // RELEASE_NOTES.md not available - skip release notes
752
778
  }
753
779
 
754
780
  // Check if already installed
@@ -118,13 +118,15 @@ setup_agentvibes_scripts() {
118
118
  # Create a test personality file
119
119
  create_test_personality() {
120
120
  local name="$1"
121
- local voice="${2:-}"
121
+ local elevenlabs_voice="${2:-}"
122
+ local piper_voice="${3:-en_US-lessac-medium}"
122
123
 
123
124
  cat > "$TEST_PERSONALITIES_DIR/${name}.md" << EOF
124
125
  ---
125
126
  name: ${name}
126
127
  description: Test personality
127
- voice: ${voice}
128
+ elevenlabs_voice: ${elevenlabs_voice}
129
+ piper_voice: ${piper_voice}
128
130
  ---
129
131
 
130
132
  # ${name} Personality
@@ -11,9 +11,9 @@ setup() {
11
11
 
12
12
  PERSONALITY_MANAGER="$TEST_CLAUDE_DIR/hooks/personality-manager.sh"
13
13
 
14
- # Create test personalities
15
- create_test_personality "sarcastic" "Jessica Anne Bogart"
16
- create_test_personality "normal"
14
+ # Create test personalities with both ElevenLabs and Piper voices
15
+ create_test_personality "sarcastic" "Jessica Anne Bogart" "en_US-amy-medium"
16
+ create_test_personality "normal" "Aria" "en_US-lessac-medium"
17
17
  }
18
18
 
19
19
  teardown() {
@@ -50,7 +50,8 @@ teardown() {
50
50
  }
51
51
 
52
52
  @test "personality-manager set with assigned voice switches voice silently" {
53
- # sarcastic personality has assigned voice "Jessica Anne Bogart"
53
+ # Set default provider (no provider file defaults to elevenlabs)
54
+ # sarcastic personality has assigned voice "Jessica Anne Bogart" (ElevenLabs)
54
55
  run "$PERSONALITY_MANAGER" set "sarcastic"
55
56
 
56
57
  [ "$status" -eq 0 ]
@@ -60,6 +61,17 @@ teardown() {
60
61
  # (that would indicate double audio bug)
61
62
  }
62
63
 
64
+ @test "personality-manager set with piper provider uses piper voice" {
65
+ # Set Piper as active provider
66
+ echo "piper" > "$HOME/.claude/tts-provider.txt"
67
+
68
+ # sarcastic personality should use en_US-amy-medium (Piper voice)
69
+ run "$PERSONALITY_MANAGER" set "sarcastic"
70
+
71
+ [ "$status" -eq 0 ]
72
+ assert_output_contains "Switching to assigned voice: en_US-amy-medium"
73
+ }
74
+
63
75
  @test "personality-manager reset changes to normal" {
64
76
  echo "sarcastic" > "$HOME/.claude/tts-personality.txt"
65
77
 
@@ -83,9 +83,13 @@ declare -A EXPECTED_VOICES=(
83
83
  for personality_file in "$REPO_ROOT/.claude/personalities"/*.md; do
84
84
  personality_name=$(basename "$personality_file" .md)
85
85
 
86
- # Check if file has voice field
87
- if ! grep -q "^voice:" "$personality_file"; then
88
- errors="${errors}Personality '${personality_name}' missing voice field\n"
86
+ # Check if file has both elevenlabs_voice and piper_voice fields
87
+ if ! grep -q "^elevenlabs_voice:" "$personality_file"; then
88
+ errors="${errors}Personality '${personality_name}' missing elevenlabs_voice field\n"
89
+ failed=1
90
+ fi
91
+ if ! grep -q "^piper_voice:" "$personality_file"; then
92
+ errors="${errors}Personality '${personality_name}' missing piper_voice field\n"
89
93
  failed=1
90
94
  fi
91
95
  done
@@ -103,11 +107,16 @@ declare -A EXPECTED_VOICES=(
103
107
 
104
108
  for personality_file in "$REPO_ROOT/.claude/personalities"/*.md; do
105
109
  personality_name=$(basename "$personality_file" .md)
106
- assigned_voice=$(grep "^voice:" "$personality_file" | cut -d: -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
110
+ assigned_voice=$(grep "^elevenlabs_voice:" "$personality_file" | cut -d: -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
111
+
112
+ # Skip if no elevenlabs_voice assigned
113
+ if [[ -z "$assigned_voice" ]]; then
114
+ continue
115
+ fi
107
116
 
108
- # Check if voice exists in config
117
+ # Check if ElevenLabs voice exists in config
109
118
  if [[ -z "${VOICES[$assigned_voice]}" ]]; then
110
- errors="${errors}Personality '${personality_name}' uses undefined voice: ${assigned_voice}\n"
119
+ errors="${errors}Personality '${personality_name}' uses undefined ElevenLabs voice: ${assigned_voice}\n"
111
120
  failed=1
112
121
  fi
113
122
  done
@@ -66,15 +66,6 @@ teardown() {
66
66
  assert_output_contains "Text truncated to 500 characters"
67
67
  }
68
68
 
69
- @test "play-tts fails without API key" {
70
- unset ELEVENLABS_API_KEY
71
-
72
- run "$PLAY_TTS" "Test message"
73
-
74
- [ "$status" -eq 1 ]
75
- assert_output_contains "ELEVENLABS_API_KEY not set"
76
- }
77
-
78
69
  @test "play-tts fails without text argument" {
79
70
  run "$PLAY_TTS"
80
71
 
@@ -1,21 +0,0 @@
1
- ---
2
- description: Add a new custom ElevenLabs TTS voice
3
- argument-hint: <voice_name> <voice_id>
4
- ---
5
-
6
- Add a new custom ElevenLabs TTS voice to your voice library.
7
-
8
- Usage:
9
- - `/agent-vibes:add "My Custom Voice" abc123xyz456789`
10
- - `/agent-vibes:add Narrator KTPVrSVAEUSJRClDzBw7`
11
-
12
- The voice ID should be a 15-30 character alphanumeric string from your ElevenLabs account.
13
-
14
- To find your voice IDs:
15
- 1. Go to https://elevenlabs.io/app/voice-library
16
- 2. Click on a voice
17
- 3. Copy the voice ID from the URL or settings
18
-
19
- After adding, you can switch to it with `/agent-vibes:switch "Voice Name"`
20
-
21
- !bash .claude/hooks/voice-manager.sh add $ARGUMENTS
@@ -1,68 +0,0 @@
1
- ---
2
- description: ElevenLabs TTS voice management commands
3
- ---
4
-
5
- # 🎤 ElevenLabs Voice Management
6
-
7
- Manage your ElevenLabs text-to-speech voices with these commands:
8
-
9
- ## Available Commands
10
-
11
- ### `/agent-vibes:list [first|last] [N]`
12
- List all available voices, with optional filtering
13
- - `/agent-vibes:list` - Show all voices
14
- - `/agent-vibes:list first 5` - Show first 5 voices
15
- - `/agent-vibes:list last 3` - Show last 3 voices
16
-
17
- ### `/agent-vibes:preview [first|last] [N]`
18
- Preview voices by playing audio samples
19
- - `/agent-vibes:preview` - Preview first 3 voices
20
- - `/agent-vibes:preview 5` - Preview first 5 voices
21
- - `/agent-vibes:preview last 5` - Preview last 5 voices
22
-
23
- ### `/agent-vibes:switch <voice_name>`
24
- Switch to a different default voice
25
- - `/agent-vibes:switch Northern Terry`
26
- - `/agent-vibes:switch "Cowboy Bob"`
27
-
28
- ### `/agent-vibes:get`
29
- Display the currently selected voice
30
-
31
- ### `/agent-vibes:add <name> <voice_id>`
32
- Add a new custom voice from your ElevenLabs account
33
- - `/agent-vibes:add "My Voice" abc123xyz456`
34
-
35
- ### `/agent-vibes:replay [N]`
36
- Replay recently played TTS audio
37
- - `/agent-vibes:replay` - Replay last audio
38
- - `/agent-vibes:replay 1` - Replay most recent
39
- - `/agent-vibes:replay 2` - Replay second-to-last
40
- - `/agent-vibes:replay 3` - Replay third-to-last
41
-
42
- Keeps last 10 audio files in history.
43
-
44
- ### `/agent-vibes:set-pretext <word>`
45
- Set a prefix word/phrase for all TTS messages
46
- - `/agent-vibes:set-pretext AgentVibes` - All TTS starts with "AgentVibes:"
47
- - `/agent-vibes:set-pretext "Project Alpha"` - Custom phrase
48
- - `/agent-vibes:set-pretext ""` - Clear pretext
49
-
50
- Saved locally in `.claude/config/agentvibes.json`
51
-
52
- ## Getting Voice IDs
53
-
54
- To add your own custom voices:
55
- 1. Go to https://elevenlabs.io/app/voice-library
56
- 2. Select or create a voice
57
- 3. Copy the voice ID (15-30 character alphanumeric string)
58
- 4. Use `/agent-vibes:add` to add it
59
-
60
- ## Default Voices
61
-
62
- The system comes with these Character Voices from ElevenLabs:
63
- - Northern Terry, Grandpa Spuds Oxley, Ms. Walker
64
- - Ralf Eisend, Amy, Michael, Jessica Anne Bogart
65
- - Aria, Lutz Laugh, Dr. Von Fusion, Matthew Schmitz
66
- - Demon Monster, Cowboy Bob, Drill Sergeant
67
-
68
- Enjoy your TTS experience! 🎵
@@ -1,53 +0,0 @@
1
- {
2
- "namespace": "agent-vibes",
3
- "commands": [
4
- {
5
- "name": "list",
6
- "description": "List all available ElevenLabs voices"
7
- },
8
- {
9
- "name": "preview",
10
- "description": "Preview ElevenLabs voices by playing audio samples"
11
- },
12
- {
13
- "name": "switch",
14
- "description": "Switch to a different ElevenLabs voice"
15
- },
16
- {
17
- "name": "whoami",
18
- "description": "Display currently selected voice"
19
- },
20
- {
21
- "name": "sample",
22
- "description": "Play a sample with the current or specified voice"
23
- },
24
- {
25
- "name": "replay",
26
- "description": "Replay the last TTS message"
27
- },
28
- {
29
- "name": "personality",
30
- "description": "Manage AI personality settings"
31
- },
32
- {
33
- "name": "sentiment",
34
- "description": "Set temporary personality sentiment"
35
- },
36
- {
37
- "name": "set-pretext",
38
- "description": "Configure pre-TTS message text"
39
- },
40
- {
41
- "name": "set-language",
42
- "description": "Set TTS language for multilingual voices"
43
- },
44
- {
45
- "name": "add",
46
- "description": "Add a new personality"
47
- },
48
- {
49
- "name": "get",
50
- "description": "Get personality details"
51
- }
52
- ]
53
- }
@@ -1,9 +0,0 @@
1
- ---
2
- description: Get the currently selected ElevenLabs TTS voice
3
- ---
4
-
5
- Display the currently selected ElevenLabs TTS voice.
6
-
7
- This shows which voice is currently set as the default for TTS audio generation.
8
-
9
- !bash .claude/hooks/voice-manager.sh get
@@ -1,13 +0,0 @@
1
- ---
2
- description: List available ElevenLabs TTS voices with optional filtering
3
- argument-hint: [first|last] [N]
4
- ---
5
-
6
- List available ElevenLabs TTS voices.
7
-
8
- Usage examples:
9
- - `/agent-vibes:list` - Show all voices
10
- - `/agent-vibes:list first 5` - Show first 5 voices
11
- - `/agent-vibes:list last 3` - Show last 3 voices
12
-
13
- !bash .claude/hooks/voice-manager.sh list $ARGUMENTS
@@ -1,79 +0,0 @@
1
- ---
2
- description: Set or customize the personality style for TTS messages
3
- argument-hint: [personality_name|list|add|edit|get|reset]
4
- ---
5
-
6
- # /agent-vibes:personality
7
-
8
- Set or customize the personality style for TTS messages.
9
-
10
- This command allows you to add character and emotion to your TTS announcements by applying personality modifiers to messages.
11
-
12
- ## Usage
13
-
14
- ```bash
15
- # Set a personality
16
- /agent-vibes:personality flirty
17
- /agent-vibes:personality sarcastic
18
-
19
- # List all personalities
20
- /agent-vibes:personality list
21
-
22
- # Add custom personality
23
- /agent-vibes:personality add cowboy "Howdy partner!" "Yeehaw!"
24
-
25
- # Show current personality
26
- /agent-vibes:personality get
27
-
28
- # Reset to normal
29
- /agent-vibes:personality reset
30
- ```
31
-
32
- ## Available Personalities
33
-
34
- - **normal** - Standard professional tone
35
- - **flirty** - Playful and charming
36
- - **angry** - Frustrated and irritated
37
- - **sassy** - Bold with attitude
38
- - **moody** - Melancholic and brooding
39
- - **funny** - Lighthearted and comedic
40
- - **sarcastic** - Dry wit and irony
41
- - **poetic** - Elegant and lyrical
42
- - **annoying** - Over-enthusiastic
43
- - **professional** - Formal and precise
44
- - **pirate** - Seafaring swagger
45
- - **robot** - Mechanical and precise
46
- - **surfer-dude** - Chill beach vibes
47
- - **millennial** - Internet generation speak
48
- - **zen** - Peaceful and mindful
49
- - **dramatic** - Theatrical flair
50
- - **crass** - Edgy and blunt
51
- - **random** - Picks a different personality each time!
52
-
53
- ## Editing Personalities
54
-
55
- Each personality is stored as a markdown file in `.claude/personalities/`. You can:
56
-
57
- ### Edit existing personalities:
58
- ```bash
59
- /agent-vibes:personality edit flirty
60
- ```
61
- This shows the file path - edit it directly to customize behavior.
62
-
63
- ### Create new personalities:
64
- ```bash
65
- /agent-vibes:personality add cowboy
66
- ```
67
- Creates a new personality file, then edit it to customize.
68
-
69
- ### Personality files contain:
70
- - **Prefix**: Text added before messages
71
- - **Suffix**: Text added after messages
72
- - **AI Instructions**: How the AI should speak
73
- - **Example Responses**: Sample messages
74
-
75
- Files are located in `.claude/personalities/[name].md`
76
-
77
- ## Implementation
78
-
79
- !bash .claude/hooks/personality-manager.sh $ARGUMENTS
@@ -1,16 +0,0 @@
1
- ---
2
- description: Preview ElevenLabs TTS voices by playing audio samples
3
- argument-hint: [voice_name|first|last] [N]
4
- ---
5
-
6
- Preview ElevenLabs TTS voices by playing audio samples.
7
-
8
- Usage examples:
9
- - `/agent-vibes:preview` - Preview first 3 voices (default)
10
- - `/agent-vibes:preview 5` - Preview first 5 voices
11
- - `/agent-vibes:preview Jessica` - Preview Jessica Anne Bogart voice
12
- - `/agent-vibes:preview "Northern Terry"` - Preview Northern Terry voice
13
- - `/agent-vibes:preview first 10` - Preview first 10 voices
14
- - `/agent-vibes:preview last 5` - Preview last 5 voices
15
-
16
- !bash .claude/hooks/voice-manager.sh preview $ARGUMENTS
@@ -1,54 +0,0 @@
1
- ---
2
- description: Manage TTS providers (list, switch, info, test)
3
- argument-hint: [command] [args...]
4
- ---
5
-
6
- # Provider Management Commands
7
-
8
- Manage TTS providers (ElevenLabs, Piper) - switch between providers, view details, and test.
9
-
10
- ## Usage
11
-
12
- ```bash
13
- /agent-vibes:provider list # Show all available providers
14
- /agent-vibes:provider switch <name> # Switch to a different provider
15
- /agent-vibes:provider info <name> # Show detailed provider information
16
- /agent-vibes:provider test # Test current provider
17
- /agent-vibes:provider get # Show current active provider
18
- /agent-vibes:provider help # Show this help
19
- ```
20
-
21
- ## Examples
22
-
23
- ```bash
24
- # List available providers
25
- /agent-vibes:provider list
26
-
27
- # Switch to Piper (free, offline)
28
- /agent-vibes:provider switch piper
29
-
30
- # Switch to ElevenLabs (premium quality)
31
- /agent-vibes:provider switch elevenlabs
32
-
33
- # Get info about a provider
34
- /agent-vibes:provider info piper
35
-
36
- # Test current provider
37
- /agent-vibes:provider test
38
-
39
- # Show current provider
40
- /agent-vibes:provider get
41
- ```
42
-
43
- ## Provider Comparison
44
-
45
- | Feature | ElevenLabs | Piper |
46
- |---------|------------|-------|
47
- | Quality | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
48
- | Cost | Free tier + $5-22/mo | Free forever |
49
- | Offline | No | Yes |
50
- | Platform | All | WSL/Linux only |
51
-
52
- Learn more: agentvibes.org/providers
53
-
54
- !bash .claude/hooks/provider-commands.sh $ARGUMENTS
@@ -1,19 +0,0 @@
1
- ---
2
- description: Replay recently played TTS audio
3
- argument-hint: [N]
4
- ---
5
-
6
- Replay previously played TTS audio from history.
7
-
8
- Usage:
9
- - `/agent-vibes:replay` - Replay last audio (most recent)
10
- - `/agent-vibes:replay 1` - Replay last audio
11
- - `/agent-vibes:replay 2` - Replay second-to-last audio
12
- - `/agent-vibes:replay 3` - Replay third-to-last audio
13
-
14
- The system keeps the last 10 audio files in history. This is useful for:
15
- - Hearing a summary again
16
- - Checking what was just said
17
- - Comparing different voice samples
18
-
19
- !bash .claude/hooks/voice-manager.sh replay $ARGUMENTS
@@ -1,12 +0,0 @@
1
- ---
2
- description: Test a voice with sample text
3
- argument-hint: <voice-name>
4
- ---
5
-
6
- Test a specific ElevenLabs voice by playing sample text.
7
-
8
- Usage:
9
- - `/agent-vibes:sample Cowboy` - Test the Cowboy voice
10
- - `/agent-vibes:sample "Northern Terry"` - Test Northern Terry voice
11
-
12
- !bash .claude/hooks/voice-manager.sh sample $ARGUMENTS
@@ -1,52 +0,0 @@
1
- ---
2
- description: Set sentiment/personality for your current voice
3
- argument-hint: [personality_name|list|get]
4
- ---
5
-
6
- # Agent Vibes Sentiment Command
7
-
8
- Set the sentiment/personality style for your current voice without changing the voice itself.
9
-
10
- ```bash
11
- .claude/hooks/sentiment-manager.sh "$@"
12
- ```
13
-
14
- ## Usage
15
-
16
- ```bash
17
- # Set sentiment for current voice
18
- /agent-vibes:sentiment flirty
19
- /agent-vibes:sentiment sarcastic
20
- /agent-vibes:sentiment angry
21
-
22
- # See current sentiment
23
- /agent-vibes:sentiment get
24
-
25
- # List available sentiments
26
- /agent-vibes:sentiment list
27
- ```
28
-
29
- ## What This Does
30
-
31
- The sentiment command allows you to:
32
- - Keep your current voice (e.g., your custom voice)
33
- - Apply a personality style (flirty, sarcastic, angry, etc.)
34
- - Change how AI speaks without changing WHO speaks
35
-
36
- ## Example
37
-
38
- ```bash
39
- # You're using your custom voice "MyVoice"
40
- /agent-vibes:switch MyVoice
41
-
42
- # Now add a sarcastic sentiment to MyVoice
43
- /agent-vibes:sentiment sarcastic
44
- # AI will now respond with sarcasm in MyVoice
45
-
46
- # Or set both at once
47
- /agent-vibes:switch MyVoice --sentiment flirty
48
- ```
49
-
50
- ## Available Sentiments
51
-
52
- Run `/agent-vibes:sentiment list` to see all available personality styles.