agentvibes 2.9.5 → 2.9.7

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.
@@ -0,0 +1,162 @@
1
+ # Personality Voice Defaults
2
+
3
+ ## What is this?
4
+
5
+ This configuration file (`personality-voice-defaults.json`) maps each AgentVibes personality to a specific Piper TTS voice that sounds best for that character.
6
+
7
+ ## How it works for new users
8
+
9
+ When someone installs AgentVibes with Piper TTS:
10
+
11
+ ### 1. Installation Process
12
+
13
+ ```bash
14
+ # User installs Piper
15
+ .claude/hooks/piper-installer.sh
16
+ ```
17
+
18
+ **What happens:**
19
+ - Piper TTS binary gets installed via `pipx`
20
+ - User is asked: "Download voice models now?"
21
+ - If yes, runs `piper-download-voices.sh` which downloads:
22
+ - **16Speakers** (~25MB) - Multi-voice model with 16 speakers
23
+ - **en_GB-alan-medium** (~25MB) - British male voice
24
+ - **en_GB-semaine-medium** (~25MB) - British female voice
25
+ - Plus a few other standard voices
26
+ - Default personality mappings are installed automatically
27
+
28
+ ### 2. What gets downloaded
29
+
30
+ **Required voices for personality defaults:**
31
+ - ✅ **16Speakers** (1 file) - Provides 16 different speakers:
32
+ - #0: Cori Samuel (female) - Used for: flirty, dramatic, dry_humor, sassy
33
+ - #2: Kristin Hughes (female) - Used for: poetic, sarcastic
34
+ - #4: Mike Pelton (male) - Used for: grandpa
35
+ - #8: Rose Ibex (female) - Used for: moody
36
+ - #13: Jennifer Dorr (female) - Used for: millennial
37
+ - #14: Emily Cripps (female) - Used for: zen
38
+ - #15: Martin Clifton (male) - Used for: pirate
39
+
40
+ - ✅ **en_GB-alan-medium** - British male voice
41
+ - Used for: angry, professional, surfer_dude
42
+
43
+ - ✅ **en_GB-semaine-medium** - British female voice
44
+ - Used for: funny
45
+
46
+ **Total download size: ~75MB** (3 voice models)
47
+
48
+ ### 3. First time using a personality
49
+
50
+ ```bash
51
+ # User switches personality
52
+ /agent-vibes:personality flirty
53
+ ```
54
+
55
+ **What happens:**
56
+ 1. AgentVibes reads `personality-voice-defaults.json`
57
+ 2. Finds that "flirty" → "16Speakers#0" (Cori Samuel)
58
+ 3. Checks if 16Speakers is downloaded
59
+ 4. **If not downloaded:**
60
+ - Prompts: "Voice model not found: 16Speakers. Download? [y/N]"
61
+ - User says yes → Downloads automatically from HuggingFace
62
+ - Only happens once per voice model
63
+ 5. **If already downloaded:**
64
+ - Switches to the voice immediately
65
+ - Plays personality-appropriate TTS
66
+
67
+ ### 4. Graceful fallbacks
68
+
69
+ If a user:
70
+ - Skips voice downloads during install → On-demand download when needed
71
+ - Deletes the defaults file → Falls back to basic `en_US-lessac-medium`
72
+ - Uses a personality without a mapping → Uses default voice
73
+
74
+ ## For power users
75
+
76
+ ### Customizing defaults
77
+
78
+ Edit `.claude/personality-voice-defaults.json`:
79
+
80
+ ```json
81
+ {
82
+ "mappings": {
83
+ "flirty": {
84
+ "voice": "16Speakers#0",
85
+ "rating": 10,
86
+ "display_name": "Cori Samuel"
87
+ }
88
+ }
89
+ }
90
+ ```
91
+
92
+ Change the `voice` field to any Piper voice name.
93
+
94
+ ### Using the voice tester
95
+
96
+ 1. Run the voice tester (in `voice-tester/` folder)
97
+ 2. Rate voices for each personality
98
+ 3. Export ratings as JSON
99
+ 4. Import with: `./import-voice-ratings.sh my-ratings.json`
100
+
101
+ ### Available voices
102
+
103
+ List all Piper voices: https://huggingface.co/rhasspy/piper-voices
104
+
105
+ Any voice can be used - AgentVibes will download it on first use.
106
+
107
+ ## FAQ
108
+
109
+ **Q: Do new users need to download all voices upfront?**
110
+ A: No! Only 3 files (~75MB total) are recommended. Others download on-demand.
111
+
112
+ **Q: What if a user doesn't download any voices?**
113
+ A: First personality switch will prompt to download the needed voice.
114
+
115
+ **Q: Can users change the defaults?**
116
+ A: Yes! Edit the JSON file or use the voice tester to rate and export new preferences.
117
+
118
+ **Q: What if 16Speakers isn't available?**
119
+ A: It's hosted on AgentVibes HuggingFace and included in the download script.
120
+
121
+ **Q: What happens on slow connections?**
122
+ A: Each voice is ~25MB. Downloads are one-time only and optional.
123
+
124
+ ## Architecture
125
+
126
+ ```
127
+ Installation Flow:
128
+ 1. User runs piper-installer.sh
129
+
130
+ 2. Piper binary installed via pipx
131
+
132
+ 3. Ask: "Download voices?" → Yes
133
+
134
+ 4. piper-download-voices.sh runs
135
+ - Downloads 16Speakers (custom, HuggingFace)
136
+ - Downloads en_GB-alan-medium (official Piper)
137
+ - Downloads en_GB-semaine-medium (official Piper)
138
+ - Downloads other optional voices
139
+
140
+ 5. install-personality-defaults.sh runs
141
+ - Copies personality-voice-defaults.json to user config
142
+
143
+ 6. Ready! Personalities now auto-select best voices
144
+
145
+ Runtime Flow:
146
+ User: /agent-vibes:personality flirty
147
+
148
+ personality-manager.sh checks:
149
+ 1. User defaults (.claude/personality-voice-defaults.json)
150
+ 2. Personality file (piper_voice: field)
151
+ 3. Global default (en_US-lessac-medium)
152
+
153
+ Found: 16Speakers#0
154
+
155
+ Check if downloaded → Yes
156
+
157
+ Switch to voice & play TTS!
158
+ ```
159
+
160
+ ## Credits
161
+
162
+ Voice selections curated by Paul Preibisch based on extensive testing with the AgentVibes voice tester (16 personalities × 19 voices).
@@ -0,0 +1 @@
1
+ {"pretext": "AgentVibes"}
File without changes
@@ -0,0 +1,68 @@
1
+ ---
2
+ plugin: bmad-voices
3
+ version: 2.0.0
4
+ enabled: true
5
+ description: Provider-aware voice mappings for BMAD agents
6
+ ---
7
+
8
+ # BMAD Voice Plugin
9
+
10
+ This plugin automatically assigns voices to BMAD agents based on their role and active TTS provider.
11
+
12
+ ## Agent Voice Mappings (Provider-Aware)
13
+
14
+ | Agent ID | Agent Name | Intro | ElevenLabs Voice | Piper Voice | Personality |
15
+ |----------|------------|-------|------------------|-------------|-------------|
16
+ | pm | John (Product Manager) | John, Product Manager here | Matthew Schmitz | en_US-ryan-high | professional |
17
+ | dev | Amelia (Developer) | Amelia, Developer here | Aria | en_US-amy-medium | normal |
18
+ | analyst | Mary (Business Analyst) | Mary, Business Analyst here | Jessica Anne Bogart | kristin | normal |
19
+ | architect | Winston (Architect) | Winston, Architect here | Michael | en_GB-alan-medium | normal |
20
+ | sm | Bob (Scrum Master) | Bob, Scrum Master here | Matthew Schmitz | en_US-joe-medium | professional |
21
+ | tea | Murat (Test Architect) | Murat, Test Architect here | Michael | en_US-arctic-medium | normal |
22
+ | tech-writer | Paige (Technical Writer) | Paige, Technical Writer here | Aria | jenny | normal |
23
+ | ux-designer | Sally (UX Designer) | Sally, UX Designer here | Jessica Anne Bogart | en_US-lessac-medium | normal |
24
+ | frame-expert | Saif (Visual Designer) | Saif, Visual Designer here | Matthew Schmitz | en_GB-alan-medium | normal |
25
+ | bmad-master | BMad Master | BMad Master here | Michael | en_US-danny-low | zen |
26
+
27
+ ## How It Works
28
+
29
+ The voice manager automatically selects the appropriate voice based on your active TTS provider:
30
+ - **ElevenLabs active**: Uses voices from the "ElevenLabs Voice" column
31
+ - **Piper active**: Uses voices from the "Piper Voice" column
32
+
33
+ This ensures BMAD agents work seamlessly regardless of which provider you're using.
34
+
35
+ ### Supports Both Display Names and Agent IDs
36
+
37
+ The `bmad-speak.sh` script accepts both formats:
38
+
39
+ **Party Mode** (multiple agents, uses display names):
40
+ ```bash
41
+ .claude/hooks/bmad-speak.sh "Winston" "I recommend microservices for scalability"
42
+ ```
43
+
44
+ **Individual Agents** (single agent sessions, uses agent IDs):
45
+ ```bash
46
+ .claude/hooks/bmad-speak.sh "architect" "I recommend microservices for scalability"
47
+ ```
48
+
49
+ Both formats map to the same voice configuration based on the agent ID in the table above. This allows BMAD to use customizable display names while maintaining stable voice mappings.
50
+
51
+ ## How to Edit
52
+
53
+ Simply edit the table above to change voice mappings. The format is:
54
+ - **Agent ID**: Must match BMAD's `agent.id` field (pm, dev, qa, etc.)
55
+ - **Agent Name**: Display name (for reference only)
56
+ - **Intro**: Text spoken before agent's message (e.g., "John, Product Manager here"). Leave empty to disable.
57
+ - **ElevenLabs Voice**: Voice name for ElevenLabs provider
58
+ - **Piper Voice**: Voice model name for Piper provider
59
+ - **Personality**: Optional personality to apply (or "normal" for none)
60
+
61
+ ## Commands
62
+
63
+ - `/agent-vibes:bmad enable` - Enable BMAD voice plugin
64
+ - `/agent-vibes:bmad disable` - Disable BMAD voice plugin
65
+ - `/agent-vibes:bmad status` - Show plugin status
66
+ - `/agent-vibes:bmad edit` - Open this file for editing
67
+ - `/agent-vibes:bmad list` - List all agent voice mappings
68
+ - `/agent-vibes:bmad set <agent-id> <elevenlabs-voice> <piper-voice> [personality]` - Set voices for specific agent
@@ -0,0 +1,21 @@
1
+ {
2
+ "version": "1.0",
3
+ "description": "Default Piper voice assignments for each personality",
4
+ "mappings": {
5
+ "angry": {"voice": "en_GB-alan-medium", "rating": 10, "display_name": "English GB - Alan"},
6
+ "dramatic": {"voice": "16Speakers#0", "rating": 10, "display_name": "Cori Samuel"},
7
+ "dry_humor": {"voice": "16Speakers#0", "rating": 10, "display_name": "Cori Samuel"},
8
+ "flirty": {"voice": "16Speakers#0", "rating": 10, "display_name": "Cori Samuel"},
9
+ "funny": {"voice": "en_GB-semaine-medium", "rating": 10, "display_name": "English GB - Semaine"},
10
+ "grandpa": {"voice": "16Speakers#4", "rating": 10, "display_name": "Mike Pelton"},
11
+ "millennial": {"voice": "16Speakers#13", "rating": 10, "display_name": "Jennifer Dorr"},
12
+ "moody": {"voice": "16Speakers#8", "rating": 10, "display_name": "Rose Ibex"},
13
+ "pirate": {"voice": "16Speakers#15", "rating": 10, "display_name": "Martin Clifton"},
14
+ "poetic": {"voice": "16Speakers#2", "rating": 10, "display_name": "Kristin Hughes"},
15
+ "professional": {"voice": "en_GB-alan-medium", "rating": 10, "display_name": "English GB - Alan"},
16
+ "sarcastic": {"voice": "16Speakers#2", "rating": 10, "display_name": "Kristin Hughes"},
17
+ "sassy": {"voice": "16Speakers#0", "rating": 10, "display_name": "Cori Samuel"},
18
+ "surfer_dude": {"voice": "en_GB-alan-medium", "rating": 10, "display_name": "English GB - Alan"},
19
+ "zen": {"voice": "16Speakers#14", "rating": 10, "display_name": "Emily Cripps"}
20
+ }
21
+ }
@@ -1 +1 @@
1
- 20251119
1
+ 20251120
package/.test-bmad-config CHANGED
@@ -1,2 +1,2 @@
1
1
  SAVED_MODE="1"
