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.
- package/.claude/github-star-reminder.txt +1 -0
- package/.claude/hooks/check-output-style.sh +2 -2
- package/.claude/hooks/github-star-reminder.sh +94 -0
- package/.claude/hooks/personality-manager.sh +2 -2
- package/.claude/hooks/piper-installer.sh +144 -0
- package/.claude/hooks/play-tts-elevenlabs.sh +30 -3
- package/.claude/hooks/play-tts.sh +3 -0
- package/.claude/hooks/provider-commands.sh +30 -1
- package/.claude/hooks/voice-manager.sh +2 -2
- package/README.md +2 -2
- package/RELEASE_NOTES.md +236 -0
- package/package.json +1 -1
- package/src/installer.js +59 -33
- package/test/helpers/test-helper.bash +4 -2
- package/test/unit/personality-manager.bats +16 -4
- package/test/unit/personality-voice-mapping.bats +15 -6
- package/test/unit/play-tts.bats +0 -9
- package/agentvibes.org/.claude/commands/agent-vibes/add.md +0 -21
- package/agentvibes.org/.claude/commands/agent-vibes/agent-vibes.md +0 -68
- package/agentvibes.org/.claude/commands/agent-vibes/commands.json +0 -53
- package/agentvibes.org/.claude/commands/agent-vibes/get.md +0 -9
- package/agentvibes.org/.claude/commands/agent-vibes/list.md +0 -13
- package/agentvibes.org/.claude/commands/agent-vibes/personality.md +0 -79
- package/agentvibes.org/.claude/commands/agent-vibes/preview.md +0 -16
- package/agentvibes.org/.claude/commands/agent-vibes/provider.md +0 -54
- package/agentvibes.org/.claude/commands/agent-vibes/replay.md +0 -19
- package/agentvibes.org/.claude/commands/agent-vibes/sample.md +0 -12
- package/agentvibes.org/.claude/commands/agent-vibes/sentiment.md +0 -52
- package/agentvibes.org/.claude/commands/agent-vibes/set-language.md +0 -47
- package/agentvibes.org/.claude/commands/agent-vibes/set-pretext.md +0 -65
- package/agentvibes.org/.claude/commands/agent-vibes/switch.md +0 -53
- package/agentvibes.org/.claude/commands/agent-vibes/update.md +0 -20
- package/agentvibes.org/.claude/commands/agent-vibes/version.md +0 -10
- package/agentvibes.org/.claude/commands/agent-vibes/whoami.md +0 -7
- package/agentvibes.org/.claude/hooks/bmad-voice-manager.sh +0 -278
- package/agentvibes.org/.claude/hooks/language-manager.sh +0 -190
- package/agentvibes.org/.claude/hooks/personality-manager.sh +0 -279
- package/agentvibes.org/.claude/hooks/piper-download-voices.sh +0 -133
- package/agentvibes.org/.claude/hooks/piper-voice-manager.sh +0 -227
- package/agentvibes.org/.claude/hooks/play-tts-elevenlabs.sh +0 -201
- package/agentvibes.org/.claude/hooks/play-tts-piper.sh +0 -175
- package/agentvibes.org/.claude/hooks/play-tts.sh +0 -138
- package/agentvibes.org/.claude/hooks/provider-commands.sh +0 -374
- package/agentvibes.org/.claude/hooks/provider-manager.sh +0 -196
- package/agentvibes.org/.claude/hooks/sentiment-manager.sh +0 -163
- package/agentvibes.org/.claude/hooks/voice-manager.sh +0 -349
- package/agentvibes.org/.claude/hooks/voices-config.sh +0 -33
- package/agentvibes.org/.claude/journal/2025-10-07.html +0 -373
- package/agentvibes.org/.claude/journal/index.html +0 -91
- package/agentvibes.org/.claude/output-styles/agent-vibes.md +0 -203
- package/agentvibes.org/.claude/personalities/angry.md +0 -16
- package/agentvibes.org/.claude/personalities/annoying.md +0 -16
- package/agentvibes.org/.claude/personalities/crass.md +0 -16
- package/agentvibes.org/.claude/personalities/dramatic.md +0 -16
- package/agentvibes.org/.claude/personalities/dry-humor.md +0 -52
- package/agentvibes.org/.claude/personalities/flirty.md +0 -22
- package/agentvibes.org/.claude/personalities/funny.md +0 -16
- package/agentvibes.org/.claude/personalities/grandpa.md +0 -34
- package/agentvibes.org/.claude/personalities/millennial.md +0 -16
- package/agentvibes.org/.claude/personalities/moody.md +0 -16
- package/agentvibes.org/.claude/personalities/normal.md +0 -18
- package/agentvibes.org/.claude/personalities/pirate.md +0 -16
- package/agentvibes.org/.claude/personalities/poetic.md +0 -16
- package/agentvibes.org/.claude/personalities/professional.md +0 -16
- package/agentvibes.org/.claude/personalities/robot.md +0 -16
- package/agentvibes.org/.claude/personalities/sarcastic.md +0 -40
- package/agentvibes.org/.claude/personalities/sassy.md +0 -16
- package/agentvibes.org/.claude/personalities/surfer-dude.md +0 -16
- package/agentvibes.org/.claude/personalities/zen.md +0 -16
- package/agentvibes.org/.mcp-minimal.json +0 -60
- package/agentvibes.org/CHANGELOG.md +0 -56
- package/agentvibes.org/README.md +0 -93
- package/agentvibes.org/app/(auth)/layout.tsx +0 -15
- package/agentvibes.org/app/(auth)/reset-password/page.tsx +0 -45
- package/agentvibes.org/app/(auth)/signin/page.tsx +0 -82
- package/agentvibes.org/app/(auth)/signup/page.tsx +0 -104
- package/agentvibes.org/app/(default)/layout.tsx +0 -31
- package/agentvibes.org/app/(default)/page.tsx +0 -20
- package/agentvibes.org/app/api/hello/route.ts +0 -3
- package/agentvibes.org/app/css/additional-styles/theme.css +0 -82
- package/agentvibes.org/app/css/additional-styles/utility-patterns.css +0 -55
- package/agentvibes.org/app/css/style.css +0 -100
- package/agentvibes.org/app/layout.tsx +0 -63
- package/agentvibes.org/components/cta.tsx +0 -58
- package/agentvibes.org/components/features.tsx +0 -256
- package/agentvibes.org/components/hero-home.tsx +0 -133
- package/agentvibes.org/components/modal-video.tsx +0 -137
- package/agentvibes.org/components/page-illustration.tsx +0 -55
- package/agentvibes.org/components/spotlight.tsx +0 -77
- package/agentvibes.org/components/testimonials.tsx +0 -282
- package/agentvibes.org/components/ui/footer.tsx +0 -82
- package/agentvibes.org/components/ui/header.tsx +0 -53
- package/agentvibes.org/components/ui/logo.tsx +0 -10
- package/agentvibes.org/components/workflows.tsx +0 -176
- package/agentvibes.org/next.config.js +0 -4
- package/agentvibes.org/package-lock.json +0 -1974
- package/agentvibes.org/package.json +0 -30
- package/agentvibes.org/pnpm-lock.yaml +0 -1141
- package/agentvibes.org/postcss.config.js +0 -5
- package/agentvibes.org/public/audio/02-sarcastic.mp3 +0 -0
- package/agentvibes.org/public/audio/03-angry.mp3 +0 -0
- package/agentvibes.org/public/audio/04-grandpa.mp3 +0 -0
- package/agentvibes.org/public/audio/05-sarcastic-example2.mp3 +0 -0
- package/agentvibes.org/public/audio/french-rachel.mp3 +0 -0
- package/agentvibes.org/public/audio/spanish-antoni.mp3 +0 -0
- package/agentvibes.org/public/favicon.ico +0 -0
- package/agentvibes.org/public/fonts/nacelle-italic.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-regular.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-semibold.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-semibolditalic.woff2 +0 -0
- package/agentvibes.org/public/images/blurred-shape-gray.svg +0 -1
- package/agentvibes.org/public/images/blurred-shape.svg +0 -1
- package/agentvibes.org/public/images/client-logo-01.svg +0 -1
- package/agentvibes.org/public/images/client-logo-02.svg +0 -1
- package/agentvibes.org/public/images/client-logo-03.svg +0 -1
- package/agentvibes.org/public/images/client-logo-04.svg +0 -1
- package/agentvibes.org/public/images/client-logo-05.svg +0 -1
- package/agentvibes.org/public/images/client-logo-06.svg +0 -1
- package/agentvibes.org/public/images/client-logo-07.svg +0 -1
- package/agentvibes.org/public/images/client-logo-08.svg +0 -1
- package/agentvibes.org/public/images/client-logo-09.svg +0 -1
- package/agentvibes.org/public/images/features.png +0 -0
- package/agentvibes.org/public/images/footer-illustration.svg +0 -1
- package/agentvibes.org/public/images/hero-image-01.jpg +0 -0
- package/agentvibes.org/public/images/logo.svg +0 -1
- package/agentvibes.org/public/images/page-illustration.svg +0 -1
- package/agentvibes.org/public/images/secondary-illustration.svg +0 -1
- package/agentvibes.org/public/images/testimonial-01.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-02.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-03.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-04.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-05.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-06.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-07.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-08.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-09.jpg +0 -0
- package/agentvibes.org/public/images/workflow-01.png +0 -0
- package/agentvibes.org/public/images/workflow-02.png +0 -0
- package/agentvibes.org/public/images/workflow-03.png +0 -0
- package/agentvibes.org/public/videos/video.mp4 +0 -0
- package/agentvibes.org/tsconfig.json +0 -28
- package/agentvibes.org/utils/useMasonry.tsx +0 -67
- 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
|
|
76
|
+
// Show latest release notes from RELEASE_NOTES.md
|
|
77
77
|
try {
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
//
|
|
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
|
|
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
|
|
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
|
|
746
|
+
// Show latest release notes from RELEASE_NOTES.md
|
|
734
747
|
try {
|
|
735
|
-
const
|
|
736
|
-
const
|
|
737
|
-
|
|
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
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
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
|
-
//
|
|
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
|
|
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
|
-
|
|
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
|
-
#
|
|
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
|
|
87
|
-
if ! grep -q "^
|
|
88
|
-
errors="${errors}Personality '${personality_name}' missing
|
|
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 "^
|
|
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
|
package/test/unit/play-tts.bats
CHANGED
|
@@ -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,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.
|