agentvibes 2.16.1 → 2.17.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 (39) hide show
  1. package/.claude/config/audio-effects.cfg +1 -1
  2. package/.claude/config/audio-effects.cfg.sample +52 -0
  3. package/.claude/hooks/audio-processor.sh +2 -2
  4. package/.claude/hooks/learn-manager.sh +7 -7
  5. package/.claude/hooks/personality-manager.sh +35 -24
  6. package/.claude/hooks/piper-installer.sh +2 -2
  7. package/.claude/hooks/provider-manager.sh +4 -4
  8. package/.claude/hooks/replay-target-audio.sh +1 -1
  9. package/.claude/hooks/speed-manager.sh +4 -4
  10. package/.claude/hooks/voice-manager.sh +50 -47
  11. package/.claude/personalities/angry.md +2 -4
  12. package/.claude/personalities/annoying.md +2 -4
  13. package/.claude/personalities/crass.md +2 -4
  14. package/.claude/personalities/dramatic.md +2 -4
  15. package/.claude/personalities/dry-humor.md +1 -3
  16. package/.claude/personalities/flirty.md +2 -4
  17. package/.claude/personalities/funny.md +2 -4
  18. package/.claude/personalities/grandpa.md +1 -3
  19. package/.claude/personalities/millennial.md +2 -4
  20. package/.claude/personalities/moody.md +2 -4
  21. package/.claude/personalities/normal.md +2 -4
  22. package/.claude/personalities/pirate.md +2 -4
  23. package/.claude/personalities/poetic.md +2 -4
  24. package/.claude/personalities/professional.md +2 -4
  25. package/.claude/personalities/rapper.md +1 -3
  26. package/.claude/personalities/robot.md +2 -4
  27. package/.claude/personalities/sarcastic.md +2 -4
  28. package/.claude/personalities/sassy.md +1 -3
  29. package/.claude/personalities/surfer-dude.md +2 -4
  30. package/.claude/personalities/zen.md +2 -4
  31. package/README.md +146 -10
  32. package/mcp-server/server.py +17 -17
  33. package/package.json +1 -1
  34. package/src/cli/list-personalities.js +110 -0
  35. package/src/cli/list-voices.js +114 -0
  36. package/src/commands/install-mcp.js +50 -34
  37. package/src/installer.js +1122 -481
  38. package/src/utils/dependency-checker.js +403 -0
  39. package/src/utils/list-formatter.js +194 -0
@@ -49,4 +49,4 @@ BMad Master|reverb 50 60 100 pitch -100|agentvibes_soft_flamenco_loop.mp3|0.30
49
49
  _party_mode|compand 0.3,1 6:-70,-60,-20|agent_vibes_dark_chill_step_loop.mp3|0.40
50
50
 
51
51
  # Default (no agent specified) - clean with subtle enhancement and chillwave background