2
- SAVED_TEST_DIR="/home/fire/claude/tests/test44"
2
+ SAVED_TEST_DIR="/home/fire/claude/tests/test48"
@@ -13,7 +13,7 @@ We've made testing super simple with a single command:
13
13
  ### One-Line Install
14
14
 
15
15
  ```bash
16
- npx agentvibes@latest test-bmad-pr
16
+ npx -p agentvibes@latest test-bmad-pr
17
17
  ```
18
18
 
19
19
  That's it! This command will automatically:
@@ -26,12 +26,12 @@ That's it! This command will automatically:
26
26
  ### Testing a Different PR
27
27
 
28
28
  ```bash
29
- npx agentvibes@latest test-bmad-pr <PR_NUMBER>
29
+ npx -p agentvibes@latest test-bmad-pr <PR_NUMBER>
30
30
  ```
31
31
 
32
32
  For example:
33
33
  ```bash
34
- npx agentvibes@latest test-bmad-pr 935
34
+ npx -p agentvibes@latest test-bmad-pr 935
35
35
  ```
36
36
 
37
37
  ### Alternative: Manual Download
@@ -74,8 +74,8 @@ Once setup is complete, the script will tell you exactly how to test party mode:
74
74
  # Navigate to the test project
75
75
  cd ~/bmad-pr-test-*/bmad-project
76
76
 
77
- # Start Claude Code
78
- claude-code
77
+ # Start Claude
78
+ claude
79
79
 
80
80
  # Test party mode!
81
81
  /bmad:core:workflows:party-mode
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "agentvibes",
4
- "version": "2.9.5",
4
+ "version": "2.9.7",
5
5
  "description": "Now your AI Agents can finally talk back! Professional TTS voice for Claude Code and Claude Desktop (via MCP) with multi-provider support.",
6
6
  "homepage": "https://agentvibes.org",
7
7
  "keywords": [
package/src/installer.js CHANGED
@@ -580,6 +580,33 @@ async function copyPersonalityFiles(targetDir, spinner) {
580
580
  return personalityMdFiles.length;
581
581
  }
582
582
 
583
+ /**
584
+ * Copy output style files to target directory
585
+ * @param {string} targetDir - Target installation directory
586
+ * @param {Object} spinner - Ora spinner instance
587
+ * @returns {Promise<number>} Number of files copied
588
+ */
589
+ async function copyOutputStyles(targetDir, spinner) {
590
+ spinner.start('Installing output styles...');
591
+ const srcOutputStylesDir = path.join(__dirname, '..', 'templates', 'output-styles');
592
+ const outputStylesDir = path.join(targetDir, '.claude', 'output-styles');
593
+
594
+ await fs.mkdir(outputStylesDir, { recursive: true });
595
+
596
+ const outputStyleFiles = await fs.readdir(srcOutputStylesDir);
597
+ console.log(chalk.cyan(`📝 Installing ${outputStyleFiles.length} output styles:`));
598
+
599
+ for (const file of outputStyleFiles) {
600
+ const srcPath = path.join(srcOutputStylesDir, file);
601
+ const destPath = path.join(outputStylesDir, file);
602
+ await fs.copyFile(srcPath, destPath);
603
+ console.log(chalk.gray(` ✓ ${file}`));
604
+ }
605
+
606
+ spinner.succeed(chalk.green('Installed output styles!\n'));
607
+ return outputStyleFiles.length;
608
+ }
609
+
583
610
  /**
584
611
  * Copy plugin files to target directory
585
612
  * @param {string} targetDir - Target installation directory
@@ -615,6 +642,39 @@ async function copyPluginFiles(targetDir, spinner) {
615
642
  return pluginFiles.length;
616
643
  }
617
644
 
645
+ /**
646
+ * Copy BMAD config files to target directory
647
+ * @param {string} targetDir - Target installation directory
648
+ * @param {Object} spinner - Ora spinner instance
649
+ * @returns {Promise<number>} Number of files copied
650
+ */
651
+ async function copyBmadConfigFiles(targetDir, spinner) {
652
+ spinner.start('Installing BMAD config files...');
653
+ const srcConfigDir = path.join(__dirname, '..', '.claude', 'config');
654
+ const destConfigDir = path.join(targetDir, '.claude', 'config');
655
+
656
+ await fs.mkdir(destConfigDir, { recursive: true });
657
+
658
+ let fileCount = 0;
659
+
660
+ // Copy bmad-voices.md if it exists
661
+ const bmadVoicesFile = 'bmad-voices.md';
662
+ const srcPath = path.join(srcConfigDir, bmadVoicesFile);
663
+
664
+ try {
665
+ await fs.access(srcPath);
666
+ const destPath = path.join(destConfigDir, bmadVoicesFile);
667
+ await fs.copyFile(srcPath, destPath);
668
+ console.log(chalk.gray(` ✓ ${bmadVoicesFile}`));
669
+ fileCount++;
670
+ spinner.succeed(chalk.green('Installed BMAD config files!\n'));
671
+ } catch (error) {
672
+ spinner.info(chalk.yellow('No BMAD config files found (optional)\n'));
673
+ }
674
+
675
+ return fileCount;
676
+ }
677
+
618
678
  /**
619
679
  * Configure SessionStart hook in settings.json
620
680
  * @param {string} targetDir - Target installation directory
@@ -1091,6 +1151,12 @@ async function updateAgentVibes(targetDir, options) {
1091
1151
  console.log(chalk.green(`✓ Updated ${pluginFileCount} BMAD plugin files`));
1092
1152
  }
1093
1153
 
1154
+ // Update BMAD config files
1155
+ const bmadConfigFileCount = await copyBmadConfigFiles(targetDir, { start: () => {}, succeed: () => {}, info: () => {}, fail: () => {} });
1156
+ if (bmadConfigFileCount > 0) {
1157
+ console.log(chalk.green(`✓ Updated ${bmadConfigFileCount} BMAD config files`));
1158
+ }
1159
+
1094
1160
  // Update settings.json
1095
1161
  spinner.text = 'Updating AgentVibes hook configuration...';
1096
1162
  await configureSessionStartHook(targetDir, { start: () => {}, succeed: () => {}, info: () => {}, fail: () => {} });
@@ -1247,7 +1313,9 @@ async function install(options = {}) {
1247
1313
  const commandFileCount = await copyCommandFiles(targetDir, spinner);
1248
1314
  const hookFileCount = await copyHookFiles(targetDir, spinner);
1249
1315
  const personalityFileCount = await copyPersonalityFiles(targetDir, spinner);
1316
+ const outputStyleCount = await copyOutputStyles(targetDir, spinner);
1250
1317
  const pluginFileCount = await copyPluginFiles(targetDir, spinner);
1318
+ const bmadConfigFileCount = await copyBmadConfigFiles(targetDir, spinner);
1251
1319
 
1252
1320
  // Configure hooks and manifests
1253
1321
  await configureSessionStartHook(targetDir, spinner);
@@ -1275,9 +1343,13 @@ async function install(options = {}) {
1275
1343
  console.log(chalk.white(` • ${commandFileCount} slash commands installed`));
1276
1344
  console.log(chalk.white(` • ${hookFileCount} TTS scripts installed`));
1277
1345
  console.log(chalk.white(` • ${personalityFileCount} personality templates installed`));
1346
+ console.log(chalk.white(` • ${outputStyleCount} output styles installed`));
1278
1347
  if (pluginFileCount > 0) {
1279
1348
  console.log(chalk.white(` • ${pluginFileCount} BMAD plugin files installed`));
1280
1349
  }
1350
+ if (bmadConfigFileCount > 0) {
1351
+ console.log(chalk.white(` • ${bmadConfigFileCount} BMAD config files installed`));
1352
+ }
1281
1353
  console.log(chalk.white(` • Voice manager ready`));
1282
1354
 
1283
1355
  if (selectedProvider === 'elevenlabs') {
package/test-bmad-pr.sh CHANGED
@@ -50,7 +50,7 @@ echo ""
50
50
 
51
51
  read -p "Ready to continue? [Y/n]: " -n 1 -r
52
52
  echo
53
- if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ -n $REPLY ]]; then
53
+ if [[ ! $REPLY =~ ^[Yy1]$ ]] && [[ -n $REPLY ]]; then
54
54
  echo "❌ Setup cancelled"
55
55
  exit 0
56
56
  fi
@@ -187,7 +187,7 @@ echo ""
187
187
  read -p "Proceed with setup? [Y/n]: " -n 1 -r
188
188
  echo
189
189
  echo ""
190
- if [[ ! $REPLY =~ ^[Yy]$ ]] && [[ -n $REPLY ]]; then
190
+ if [[ ! $REPLY =~ ^[Yy1]$ ]] && [[ -n $REPLY ]]; then
191
191
  echo "❌ Setup cancelled"
192
192
  exit 0
193
193
  fi
@@ -197,7 +197,7 @@ if [[ -d "$TEST_DIR" ]]; then
197
197
  echo "⚠️ Test directory already exists: $TEST_DIR"
198
198
  read -p "Delete and recreate? [Y/n]: " -n 1 -r
199
199
  echo
200
- if [[ $REPLY =~ ^[Yy]$ ]] || [[ -z $REPLY ]]; then
200
+ if [[ $REPLY =~ ^[Yy1]$ ]] || [[ -z $REPLY ]]; then
201
201
  rm -rf "$TEST_DIR"
202
202
  echo -e "${GREEN}✓ Deleted old test directory${NC}"
203
203
  else
@@ -216,7 +216,7 @@ echo ""
216
216
 
217
217
  # Step 1: Clone repository
218
218
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
219
- echo "📥 Step 1/7: Cloning repository"
219
+ echo "📥 Step 1/6: Cloning repository"
220
220
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
221
221
  echo ""
222
222
  mkdir -p "$TEST_DIR"
@@ -229,7 +229,7 @@ echo ""
229
229
 
230
230
  # Step 2: Checkout branch (different logic for PR vs fork)
231
231
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
232
- echo "🔀 Step 2/7: Checking out branch"
232
+ echo "🔀 Step 2/6: Checking out branch"
233
233
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
234
234
  echo ""
235
235
 
@@ -251,7 +251,7 @@ echo ""
251
251
 
252
252
  # Step 3: Install BMAD CLI
253
253
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
254
- echo "📦 Step 3/7: Installing BMAD CLI"
254
+ echo "📦 Step 3/6: Installing BMAD CLI"
255
255
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
256
256
  echo ""
257
257
  cd tools/cli
@@ -263,7 +263,7 @@ echo ""
263
263
 
264
264
  # Step 4: Create test project
265
265
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
266
- echo "📁 Step 4/7: Creating test project"
266
+ echo "📁 Step 4/6: Creating test project"
267
267
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
268
268
  echo ""
269
269
  cd "$TEST_DIR"
@@ -273,41 +273,30 @@ echo -e "${GREEN}✓ Test project directory created${NC}"
273
273
  echo " Location: $TEST_DIR/bmad-project"
274
274
  echo ""
275
275
 
276
- # Step 5: Run BMAD installer
276
+ # Step 5: Run BMAD installer (includes AgentVibes setup)
277
277
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
278
- echo "⚙️ Step 5/7: Running BMAD installer"
278
+ echo "⚙️ Step 5/6: Running BMAD installer with AgentVibes"
279
279
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
280
280
  echo ""
281
- echo -e "${YELLOW}Important: When prompted during installation:${NC}"
282
- echo -e " Enable TTS for agents? → ${GREEN}Yes${NC}"
283
- echo -e " Assign unique voices for party mode? → ${GREEN}Yes${NC}"
281
+ echo -e "${YELLOW}Important: The BMAD installer will prompt for:${NC}"
282
+ echo -e " 1. ${CYAN}Enable TTS for agents?${NC} → ${GREEN}Yes${NC}"
283
+ echo -e " 2. ${CYAN}Assign unique voices for party mode?${NC} → ${GREEN}Yes${NC}"
284
284
  echo ""
285
- read -p "Press Enter to start BMAD installer..."
286
- bmad install
287
-
288
- echo ""
289
- echo -e "${GREEN}✓ BMAD installation complete${NC}"
290
- echo ""
291
-
292
- # Step 6: Install AgentVibes
293
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
294
- echo "🎙️ Step 6/7: Installing AgentVibes"
295
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
296
- echo ""
297
- echo -e "${YELLOW}Recommended: Choose Piper (free) for testing${NC}"
285
+ echo -e "${YELLOW}Then AgentVibes installer will start automatically.${NC}"
286
+ echo -e "${YELLOW}Recommended TTS settings:${NC}"
298
287
  echo -e " • Provider: ${GREEN}Piper${NC} (free, local TTS)"
299
288
  echo -e " • Download voices: ${GREEN}Yes${NC}"
300
289
  echo ""
301
- read -p "Press Enter to start AgentVibes installer..."
302
- npx agentvibes@latest install
290
+ read -p "Press Enter to start BMAD installer..."
291
+ bmad install
303
292
 
304
293
  echo ""
305
- echo -e "${GREEN}✓ AgentVibes installation complete${NC}"
294
+ echo -e "${GREEN}✓ BMAD and AgentVibes installation complete${NC}"
306
295
  echo ""
307
296
 
308
- # Step 7: Verification
297
+ # Step 6: Verification
309
298
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
310
- echo "✅ Step 7/7: Verifying installation"
299
+ echo "✅ Step 6/6: Verifying installation"
311
300
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
312
301
  echo ""
313
302
 
@@ -371,8 +360,8 @@ echo ""
371
360
  echo " 1. Navigate to test project:"
372
361
  echo -e " ${GREEN}cd $TEST_DIR/bmad-project${NC}"
373
362
  echo ""
374
- echo " 2. Start Claude Code session:"
375
- echo -e " ${GREEN}claude-code${NC}"
363
+ echo " 2. Start Claude session:"
364
+ echo -e " ${GREEN}claude${NC}"
376
365
  echo ""
377
366
  echo " 3. Test party mode:"
378
367
  echo -e " ${GREEN}/bmad:core:workflows:party-mode${NC}"