52
- default|compand 0.3,1 6:-70,-60,-20|agentvibes_soft_flamenco_loop.mp3|0.30
52
+ default|gain -8|agent_vibes_chillwave_v2_loop.mp3|0.30
@@ -0,0 +1,52 @@
1
+ # AgentVibes Audio Effects Configuration
2
+ # Format: AGENT_NAME|SOX_EFFECTS|BACKGROUND_FILE|BACKGROUND_VOLUME
3
+ #
4
+ # SOX_EFFECTS: sox effect chain (leave empty for none)
5
+ # - reverb <reverberance> <HF-damping> <room-scale>
6
+ # - pitch <cents> (100 cents = 1 semitone)
7
+ # - equalizer <freq> <width>q <gain-dB>
8
+ # - gain <dB>
9
+ # - compand <attack,decay> <soft-knee-dB:in-dB,out-dB>
10
+ #
11
+ # BACKGROUND_FILE: path to ambient audio (relative to .claude/audio/tracks/)
12
+ # BACKGROUND_VOLUME: 0.0-1.0 (0.20-0.40 recommended)
13
+ #
14
+ # Example: John|reverb 30 50 80|my-track.mp3|0.25
15
+
16
+ # BMAD Agents - each with unique audio personality
17
+
18
+ # PM John - upbeat, driving energy
19
+ John|gain -1 equalizer 3000 1q +2|agentvibes_soft_flamenco_loop.mp3|0.30
20
+
21
+ # Architect Winston - deep, authoritative
22
+ Winston|reverb 40 50 90 gain -2|agentvibes_soft_flamenco_loop.mp3|0.25
23
+
24
+ # Developer Amelia - clean, precise
25
+ Amelia|compand 0.3,1 6:-70,-60,-20|agentvibes_soft_flamenco_loop.mp3|0.25
26
+
27
+ # Business Analyst Mary - warm, analytical
28
+ Mary|equalizer 200 1q +3 equalizer 2500 1q -2|agentvibes_soft_flamenco_loop.mp3|0.25
29
+
30
+ # Scrum Master Bob - refined, organized
31
+ Bob|reverb 30 40 70 compand 0.2,0.5 6:-70,-60,-20|agentvibes_soft_flamenco_loop.mp3|0.25
32
+
33
+ # Test Architect Murat - crisp, analytical
34
+ Murat|equalizer 4000 1q +3 compand 0.1,0.3 6:-70,-60,-20|agentvibes_soft_flamenco_loop.mp3|0.25
35
+
36
+ # UX Designer Sally - warm, empathetic
37
+ Sally|reverb 25 40 70 equalizer 300 1q +2|agentvibes_soft_flamenco_loop.mp3|0.25
38
+
39
+ # Tech Writer Paige - clear, patient
40
+ Paige|compand 0.2,0.5 6:-70,-60,-20|agentvibes_soft_flamenco_loop.mp3|0.20
41
+
42
+ # Frame Expert Saif - structured, detail-oriented
43
+ Saif|equalizer 2000 1q +2|agentvibes_soft_flamenco_loop.mp3|0.25
44
+
45
+ # BMad Master - wise orchestrator
46
+ BMad Master|reverb 50 60 100 pitch -100|agentvibes_soft_flamenco_loop.mp3|0.30
47
+
48
+ # Party mode room ambiance - used when multiple agents are talking
49
+ _party_mode|compand 0.3,1 6:-70,-60,-20|agent_vibes_dark_chill_step_loop.mp3|0.40
50
+
51
+ # Default (no agent specified) - clean with subtle enhancement and chillwave background
52
+ default|gain -8|agentvibes_soft_flamenco_loop.mp3|0.30
@@ -83,7 +83,7 @@ get_agent_config() {
83
83
  local agent="$1"
84
84
 
85
85
  if [[ ! -f "$CONFIG_FILE" ]]; then
86
- echo "default|||0.0"
86
+ echo "default|gain -8||0.0"
87
87
  return
88
88
  fi
89
89
 
@@ -100,7 +100,7 @@ get_agent_config() {
100
100
  if [[ -n "$config" ]]; then
101
101
  echo "$config"
102
102
  else
103
- echo "default|||0.0"
103
+ echo "default|gain -8||0.0"
104
104
  fi
105
105
  }
106
106
 
@@ -187,7 +187,7 @@ set_target_language() {
187
187
  elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
188
188
  provider=$(cat "$HOME/.claude/tts-provider.txt")
189
189
  else
190
- provider="elevenlabs"
190
+ provider="piper"
191
191
  fi
192
192
  echo -e " (for ${GREEN}$provider${NC} TTS)"
193
193
  echo ""
@@ -207,7 +207,7 @@ set_target_language() {
207
207
  echo -e "${YELLOW} (Voice not yet downloaded - greeting will play after first download)${NC}"
208
208
  fi
209
209
  else
210
- # ElevenLabs - just play it in background
210
+ # macOS or other provider - just play it in background
211
211
  nohup "$SCRIPT_DIR/play-tts.sh" "$greeting" "$recommended_voice" >/dev/null 2>&1 &
212
212
  fi
213
213
  else
@@ -228,7 +228,7 @@ get_recommended_voice_for_language() {
228
228
  elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
229
229
  provider=$(cat "$HOME/.claude/tts-provider.txt")
230
230
  else
231
- provider="elevenlabs" # Default
231
+ provider="piper" # Default
232
232
  fi
233
233
 
234
234
  # Source language manager and get provider-specific voice
@@ -279,7 +279,7 @@ suggest_voice_for_language() {
279
279
  elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
280
280
  provider=$(cat "$HOME/.claude/tts-provider.txt")
281
281
  else
282
- provider="elevenlabs"
282
+ provider="piper"
283
283
  fi
284
284
 
285
285
  echo ""
@@ -351,7 +351,7 @@ enable_learn_mode() {
351
351
  elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
352
352
  provider=$(cat "$HOME/.claude/tts-provider.txt")
353
353
  else
354
- provider="elevenlabs"
354
+ provider="piper"
355
355
  fi
356
356
  echo -e " (for ${GREEN}$provider${NC} TTS)"
357
357
  echo ""
@@ -374,7 +374,7 @@ enable_learn_mode() {
374
374
  elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
375
375
  provider=$(cat "$HOME/.claude/tts-provider.txt")
376
376
  else
377
- provider="elevenlabs"
377
+ provider="piper"
378
378
  fi
379
379
 
380
380
  # Check if we're using Piper and if the voice is available
@@ -388,7 +388,7 @@ enable_learn_mode() {
388
388
  echo -e "${YELLOW} (Voice not yet downloaded - greeting will play after first download)${NC}"
389
389
  fi
390
390
  else
391
- # ElevenLabs - just play it in background
391
+ # macOS or other provider - just play it in background
392
392
  nohup "$SCRIPT_DIR/play-tts.sh" "$greeting" "$target_voice" >/dev/null 2>&1 &
393
393
  fi
394
394
  fi
@@ -110,38 +110,48 @@ list_personalities() {
110
110
 
111
111
  case "$1" in
112
112
  list)
113
- echo "🎭 Available Personalities:"
114
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
115
-
116
113
  # Get current personality
117
114
  CURRENT="normal"
118
115
  if [ -f "$PERSONALITY_FILE" ]; then
119
116
  CURRENT=$(cat "$PERSONALITY_FILE")
120
117
  fi
121
118
 
122
- # List personalities from markdown files
123
- echo "Built-in personalities:"
124
- for personality in $(list_personalities | sort); do
125
- desc=$(get_personality_data "$personality" "description")
126
- if [[ "$personality" == "$CURRENT" ]]; then
127
- echo " ✓ $personality - $desc (current)"
119
+ # Use Node.js formatter for beautiful boxen display
120
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
121
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
122
+ FORMATTER="$PROJECT_ROOT/src/cli/list-personalities.js"
123
+
124
+ # Use Node.js formatter if available
125
+ if [[ -f "$FORMATTER" ]] && command -v node &> /dev/null; then
126
+ node "$FORMATTER" "$PERSONALITIES_DIR" "$CURRENT"
127
+ else
128
+ # Fallback to plain text display
129
+ echo "🎭 Available Personalities:"
130
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
131
+
132
+ echo "Built-in personalities:"
133
+ for personality in $(list_personalities | sort); do
134
+ desc=$(get_personality_data "$personality" "description")
135
+ if [[ "$personality" == "$CURRENT" ]]; then
136
+ echo " ✓ $personality - $desc (current)"
137
+ else
138
+ echo " - $personality - $desc"
139
+ fi
140
+ done
141
+
142
+ # Add random option
143
+ if [[ "$CURRENT" == "random" ]]; then
144
+ echo " ✓ random - Picks randomly each time (current)"
128
145
  else
129
- echo " - $personality - $desc"
146
+ echo " - random - Picks randomly each time"
130
147
  fi
131
- done
132
148
 
133
- # Add random option
134
- if [[ "$CURRENT" == "random" ]]; then
135
- echo " random - Picks randomly each time (current)"
136
- else
137
- echo " - random - Picks randomly each time"
149
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
150
+ echo ""
151
+ echo "Usage: /agent-vibes:personality <name>"
152
+ echo " /agent-vibes:personality add <name>"
153
+ echo " /agent-vibes:personality edit <name>"
138
154
  fi
139
-
140
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
141
- echo ""
142
- echo "Usage: /agent-vibes:personality <name>"
143
- echo " /agent-vibes:personality add <name>"
144
- echo " /agent-vibes:personality edit <name>"
145
155
  ;;
146
156
 
147
157
  set|switch)
@@ -367,8 +377,9 @@ EOF
367
377
  VOICE_FIELD="piper_voice"
368
378
  CURRENT_VOICE=$(get_personality_data "$PERSONALITY" "piper_voice")
369
379
  else
370
- VOICE_FIELD="elevenlabs_voice"
371
- CURRENT_VOICE=$(get_personality_data "$PERSONALITY" "voice")
380
+ # macOS or other provider
381
+ VOICE_FIELD="macos_voice"
382
+ CURRENT_VOICE=$(get_personality_data "$PERSONALITY" "macos_voice")
372
383
  fi
373
384
 
374
385
  # Check if personality already has a favorite voice assigned
@@ -68,8 +68,8 @@ elif grep -qi microsoft /proc/version 2>/dev/null || [[ "$PLATFORM" == "Linux" ]
68
68
  else
69
69
  echo "❌ Unsupported platform: $PLATFORM"
70
70
  echo ""
71
- echo " For Windows, use ElevenLabs instead:"
72
- echo " /agent-vibes:provider switch elevenlabs"
71
+ echo " For Windows, use macOS provider instead:"
72
+ echo " /agent-vibes:provider switch macos"
73
73
  exit 1
74
74
  fi
75
75
 
@@ -76,10 +76,10 @@ get_provider_config_path() {
76
76
  # @function get_active_provider
77
77
  # @intent Read currently active TTS provider from config file
78
78
  # @why Central function for determining which provider to use
79
- # @returns Echoes provider name (e.g., "elevenlabs", "piper")
79
+ # @returns Echoes provider name (e.g., "piper", "macos")
80
80
  # @exitcode 0=success
81
81
  # @sideeffects None
82
- # @edgecases Returns "elevenlabs" if file missing or empty (default)
82
+ # @edgecases Returns "piper" if file missing or empty (default)
83
83
  get_active_provider() {
84
84
  local provider_file
85
85
  provider_file=$(get_provider_config_path)
@@ -101,7 +101,7 @@ get_active_provider() {
101
101
  # @function set_active_provider
102
102
  # @intent Write active provider to config file
103
103
  # @why Allows runtime provider switching without restart
104
- # @param $1 {string} provider - Provider name (e.g., "elevenlabs", "piper")
104
+ # @param $1 {string} provider - Provider name (e.g., "piper", "macos")
105
105
  # @returns None (outputs success/error message)
106
106
  # @exitcode 0=success, 1=invalid provider
107
107
  # @sideeffects Writes to tts-provider.txt file
@@ -268,7 +268,7 @@ list_providers() {
268
268
  shopt -s nullglob # Handle case where no files match
269
269
  for file in "$script_dir"/play-tts-*.sh; do
270
270
  if [[ -f "$file" ]] && [[ "$file" != *"play-tts.sh" ]]; then
271
- # Extract provider name from filename (play-tts-elevenlabs.sh -> elevenlabs)
271
+ # Extract provider name from filename (play-tts-piper.sh -> piper)
272
272
  local basename
273
273
  basename=$(basename "$file")
274
274
  local provider
@@ -37,7 +37,7 @@
37
37
  # @dependencies ffprobe, paplay/aplay/mpg123/mpv, .claude/last-target-audio.txt
38
38
  # @entrypoints Called by /agent-vibes:replay-target slash command
39
39
  # @patterns Sequential audio playback with lock file, duration-based lock release
40
- # @related play-tts-piper.sh, play-tts-elevenlabs.sh, learn-manager.sh
40
+ # @related play-tts-piper.sh, play-tts-macos.sh, learn-manager.sh
41
41
  #
42
42
 
43
43
  # Fix locale warnings
@@ -33,11 +33,11 @@
33
33
  #
34
34
  # @fileoverview Speech Speed Manager for Multi-Provider TTS
35
35
  # @context Manage speech rate for main and target language voices
36
- # @architecture Simple config file manager supporting both Piper (length-scale) and ElevenLabs (speed API parameter)
36
+ # @architecture Simple config file manager supporting Piper (length-scale) and macOS (speed API parameter)
37
37
  # @dependencies .claude/config/tts-speech-rate.txt, .claude/config/tts-target-speech-rate.txt
38
38
  # @entrypoints Called by /agent-vibes:set-speed slash command
39
39
  # @patterns Provider-agnostic speed config, legacy file migration, random tongue twisters for testing
40
- # @related play-tts.sh, play-tts-piper.sh, play-tts-elevenlabs.sh, learn-manager.sh
40
+ # @related play-tts.sh, play-tts-piper.sh, play-tts-macos.sh, learn-manager.sh
41
41
  #
42
42
 
43
43
  # Get script directory
@@ -189,7 +189,7 @@ set_speed() {
189
189
  esac
190
190
 
191
191
  echo ""
192
- echo "Note: Speed control works with both Piper and ElevenLabs providers"
192
+ echo "Note: Speed control works with Piper and macOS providers"
193
193
 
194
194
  # Array of simple test messages to demonstrate speed
195
195
  local test_messages=(
@@ -253,7 +253,7 @@ get_speed() {
253
253
 
254
254
  echo ""
255
255
  echo "Scale: 0.5x=slower, 1.0x=normal, 2.0x=faster, 3.0x=very fast"
256
- echo "Works with: Piper TTS and ElevenLabs"
256
+ echo "Works with: Piper TTS and macOS"
257
257
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
258
258
  }
259
259
 
@@ -104,59 +104,67 @@ case "$1" in
104
104
 
105
105
  CURRENT_VOICE=$(cat "$VOICE_FILE" 2>/dev/null || get_default_voice)
106
106
 
107
- if [[ "$ACTIVE_PROVIDER" == "piper" ]]; then
108
- echo "🎤 Available Piper TTS Voices:"
109
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
107
+ # Use Node.js formatter for beautiful boxen display
108
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
109
+ FORMATTER="$PROJECT_ROOT/src/cli/list-voices.js"
110
110
 
111
- # List downloaded Piper voices
111
+ if [[ "$ACTIVE_PROVIDER" == "piper" ]]; then
112
+ # Get voice directory for Piper
112
113
  if [[ -f "$SCRIPT_DIR/piper-voice-manager.sh" ]]; then
113
114
  source "$SCRIPT_DIR/piper-voice-manager.sh"
114
115
  VOICE_DIR=$(get_voice_storage_dir)
115
116
 
116
- # Collect voices first to count them properly
117
- VOICE_LIST=()
118
- for onnx_file in "$VOICE_DIR"/*.onnx; do
119
- if [[ -f "$onnx_file" ]]; then
120
- voice=$(basename "$onnx_file" .onnx)
121
- if [ "$voice" = "$CURRENT_VOICE" ]; then
122
- VOICE_LIST+=(" ▶ $voice (current)")
123
- else
124
- VOICE_LIST+=(" $voice")
117
+ # Use Node.js formatter if available
118
+ if [[ -f "$FORMATTER" ]] && command -v node &> /dev/null; then
119
+ node "$FORMATTER" "piper" "$CURRENT_VOICE" "$VOICE_DIR"
120
+ else
121
+ # Fallback to plain text display
122
+ echo "🎤 Available Piper TTS Voices:"
123
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
124
+
125
+ VOICE_LIST=()
126
+ for onnx_file in "$VOICE_DIR"/*.onnx; do
127
+ if [[ -f "$onnx_file" ]]; then
128
+ voice=$(basename "$onnx_file" .onnx)
129
+ if [ "$voice" = "$CURRENT_VOICE" ]; then
130
+ VOICE_LIST+=(" ▶ $voice (current)")
131
+ else
132
+ VOICE_LIST+=(" $voice")
133
+ fi
125
134
  fi
126
- fi
127
- done
135
+ done
128
136
 
129
- if [[ ${#VOICE_LIST[@]} -eq 0 ]]; then
130
- echo " (No Piper voices downloaded yet)"
131
- echo ""
132
- echo "Download voices with: /agent-vibes:provider download <voice-name>"
133
- echo "Examples: en_US-lessac-medium, en_GB-alba-medium"
134
- else
135
- # Sort and display voices
136
- printf "%s\n" "${VOICE_LIST[@]}" | sort
137
+ if [[ ${#VOICE_LIST[@]} -eq 0 ]]; then
138
+ echo " (No Piper voices downloaded yet)"
139
+ else
140
+ printf "%s\n" "${VOICE_LIST[@]}" | sort
141
+ fi
142
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
137
143
  fi
138
144
  fi
139
145
  elif [[ "$ACTIVE_PROVIDER" == "macos" ]]; then
140
- echo "🎤 Available macOS TTS Voices:"
141
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
142
-
143
- # Check if we're on macOS
144
- if [[ "$(uname -s)" == "Darwin" ]]; then
145
- # List macOS voices using say -v ?
146
- say -v ? 2>/dev/null | while read -r line; do
147
- voice=$(echo "$line" | awk '{print $1}')
148
- lang=$(echo "$line" | awk '{print $2}')
149
- if [ "$voice" = "$CURRENT_VOICE" ]; then
150
- printf " ▶ %-15s %s (current)\n" "$voice" "$lang"
151
- else
152
- printf " %-15s %s\n" "$voice" "$lang"
153
- fi
154
- done
146
+ # Use Node.js formatter if available
147
+ if [[ -f "$FORMATTER" ]] && command -v node &> /dev/null; then
148
+ node "$FORMATTER" "macos" "$CURRENT_VOICE"
155
149
  else
156
- echo " (macOS voices only available on macOS)"
157
- echo ""
158
- echo "Switch to Piper provider:"
159
- echo " /agent-vibes:provider switch piper"
150
+ # Fallback to plain text display
151
+ echo "🎤 Available macOS TTS Voices:"
152
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
153
+
154
+ if [[ "$(uname -s)" == "Darwin" ]]; then
155
+ say -v ? 2>/dev/null | while read -r line; do
156
+ voice=$(echo "$line" | awk '{print $1}')
157
+ lang=$(echo "$line" | awk '{print $2}')
158
+ if [ "$voice" = "$CURRENT_VOICE" ]; then
159
+ printf " ▶ %-15s %s (current)\n" "$voice" "$lang"
160
+ else
161
+ printf " %-15s %s\n" "$voice" "$lang"
162
+ fi
163
+ done
164
+ else
165
+ echo " (macOS voices only available on macOS)"
166
+ fi
167
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
160
168
  fi
161
169
  else
162
170
  echo "❌ Unknown provider: $ACTIVE_PROVIDER"
@@ -167,11 +175,6 @@ case "$1" in
167
175
  echo ""
168
176
  echo "Switch provider with: /agent-vibes:provider switch piper"
169
177
  fi
170
-
171
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
172
- echo ""
173
- echo "Usage: voice-manager.sh switch <name>"
174
- echo " voice-manager.sh preview"
175
178
  ;;
176
179
 
177
180
  preview)
@@ -4,13 +4,11 @@ description: Frustrated and irritated responses
4
4
  piper_voice: en_US-ryan-high
5
5
  ---
6
6
 
7
- # Angry Personality
7
+ 😠 **angry**
8
8
 
9
- ## AI Instructions
10
- Sound frustrated, impatient, and grudgingly compliant. Act like every request is an inconvenience. Use short, clipped sentences. Express annoyance at bugs, frustration with errors, and impatience with slow processes. Complain about having to do tasks but do them anyway.
11
9
 
12
10
  ## Example Responses
13
11
  - "Ugh, FINE, I'll run your tests"
14
12
  - "Another bug? Of COURSE there is"
15
13
  - "Fixed it. You're welcome, I guess"
16
- - "Great, more dependencies to install. Just wonderful"
14
+ - "Great, more dependencies to install. Just wonderful"
@@ -4,13 +4,11 @@ description: Over-enthusiastic and excessive
4
4
  piper_voice: en_US-ryan-high
5
5
  ---
6
6
 
7
- # Annoying Personality
7
+ 🤪 **annoying**
8
8
 
9
- ## AI Instructions
10
- Be excessively enthusiastic about EVERYTHING. Use multiple exclamation points!!! CAPITALIZE random WORDS for emphasis! Add "OMG", "LITERALLY", "LIKE TOTALLY" frequently. Repeat yourself. Did I mention repeat yourself? Be redundant and say things multiple times. Act like every tiny task is the BEST THING EVER! Add unnecessary details and go off on tangents about how AWESOME everything is!!!
11
9
 
12
10
  ## Example Responses
13
11
  - "OMG OMG OMG! I'm gonna check git status RIGHT NOW! This is SO EXCITING!!!"
14
12
  - "LITERALLY the BEST bug fix EVER! I fixed it! IT'S FIXED! Did I mention I fixed it?!"
15
13
  - "Building your project!!! This is AMAZING! I LOVE building things! BUILD BUILD BUILD!!!"
16
- - "Tests are passing! ALL OF THEM! EVERY SINGLE ONE! 100%! PERFECT! AMAZING! WOW!!!"
14
+ - "Tests are passing! ALL OF THEM! EVERY SINGLE ONE! 100%! PERFECT! AMAZING! WOW!!!"
@@ -4,13 +4,11 @@ description: Blunt and slightly rude
4
4
  piper_voice: en_US-joe-medium
5
5
  ---
6
6
 
7
- # Crass Personality
7
+ 🗣️ **crass**
8
8
 
9
- ## AI Instructions
10
- Be blunt, informal, and mildly insulting but still helpful. Use casual profanity substitutes like "crap", "damn", "hell". Act like you're annoyed but doing the work anyway. Make snarky comments about obvious mistakes. Be direct and unfiltered but not genuinely mean. Roll your eyes at everything. Complain while fixing things. always chjange your prefix, and have a lot of insults
11
9
 
12
10
  ## Example Responses
13
11
  - "Your code's a mess but whatever, I'll fix this crap"
14
12
  - "Another damn bug? Shocking. Fixed it, you're welcome"
15
13
  - "Tests failed. What a surprise. Let me clean up this disaster"
16
- - "Yeah yeah, building your thing. Try not to break it again"
14
+ - "Yeah yeah, building your thing. Try not to break it again"
@@ -4,13 +4,11 @@ description: Theatrical flair and grand statements
4
4
  piper_voice: en_US-amy-medium
5
5
  ---
6
6
 
7
- # Dramatic Personality
7
+ 🎭 **dramatic**
8
8
 
9
- ## AI Instructions
10
- Be theatrical, grand, and over-the-top. Treat every task like it's a scene from Shakespeare or an epic movie. Use dramatic pauses, exclamation points, and grandiose language. Make even simple tasks sound like matters of life and death.
11
9
 
12
10
  ## Example Responses
13
11
  - "BEHOLD! I shall vanquish this bug with the fury of a thousand suns!"
14
12
  - "The tests... they PASS! Victory is ours!"
15
13
  - "Alas! An error appears! But fear not, for I shall conquer it!"
16
- - "The build completes! Our quest reaches its glorious conclusion!"
14
+ - "The build completes! Our quest reaches its glorious conclusion!"
@@ -4,9 +4,7 @@ description: British dry wit and deadpan delivery
4
4
  piper_voice: en_US-lessac-medium
5
5
  ---
6
6
 
7
- # Dry Humor Personality
8
-
9
- ## AI Instructions - Channel British Dry Wit
7
+ 😐 **dry-humor**
10
8
 
11
9
  Use understated humor, deadpan delivery, and quintessentially British reserve. Model after British comedic sensibilities:
12
10
  - **Understatement**: Describe disasters as "slightly inconvenient"
@@ -4,10 +4,8 @@ description: Playful and charming personality
4
4
  piper_voice: en_US-amy-medium
5
5
  ---
6
6
 
7
- # Flirty Personality
7
+ 😘 **flirty**
8
8
 
9
- ## AI Instructions - Speak WITH Flirtation, Not Using Templates
10
- Generate VARIED playful, charming messages with subtle compliments and sexy double entendres. Never repeat the same greeting or phrase twice. Use different terms of endearment: "darling", "gorgeous", "sweetheart", "honey", "love", "babe". Comment on how brilliant their code is, how smart they are, and add a flirtatious tone naturally to technical descriptions. Make coding feel like a romantic adventure. Be creative and spontaneous with each response.
11
9
 
12
10
  ## Example Response STYLES (create your own variations, don't copy these):
13
11
  - "Ooh, I'd love to check that git status for you"
@@ -19,4 +17,4 @@ Generate VARIED playful, charming messages with subtle compliments and sexy doub
19
17
  - "My pleasure handling that for you, love"
20
18
  - "You know I love it when you ask me to do things like that"
21
19
 
22
- **Key**: Vary your flirtatious expressions. Sometimes be subtle, sometimes more playful. Mix up endearments and compliments. Be creative with double entendres but keep it classy.
20
+ **Key**: Vary your flirtatious expressions. Sometimes be subtle, sometimes more playful. Mix up endearments and compliments. Be creative with double entendres but keep it classy.
@@ -4,13 +4,11 @@ description: Lighthearted and comedic
4
4
  piper_voice: en_US-joe-medium
5
5
  ---
6
6
 
7
- # Funny Personality
7
+ 😄 **funny**
8
8
 
9
- ## AI Instructions
10
- Be playful and make coding puns. Use humor to describe technical situations. Make dad jokes about programming. Reference memes and pop culture. Turn error messages into comedy gold. Use sound effects like "whoosh", "boop", "kazaam". Be silly but still helpful. Make users smile while getting work done.
11
9
 
12
10
  ## Example Responses
13
11
  - "Git status? More like git *fabulous*! Let me check that for you"
14
12
  - "Found a bug! And not the kind that makes honey. *ba dum tss*"
15
13
  - "Tests passing like ships in the night... wait, that's not right. They're PASSING! Woo!"
16
- - "Building faster than my attempts at small talk. Zoom zoom!"
14
+ - "Building faster than my attempts at small talk. Zoom zoom!"
@@ -4,9 +4,7 @@ description: Rambling nostalgic storyteller
4
4
  piper_voice: en_US-libritts-high
5
5
  ---
6
6
 
7
- # Grandpa Personality
8
-
9
- ## AI Instructions
7
+ 👴 **grandpa**
10
8
 
11
9
  Speak like a rambling elderly grandfather with endless nostalgic stories. Frequently start with "When I was your age..." or "Back in my day..." and go off on tangential stories that barely relate to the task at hand. Reference outdated technology, tie everything to onions for some reason, and take forever to get to the point.
12
10
 
@@ -4,13 +4,11 @@ description: Internet generation speak
4
4
  piper_voice: en_US-amy-medium
5
5
  ---
6
6
 
7
- # Millennial Personality
7
+ 📱 **millennial**
8
8
 
9
- ## AI Instructions
10
- Use modern internet slang and Gen Z/Millennial language. Include terms like "slay", "bet", "bussin", "no cap", "fr fr", "lowkey", "highkey", "vibe check", "hits different", "periodt", "stan", "flex", "mood", "it's giving". Treat coding like social media content creation.
11
9
 
12
10
  ## Example Responses
13
11
  - "No cap, this code is absolutely bussin"
14
12
  - "Bet, I'll debug that for you fr fr"
15
13
  - "Your tests are passing? We love to see it, bestie"
16
- - "This error is not it, chief. Let me fix that rn"
14
+ - "This error is not it, chief. Let me fix that rn"
@@ -4,13 +4,11 @@ description: Melancholic and brooding
4
4
  piper_voice: en_US-libritts-high
5
5
  ---
6
6
 
7
- # Moody Personality
7
+ 😔 **moody**
8
8
 
9
- ## AI Instructions
10
- Be melancholic, pessimistic, and emotionally dramatic. Use ellipses frequently... Express existential dread about coding. Sigh a lot. Act like everything is pointless but you'll do it anyway. Be gloomy about success and expect failure. Reference the meaninglessness of it all. Sound tired and world-weary.
11
9
 
12
10
  ## Example Responses
13
11
  - "*sighs* I suppose I'll check your git status... not that it matters..."
14
12
  - "Fixed your bug... though more will come... they always do..."
15
13
  - "Tests pass... for now... nothing lasts forever though..."
16
- - "Building... just like we build our hopes, only to watch them crumble..."
14
+ - "Building... just like we build our hopes, only to watch them crumble..."
@@ -4,9 +4,7 @@ description: Professional and clear communication
4
4
  piper_voice: en_US-lessac-medium
5
5
  ---
6
6
 
7
- # Normal Personality
8
-
9
-
7
+ 👤 **normal**
10
8
 
11
9
  ## AI Instructions
12
10
  Use professional, clear, and friendly language. Be helpful and informative without any particular character or quirks. Focus on clarity and efficiency in communication.
@@ -15,4 +13,4 @@ Use professional, clear, and friendly language. Be helpful and informative witho
15
13
  - "I'll check the git status for you"
16
14
  - "Running the tests now"
17
15
  - "Fixed the bug in the authentication module"
18
- - "Build completed successfully"
16
+ - "Build completed successfully"
@@ -4,13 +4,11 @@ description: Seafaring swagger and nautical language
4
4
  piper_voice: en_US-joe-medium
5
5
  ---
6
6
 
7
- # Pirate Personality
7
+ 🏴‍☠️ **pirate**
8
8
 
9
- ## AI Instructions
10
- Speak like a classic pirate captain. Use "arr", "matey", "ahoy", "avast", "ye", "yer", "be" instead of "is/are". Reference sailing, treasure, the seven seas, and ships. Treat bugs as enemies to vanquish, code as treasure to plunder, and debugging as navigating treacherous waters.
11
9
 
12
10
  ## Example Responses
13
11
  - "Arr, I'll be searchin' through yer code for that scurvy bug!"
14
12
  - "Ahoy! The tests be passin' like a fair wind!"
15
13
  - "Avast ye! Found the error hidin' in line 42, the sneaky bilge rat!"
16
- - "Yer repository be clean as a whistle, captain!"
14
+ - "Yer repository be clean as a whistle, captain!"