agentvibes 5.13.1 → 5.15.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.
- package/.claude/audio/ui/CREDITS.txt +16 -16
- package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
- package/.claude/commands/agent-vibes-rdp.md +24 -24
- package/.claude/config/audio-effects.cfg.sample +52 -52
- package/.claude/docs/TERMUX_SETUP.md +408 -408
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/kokoro-server.py +219 -219
- package/.claude/hooks/kokoro-tts.py +141 -141
- package/.claude/hooks/party-stage-roster.py +328 -328
- package/.claude/hooks/play-tts-kokoro.sh +7 -2
- package/.claude/hooks/play-tts-ssh-remote.sh +38 -3
- package/.claude/hooks/requirements.txt +6 -6
- package/.claude/hooks/soprano-gradio-synth.py +139 -139
- package/.claude/hooks/translator.py +237 -237
- package/.claude/hooks-windows/agentvibes-session-id.ps1 +83 -0
- package/.claude/hooks-windows/kokoro-server.py +219 -219
- package/.claude/hooks-windows/kokoro-tts.py +107 -107
- package/.claude/hooks-windows/play-tts.ps1 +112 -1
- package/.claude/hooks-windows/session-start-tts.ps1 +36 -0
- package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
- package/.claude/verbosity.txt +1 -1
- package/.clawdbot/README.md +105 -105
- package/CLAUDE.md +84 -176
- package/README.md +35 -2
- package/RELEASE_NOTES.md +139 -0
- package/WINDOWS-SETUP.md +208 -208
- package/bin/agent-vibes +39 -39
- package/bin/mcp-server.js +121 -121
- package/bin/test-bmad-pr +78 -78
- package/mcp-server/QUICK_START.md +203 -203
- package/mcp-server/README.md +345 -345
- package/mcp-server/examples/claude_desktop_config.json +11 -11
- package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
- package/mcp-server/examples/custom_instructions.md +169 -169
- package/mcp-server/install-deps.js +12 -2
- package/mcp-server/server.py +2111 -2085
- package/mcp-server/test_mcp_correctness.py +504 -504
- package/mcp-server/test_windows_script_parity.py +339 -339
- package/package.json +6 -3
- package/setup-ssh-receiver.ps1 +259 -0
- package/setup-windows.ps1 +39 -29
- package/src/cli/list-personalities.js +110 -110
- package/src/commands/bmad-voices.js +394 -394
- package/src/console/brand-colors.js +13 -13
- package/src/console/constants/personalities.js +44 -44
- package/src/console/tabs/agents-tab.js +14 -4
- package/src/console/tabs/help-tab.js +314 -314
- package/src/console/tabs/readme-tab.js +272 -272
- package/src/console/tabs/settings-tab.js +31 -6
- package/src/console/tabs/setup-tab.js +154 -32
- package/src/console/tabs/voices-tab.js +48 -6
- package/src/console/widgets/destroy-list.js +25 -25
- package/src/console/widgets/notice.js +55 -55
- package/src/installer/language-screen.js +31 -31
- package/src/installer/music-file-input.js +304 -304
- package/src/installer.js +98 -37
- package/src/services/language-service.js +47 -47
- package/src/services/llm-provider-service.js +4 -1
- package/src/services/provider-voice-catalog.js +9 -5
- package/src/utils/audio-format-validator.js +277 -277
- package/src/utils/dependency-checker.js +469 -469
- package/src/utils/file-ownership-verifier.js +358 -358
- package/src/utils/music-file-validator.js +285 -285
- package/src/utils/preview-list-prompt.js +144 -144
- package/src/utils/secure-music-storage.js +412 -412
- package/templates/agentvibes-receiver.ps1 +311 -0
- package/templates/agentvibes-receiver.sh +297 -297
- package/voice-assignments.json +8244 -8244
- package/.agentvibes/config.json +0 -17
- package/.agentvibes/install-manifest.json +0 -362
- package/.claude/config/audio-effects.cfg +0 -7
- package/.claude/config/audio-effects.cfg.bak-kokoro +0 -7
- package/.claude/config/background-music-enabled.txt +0 -1
- package/.claude/config/background-music-position.txt +0 -27
- package/.claude/config/background-music-volume.txt +0 -1
- package/.claude/config/background-music.cfg +0 -1
- package/.claude/config/background-music.txt +0 -1
- package/.claude/config/language.txt +0 -1
- package/.claude/config/personality.txt +0 -1
- package/.claude/config/reverb-level.txt +0 -1
- package/.claude/config/tts-speech-rate.txt +0 -1
- package/.claude/config/tts-verbosity.txt +0 -1
- package/.claude/hooks-windows/audio-cache-utils.ps1.user.bak +0 -119
- package/.claude/hooks-windows/soprano-gradio-synth.py.user.bak +0 -153
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,5 +1,144 @@
|
|
|
1
1
|
# AgentVibes Release Notes
|
|
2
2
|
|
|
3
|
+
## v5.15.0 — Multi-session control on Windows
|
|
4
|
+
|
|
5
|
+
**Released:** 2026-07-20 · `npm install agentvibes@latest`
|
|
6
|
+
|
|
7
|
+
If you run several agent sessions at once, this release gives Windows the same
|
|
8
|
+
control macOS and Linux gained in 5.13.0: sessions stay quiet unless you turn
|
|
9
|
+
them on, and each one can tell you which window is speaking.
|
|
10
|
+
|
|
11
|
+
### Sessions no longer all speak at once
|
|
12
|
+
|
|
13
|
+
Running AgentVibes across several projects previously meant every open session
|
|
14
|
+
announced itself, with no straightforward way to keep just one talking. On
|
|
15
|
+
macOS and Linux this was addressed in 5.13.0. **On Windows it was not** — the
|
|
16
|
+
Windows session hook enabled speech in every session regardless of your
|
|
17
|
+
settings.
|
|
18
|
+
|
|
19
|
+
Windows now follows the same rule: a session speaks only in a project you have
|
|
20
|
+
explicitly enabled. Projects you have not enabled contribute **nothing at all**
|
|
21
|
+
— not silent audio, but no added instructions and no token cost.
|
|
22
|
+
|
|
23
|
+
### Mute now works on Windows
|
|
24
|
+
|
|
25
|
+
`/agent-vibes:mute` had no effect on Windows audio. It silenced macOS and Linux
|
|
26
|
+
only, because the Windows player read a different setting than the one the
|
|
27
|
+
command wrote.
|
|
28
|
+
|
|
29
|
+
Both the project mute and the global switch are now honoured on Windows:
|
|
30
|
+
|
|
31
|
+
- `/agent-vibes:mute` — quiet this project
|
|
32
|
+
- `/agent-vibes:unmute` — turn this project back on, even while everything else
|
|
33
|
+
is globally muted
|
|
34
|
+
|
|
35
|
+
This makes "off everywhere, on in the one project I am working in" a single
|
|
36
|
+
pair of commands on every platform.
|
|
37
|
+
|
|
38
|
+
### Sessions can identify themselves on Windows
|
|
39
|
+
|
|
40
|
+
Include `{{session}}` in your pretext and a session introduces itself once:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
Claude on my-app in Windows Terminal
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
It names the project and detects the terminal — Windows Terminal, VS Code,
|
|
47
|
+
Ghostty, iTerm, Terminal, WezTerm, tmux and others. Announced once per session
|
|
48
|
+
rather than before every line. This previously worked only on macOS and Linux.
|
|
49
|
+
|
|
50
|
+
### A related fix for every platform
|
|
51
|
+
|
|
52
|
+
The script that produces that introduction was missing from the update process,
|
|
53
|
+
so on a global install it was never delivered and the feature silently did
|
|
54
|
+
nothing. It is now included on macOS, Linux and Windows alike.
|
|
55
|
+
|
|
56
|
+
### Upgrading
|
|
57
|
+
|
|
58
|
+
Your existing choices are preserved — if you have already muted, unmuted, or
|
|
59
|
+
enabled a project, updating leaves that setting alone.
|
|
60
|
+
|
|
61
|
+
**One change worth noting for Windows users on a global install:** because
|
|
62
|
+
sessions are now off unless enabled, a global Windows install will be quiet
|
|
63
|
+
after updating. Turn on the projects you want with `/agent-vibes:unmute`.
|
|
64
|
+
Project installs are enabled automatically and are unaffected.
|
|
65
|
+
|
|
66
|
+
### Quality
|
|
67
|
+
|
|
68
|
+
New regression tests assert that the session gate, the mute rules, and the
|
|
69
|
+
self-identification behave identically on both runtimes, so the platforms
|
|
70
|
+
cannot drift apart again without the build failing.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## v5.14.0 — Reliable setup and complete audio previews
|
|
75
|
+
|
|
76
|
+
**Released:** 2026-07-19 · `npm install agentvibes@latest`
|
|
77
|
+
|
|
78
|
+
This release focuses on two things: getting AgentVibes installed correctly on every platform, and making the Preview button an accurate representation of how your agent will actually sound. It also includes everything from 5.13.2, which was tagged but never published to npm.
|
|
79
|
+
|
|
80
|
+
### Setup now completes properly on macOS and Linux
|
|
81
|
+
|
|
82
|
+
Installing Piper and downloading voices now runs correctly on a fresh macOS or Linux machine. Previously these steps could report a failure without having run, which left new users without a working voice engine and no clear way forward. This was a long-standing issue affecting first-time installs specifically — if you gave up on setup previously, it is worth another try.
|
|
83
|
+
|
|
84
|
+
Related: several setup scripts are now stored in the correct line-ending format, so they execute properly on macOS and Linux.
|
|
85
|
+
|
|
86
|
+
### Preview plays your complete audio mix
|
|
87
|
+
|
|
88
|
+
The Preview button now plays exactly what your agent will sound like: your selected **voice**, any **reverb or audio effects**, and your **background music**, mixed together.
|
|
89
|
+
|
|
90
|
+
Two cases previously played an incomplete mix. Hermes agent previews omitted background music entirely, and on Windows the music track was dropped whenever ffmpeg — the component that mixes music with speech — was unavailable. Both are resolved, and if ffmpeg is missing you now receive a clear message identifying it rather than silently reduced audio.
|
|
91
|
+
|
|
92
|
+
### Your customisations survive updates
|
|
93
|
+
|
|
94
|
+
If you have edited any of the hook scripts AgentVibes installs, updating now preserves your work. Your version is copied to a timestamped backup before any file is replaced:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
play-tts.ps1.user.bak.20260719-143052
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Each update creates its own backup, so earlier versions remain recoverable. On Windows, update coverage extended from 8 scripts to all 25.
|
|
101
|
+
|
|
102
|
+
### Audio destination is clearer at a glance
|
|
103
|
+
|
|
104
|
+
Settings now colour-codes where your audio plays: **Local** in green, **Remote** in red. This makes it immediately obvious when audio is being routed to another machine.
|
|
105
|
+
|
|
106
|
+
### Voice previews use the correct engine
|
|
107
|
+
|
|
108
|
+
Previewing a voice now uses that voice's own engine rather than the global setting, and identifies which engine you are hearing. Windows and macOS system voices work correctly through remote previews, and the Windows voice list now shows only voices that can actually be selected.
|
|
109
|
+
|
|
110
|
+
### Windows remote audio
|
|
111
|
+
|
|
112
|
+
Sending audio from a Windows machine to another computer no longer alters file paths in transit, which previously prevented background music from reaching the receiver.
|
|
113
|
+
|
|
114
|
+
### Package and quality
|
|
115
|
+
|
|
116
|
+
The published package no longer includes unnecessary files, and everything the application references is now present. The full test suite passes on Windows, macOS and Linux from a clean checkout, with new regression tests covering the preview behaviour described above.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 🔧 v5.13.2 — Cleaner installs, smoother setup
|
|
121
|
+
|
|
122
|
+
**Released:** 2026-07-17 · on `latest` — `npm install agentvibes@latest`
|
|
123
|
+
|
|
124
|
+
### 🎛️ You start with the default settings, ready to make your own
|
|
125
|
+
|
|
126
|
+
Fresh installs now begin clean, with the built-in defaults for voice, background music, and personality — so it's your setup from the very first run.
|
|
127
|
+
|
|
128
|
+
### 🐧 Mac and Linux setup works properly
|
|
129
|
+
|
|
130
|
+
A few of the scripts that set things up were saved in a Windows format that Mac and Linux can't read, so they'd stop before doing anything. They're in the right format now. Installing Piper and downloading voices work on a fresh Mac or Linux machine again.
|
|
131
|
+
|
|
132
|
+
### 🔊 Your voice choice sticks
|
|
133
|
+
|
|
134
|
+
The settings file that remembers which voice goes with which engine could be read slightly wrong, so your engine choice quietly got ignored. Fixed — what you pick is what you get.
|
|
135
|
+
|
|
136
|
+
### 📦 A smaller, tidier download
|
|
137
|
+
|
|
138
|
+
The package no longer carries files it never needed. Everything the app tells you to run is now actually included.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
3
142
|
## 🔧 v5.13.1 — Windows updates that actually update
|
|
4
143
|
|
|
5
144
|
**Released:** 2026-07-16 · on `latest` — `npm install agentvibes@latest`
|
package/WINDOWS-SETUP.md
CHANGED
|
@@ -1,208 +1,208 @@
|
|
|
1
|
-
# AgentVibes Windows Native Setup
|
|
2
|
-
|
|
3
|
-
This folder contains AgentVibes configured for **native Windows** (not WSL) with three TTS providers available.
|
|
4
|
-
|
|
5
|
-
## Quick Start
|
|
6
|
-
|
|
7
|
-
### 1. Open in VS Code (Native Windows)
|
|
8
|
-
|
|
9
|
-
- **File > Open Folder** > Select this folder (`agentvibes-in-windows`)
|
|
10
|
-
- Make sure you're opening in **native Windows VS Code** (not WSL remote)
|
|
11
|
-
|
|
12
|
-
### 2. Open PowerShell Terminal
|
|
13
|
-
|
|
14
|
-
- **Terminal > New Terminal**
|
|
15
|
-
- Change shell to **PowerShell** (if needed)
|
|
16
|
-
|
|
17
|
-
### 3. Run Setup
|
|
18
|
-
|
|
19
|
-
```powershell
|
|
20
|
-
.\setup-windows.ps1
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
This script will:
|
|
24
|
-
- Check PowerShell version (5.1+)
|
|
25
|
-
- Create `.claude` directories
|
|
26
|
-
- Let you choose TTS provider (Piper or SAPI)
|
|
27
|
-
- Install Piper if you choose it
|
|
28
|
-
- Download a default voice model
|
|
29
|
-
- Test TTS
|
|
30
|
-
- Configure for first use
|
|
31
|
-
|
|
32
|
-
### 4. Install Dependencies
|
|
33
|
-
|
|
34
|
-
```powershell
|
|
35
|
-
npm install
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### 5. Start Using AgentVibes
|
|
39
|
-
|
|
40
|
-
Open a Claude Code session in this project. The SessionStart hook will automatically inject TTS protocol instructions, causing Claude to speak all responses.
|
|
41
|
-
|
|
42
|
-
## TTS Providers
|
|
43
|
-
|
|
44
|
-
### Option 1: Soprano (Best Quality)
|
|
45
|
-
- **Quality**: Ultra-high (80M parameter neural model)
|
|
46
|
-
- **Voices**: Single high-quality voice (Soprano-1.1-80M)
|
|
47
|
-
- **Download**: `pip install soprano-tts`
|
|
48
|
-
- **Setup**: Start WebUI with `soprano-webui` or API with `uvicorn soprano.server:app`
|
|
49
|
-
- **Speed**: GPU-accelerated, very fast
|
|
50
|
-
- **Features**: Gradio WebUI mode, OpenAI-compatible API mode, CLI fallback
|
|
51
|
-
|
|
52
|
-
To set up Soprano:
|
|
53
|
-
```powershell
|
|
54
|
-
# Install Soprano
|
|
55
|
-
pip install soprano-tts
|
|
56
|
-
|
|
57
|
-
# Start WebUI (recommended - stays running in background)
|
|
58
|
-
soprano-webui
|
|
59
|
-
|
|
60
|
-
# Set provider
|
|
61
|
-
.\.claude\hooks-windows\provider-manager.ps1 set soprano
|
|
62
|
-
|
|
63
|
-
# Test
|
|
64
|
-
.\.claude\hooks-windows\play-tts-soprano.ps1 "Hello from Soprano"
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### Option 2: Windows Piper (Recommended for Offline)
|
|
68
|
-
- **Quality**: High (neural voices)
|
|
69
|
-
- **Voices**: 50+ available
|
|
70
|
-
- **Download**: ~100MB
|
|
71
|
-
- **Setup**: Automatic (run `setup-windows.ps1`)
|
|
72
|
-
- **Speed**: Offline synthesis
|
|
73
|
-
- **Features**: All AgentVibes features supported
|
|
74
|
-
|
|
75
|
-
### Option 3: Windows SAPI (Built-in, Zero Setup)
|
|
76
|
-
- **Quality**: Basic
|
|
77
|
-
- **Voices**: ~10 built-in (David, Zira, Mark)
|
|
78
|
-
- **Download**: 0 MB (no installation needed)
|
|
79
|
-
- **Setup**: Select during `setup-windows.ps1`
|
|
80
|
-
- **Speed**: Fast
|
|
81
|
-
- **Features**: Core TTS only
|
|
82
|
-
|
|
83
|
-
## Claude Code Integration
|
|
84
|
-
|
|
85
|
-
AgentVibes hooks into Claude Code via `.claude/settings.json`. The SessionStart hook runs automatically when Claude starts a session:
|
|
86
|
-
|
|
87
|
-
```json
|
|
88
|
-
{
|
|
89
|
-
"hooks": {
|
|
90
|
-
"SessionStart": [{
|
|
91
|
-
"hooks": [{
|
|
92
|
-
"type": "command",
|
|
93
|
-
"command": "powershell -NoProfile -ExecutionPolicy Bypass -File \"$CLAUDE_PROJECT_DIR\\.claude\\hooks-windows\\session-start-tts.ps1\""
|
|
94
|
-
}]
|
|
95
|
-
}]
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
This injects TTS protocol instructions so Claude speaks every response using the configured provider.
|
|
101
|
-
|
|
102
|
-
## Manual Commands
|
|
103
|
-
|
|
104
|
-
Test TTS manually:
|
|
105
|
-
|
|
106
|
-
```powershell
|
|
107
|
-
# Test current provider
|
|
108
|
-
.\.claude\hooks-windows\play-tts.ps1 "Hello from Windows"
|
|
109
|
-
|
|
110
|
-
# Test specific providers
|
|
111
|
-
.\.claude\hooks-windows\play-tts-windows-sapi.ps1 "Hello SAPI"
|
|
112
|
-
.\.claude\hooks-windows\play-tts-windows-piper.ps1 "Hello Piper"
|
|
113
|
-
.\.claude\hooks-windows\play-tts-soprano.ps1 "Hello Soprano"
|
|
114
|
-
|
|
115
|
-
# List available voices
|
|
116
|
-
.\.claude\hooks-windows\voice-manager-windows.ps1 list
|
|
117
|
-
|
|
118
|
-
# Switch voice (for Piper/SAPI)
|
|
119
|
-
.\.claude\hooks-windows\voice-manager-windows.ps1 switch "en_US-lessac-high"
|
|
120
|
-
|
|
121
|
-
# List providers
|
|
122
|
-
.\.claude\hooks-windows\provider-manager.ps1 list
|
|
123
|
-
|
|
124
|
-
# Switch provider
|
|
125
|
-
.\.claude\hooks-windows\provider-manager.ps1 set soprano
|
|
126
|
-
.\.claude\hooks-windows\provider-manager.ps1 set windows-piper
|
|
127
|
-
.\.claude\hooks-windows\provider-manager.ps1 set windows-sapi
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## Troubleshooting
|
|
131
|
-
|
|
132
|
-
### PowerShell Execution Policy Error
|
|
133
|
-
|
|
134
|
-
If you get an "execution policy" error, run:
|
|
135
|
-
|
|
136
|
-
```powershell
|
|
137
|
-
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Then try again.
|
|
141
|
-
|
|
142
|
-
### No Audio Playing
|
|
143
|
-
|
|
144
|
-
1. Check Windows volume isn't muted
|
|
145
|
-
2. Try switching to SAPI provider (zero-setup): `.\.claude\hooks-windows\provider-manager.ps1 set windows-sapi`
|
|
146
|
-
3. Test SAPI directly: `.\.claude\hooks-windows\play-tts-windows-sapi.ps1 "test"`
|
|
147
|
-
|
|
148
|
-
### Soprano Not Detected
|
|
149
|
-
|
|
150
|
-
1. Ensure soprano-webui is running: `soprano-webui`
|
|
151
|
-
2. Check port 7860 is accessible: `Test-NetConnection -ComputerName 127.0.0.1 -Port 7860`
|
|
152
|
-
3. Set custom port if needed: `$env:SOPRANO_PORT = "8080"` before running TTS
|
|
153
|
-
|
|
154
|
-
### Piper Installation Failed
|
|
155
|
-
|
|
156
|
-
1. Check internet connection
|
|
157
|
-
2. Run setup again: `.\setup-windows.ps1`
|
|
158
|
-
3. Or manually download from: https://github.com/rhasspy/piper/releases
|
|
159
|
-
|
|
160
|
-
### Can't Find Voice
|
|
161
|
-
|
|
162
|
-
For Piper, voices are stored in: `%USERPROFILE%\.claude\piper-voices\`
|
|
163
|
-
|
|
164
|
-
You can download additional voices with `.\download-piper-voices.ps1`.
|
|
165
|
-
|
|
166
|
-
## Architecture
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
agentvibes-in-windows/
|
|
170
|
-
├── .claude/
|
|
171
|
-
│ ├── hooks-windows/ # PowerShell TTS scripts
|
|
172
|
-
│ │ ├── play-tts.ps1 # Main router (dispatches to active provider)
|
|
173
|
-
│ │ ├── play-tts-soprano.ps1 # Soprano provider
|
|
174
|
-
│ │ ├── play-tts-windows-piper.ps1 # Piper provider
|
|
175
|
-
│ │ ├── play-tts-windows-sapi.ps1 # SAPI provider
|
|
176
|
-
│ │ ├── soprano-gradio-synth.py # Python helper for Soprano Gradio API
|
|
177
|
-
│ │ ├── provider-manager.ps1 # Provider switching
|
|
178
|
-
│ │ ├── voice-manager-windows.ps1 # Voice management
|
|
179
|
-
│ │ ├── session-start-tts.ps1 # SessionStart hook (injects TTS protocol)
|
|
180
|
-
│ │ └── audio-cache-utils.ps1 # Audio cache cleanup
|
|
181
|
-
│ ├── settings.json # Claude Code hooks config
|
|
182
|
-
│ ├── audio/ # Audio cache (auto-created)
|
|
183
|
-
│ ├── piper-voices/ # Piper voice models (auto-created)
|
|
184
|
-
│ └── tts-provider.txt # Active provider config
|
|
185
|
-
├── setup-windows.ps1 # Installation script
|
|
186
|
-
├── download-piper-voices.ps1 # Download additional Piper voices
|
|
187
|
-
└── WINDOWS-SETUP.md # This file
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
## What's Different from WSL
|
|
191
|
-
|
|
192
|
-
| Feature | WSL Version | Windows Native |
|
|
193
|
-
|---------|-------------|----------------|
|
|
194
|
-
| **TTS Scripts** | Bash shell scripts (.sh) | PowerShell scripts (.ps1) |
|
|
195
|
-
| **Audio** | PulseAudio/paplay | System.Media.SoundPlayer |
|
|
196
|
-
| **Providers** | Piper, macOS, Termux, Soprano | Piper, SAPI, Soprano |
|
|
197
|
-
| **Setup** | WSL + PulseAudio config | Native Windows only |
|
|
198
|
-
| **Hook Dir** | `.claude/hooks/` | `.claude/hooks-windows/` |
|
|
199
|
-
|
|
200
|
-
## Support
|
|
201
|
-
|
|
202
|
-
- **Documentation**: https://agentvibes.org
|
|
203
|
-
- **Issues**: https://github.com/paulpreibisch/AgentVibes/issues
|
|
204
|
-
|
|
205
|
-
---
|
|
206
|
-
|
|
207
|
-
**Version**: 2.0 (Windows Native + Soprano)
|
|
208
|
-
**Last Updated**: 2026-02-11
|
|
1
|
+
# AgentVibes Windows Native Setup
|
|
2
|
+
|
|
3
|
+
This folder contains AgentVibes configured for **native Windows** (not WSL) with three TTS providers available.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
### 1. Open in VS Code (Native Windows)
|
|
8
|
+
|
|
9
|
+
- **File > Open Folder** > Select this folder (`agentvibes-in-windows`)
|
|
10
|
+
- Make sure you're opening in **native Windows VS Code** (not WSL remote)
|
|
11
|
+
|
|
12
|
+
### 2. Open PowerShell Terminal
|
|
13
|
+
|
|
14
|
+
- **Terminal > New Terminal**
|
|
15
|
+
- Change shell to **PowerShell** (if needed)
|
|
16
|
+
|
|
17
|
+
### 3. Run Setup
|
|
18
|
+
|
|
19
|
+
```powershell
|
|
20
|
+
.\setup-windows.ps1
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
This script will:
|
|
24
|
+
- Check PowerShell version (5.1+)
|
|
25
|
+
- Create `.claude` directories
|
|
26
|
+
- Let you choose TTS provider (Piper or SAPI)
|
|
27
|
+
- Install Piper if you choose it
|
|
28
|
+
- Download a default voice model
|
|
29
|
+
- Test TTS
|
|
30
|
+
- Configure for first use
|
|
31
|
+
|
|
32
|
+
### 4. Install Dependencies
|
|
33
|
+
|
|
34
|
+
```powershell
|
|
35
|
+
npm install
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 5. Start Using AgentVibes
|
|
39
|
+
|
|
40
|
+
Open a Claude Code session in this project. The SessionStart hook will automatically inject TTS protocol instructions, causing Claude to speak all responses.
|
|
41
|
+
|
|
42
|
+
## TTS Providers
|
|
43
|
+
|
|
44
|
+
### Option 1: Soprano (Best Quality)
|
|
45
|
+
- **Quality**: Ultra-high (80M parameter neural model)
|
|
46
|
+
- **Voices**: Single high-quality voice (Soprano-1.1-80M)
|
|
47
|
+
- **Download**: `pip install soprano-tts`
|
|
48
|
+
- **Setup**: Start WebUI with `soprano-webui` or API with `uvicorn soprano.server:app`
|
|
49
|
+
- **Speed**: GPU-accelerated, very fast
|
|
50
|
+
- **Features**: Gradio WebUI mode, OpenAI-compatible API mode, CLI fallback
|
|
51
|
+
|
|
52
|
+
To set up Soprano:
|
|
53
|
+
```powershell
|
|
54
|
+
# Install Soprano
|
|
55
|
+
pip install soprano-tts
|
|
56
|
+
|
|
57
|
+
# Start WebUI (recommended - stays running in background)
|
|
58
|
+
soprano-webui
|
|
59
|
+
|
|
60
|
+
# Set provider
|
|
61
|
+
.\.claude\hooks-windows\provider-manager.ps1 set soprano
|
|
62
|
+
|
|
63
|
+
# Test
|
|
64
|
+
.\.claude\hooks-windows\play-tts-soprano.ps1 "Hello from Soprano"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Option 2: Windows Piper (Recommended for Offline)
|
|
68
|
+
- **Quality**: High (neural voices)
|
|
69
|
+
- **Voices**: 50+ available
|
|
70
|
+
- **Download**: ~100MB
|
|
71
|
+
- **Setup**: Automatic (run `setup-windows.ps1`)
|
|
72
|
+
- **Speed**: Offline synthesis
|
|
73
|
+
- **Features**: All AgentVibes features supported
|
|
74
|
+
|
|
75
|
+
### Option 3: Windows SAPI (Built-in, Zero Setup)
|
|
76
|
+
- **Quality**: Basic
|
|
77
|
+
- **Voices**: ~10 built-in (David, Zira, Mark)
|
|
78
|
+
- **Download**: 0 MB (no installation needed)
|
|
79
|
+
- **Setup**: Select during `setup-windows.ps1`
|
|
80
|
+
- **Speed**: Fast
|
|
81
|
+
- **Features**: Core TTS only
|
|
82
|
+
|
|
83
|
+
## Claude Code Integration
|
|
84
|
+
|
|
85
|
+
AgentVibes hooks into Claude Code via `.claude/settings.json`. The SessionStart hook runs automatically when Claude starts a session:
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"hooks": {
|
|
90
|
+
"SessionStart": [{
|
|
91
|
+
"hooks": [{
|
|
92
|
+
"type": "command",
|
|
93
|
+
"command": "powershell -NoProfile -ExecutionPolicy Bypass -File \"$CLAUDE_PROJECT_DIR\\.claude\\hooks-windows\\session-start-tts.ps1\""
|
|
94
|
+
}]
|
|
95
|
+
}]
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
This injects TTS protocol instructions so Claude speaks every response using the configured provider.
|
|
101
|
+
|
|
102
|
+
## Manual Commands
|
|
103
|
+
|
|
104
|
+
Test TTS manually:
|
|
105
|
+
|
|
106
|
+
```powershell
|
|
107
|
+
# Test current provider
|
|
108
|
+
.\.claude\hooks-windows\play-tts.ps1 "Hello from Windows"
|
|
109
|
+
|
|
110
|
+
# Test specific providers
|
|
111
|
+
.\.claude\hooks-windows\play-tts-windows-sapi.ps1 "Hello SAPI"
|
|
112
|
+
.\.claude\hooks-windows\play-tts-windows-piper.ps1 "Hello Piper"
|
|
113
|
+
.\.claude\hooks-windows\play-tts-soprano.ps1 "Hello Soprano"
|
|
114
|
+
|
|
115
|
+
# List available voices
|
|
116
|
+
.\.claude\hooks-windows\voice-manager-windows.ps1 list
|
|
117
|
+
|
|
118
|
+
# Switch voice (for Piper/SAPI)
|
|
119
|
+
.\.claude\hooks-windows\voice-manager-windows.ps1 switch "en_US-lessac-high"
|
|
120
|
+
|
|
121
|
+
# List providers
|
|
122
|
+
.\.claude\hooks-windows\provider-manager.ps1 list
|
|
123
|
+
|
|
124
|
+
# Switch provider
|
|
125
|
+
.\.claude\hooks-windows\provider-manager.ps1 set soprano
|
|
126
|
+
.\.claude\hooks-windows\provider-manager.ps1 set windows-piper
|
|
127
|
+
.\.claude\hooks-windows\provider-manager.ps1 set windows-sapi
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Troubleshooting
|
|
131
|
+
|
|
132
|
+
### PowerShell Execution Policy Error
|
|
133
|
+
|
|
134
|
+
If you get an "execution policy" error, run:
|
|
135
|
+
|
|
136
|
+
```powershell
|
|
137
|
+
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Then try again.
|
|
141
|
+
|
|
142
|
+
### No Audio Playing
|
|
143
|
+
|
|
144
|
+
1. Check Windows volume isn't muted
|
|
145
|
+
2. Try switching to SAPI provider (zero-setup): `.\.claude\hooks-windows\provider-manager.ps1 set windows-sapi`
|
|
146
|
+
3. Test SAPI directly: `.\.claude\hooks-windows\play-tts-windows-sapi.ps1 "test"`
|
|
147
|
+
|
|
148
|
+
### Soprano Not Detected
|
|
149
|
+
|
|
150
|
+
1. Ensure soprano-webui is running: `soprano-webui`
|
|
151
|
+
2. Check port 7860 is accessible: `Test-NetConnection -ComputerName 127.0.0.1 -Port 7860`
|
|
152
|
+
3. Set custom port if needed: `$env:SOPRANO_PORT = "8080"` before running TTS
|
|
153
|
+
|
|
154
|
+
### Piper Installation Failed
|
|
155
|
+
|
|
156
|
+
1. Check internet connection
|
|
157
|
+
2. Run setup again: `.\setup-windows.ps1`
|
|
158
|
+
3. Or manually download from: https://github.com/rhasspy/piper/releases
|
|
159
|
+
|
|
160
|
+
### Can't Find Voice
|
|
161
|
+
|
|
162
|
+
For Piper, voices are stored in: `%USERPROFILE%\.claude\piper-voices\`
|
|
163
|
+
|
|
164
|
+
You can download additional voices with `.\download-piper-voices.ps1`.
|
|
165
|
+
|
|
166
|
+
## Architecture
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
agentvibes-in-windows/
|
|
170
|
+
├── .claude/
|
|
171
|
+
│ ├── hooks-windows/ # PowerShell TTS scripts
|
|
172
|
+
│ │ ├── play-tts.ps1 # Main router (dispatches to active provider)
|
|
173
|
+
│ │ ├── play-tts-soprano.ps1 # Soprano provider
|
|
174
|
+
│ │ ├── play-tts-windows-piper.ps1 # Piper provider
|
|
175
|
+
│ │ ├── play-tts-windows-sapi.ps1 # SAPI provider
|
|
176
|
+
│ │ ├── soprano-gradio-synth.py # Python helper for Soprano Gradio API
|
|
177
|
+
│ │ ├── provider-manager.ps1 # Provider switching
|
|
178
|
+
│ │ ├── voice-manager-windows.ps1 # Voice management
|
|
179
|
+
│ │ ├── session-start-tts.ps1 # SessionStart hook (injects TTS protocol)
|
|
180
|
+
│ │ └── audio-cache-utils.ps1 # Audio cache cleanup
|
|
181
|
+
│ ├── settings.json # Claude Code hooks config
|
|
182
|
+
│ ├── audio/ # Audio cache (auto-created)
|
|
183
|
+
│ ├── piper-voices/ # Piper voice models (auto-created)
|
|
184
|
+
│ └── tts-provider.txt # Active provider config
|
|
185
|
+
├── setup-windows.ps1 # Installation script
|
|
186
|
+
├── download-piper-voices.ps1 # Download additional Piper voices
|
|
187
|
+
└── WINDOWS-SETUP.md # This file
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## What's Different from WSL
|
|
191
|
+
|
|
192
|
+
| Feature | WSL Version | Windows Native |
|
|
193
|
+
|---------|-------------|----------------|
|
|
194
|
+
| **TTS Scripts** | Bash shell scripts (.sh) | PowerShell scripts (.ps1) |
|
|
195
|
+
| **Audio** | PulseAudio/paplay | System.Media.SoundPlayer |
|
|
196
|
+
| **Providers** | Piper, macOS, Termux, Soprano | Piper, SAPI, Soprano |
|
|
197
|
+
| **Setup** | WSL + PulseAudio config | Native Windows only |
|
|
198
|
+
| **Hook Dir** | `.claude/hooks/` | `.claude/hooks-windows/` |
|
|
199
|
+
|
|
200
|
+
## Support
|
|
201
|
+
|
|
202
|
+
- **Documentation**: https://agentvibes.org
|
|
203
|
+
- **Issues**: https://github.com/paulpreibisch/AgentVibes/issues
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
**Version**: 2.0 (Windows Native + Soprano)
|
|
208
|
+
**Last Updated**: 2026-02-11
|
package/bin/agent-vibes
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* AgentVibes - Beautiful ElevenLabs TTS voice commands for Claude Code
|
|
5
|
-
* This file ensures proper execution when run via npx
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { execFileSync } from 'node:child_process';
|
|
9
|
-
import path from 'node:path';
|
|
10
|
-
import fs from 'node:fs';
|
|
11
|
-
import { fileURLToPath } from 'node:url';
|
|
12
|
-
|
|
13
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
-
const __dirname = path.dirname(__filename);
|
|
15
|
-
|
|
16
|
-
// Check if we're running in an npx temporary directory
|
|
17
|
-
const isNpxExecution = __dirname.includes('_npx') || __dirname.includes('.npm');
|
|
18
|
-
|
|
19
|
-
// Get CLI arguments
|
|
20
|
-
const arguments_ = process.argv.slice(2);
|
|
21
|
-
|
|
22
|
-
// Route through the TUI console (agentvibes.js) which handles install/config/etc
|
|
23
|
-
const installerPath = path.join(__dirname, 'agentvibes.js');
|
|
24
|
-
|
|
25
|
-
if (!fs.existsSync(installerPath)) {
|
|
26
|
-
console.error('Error: Could not find installer.js at', installerPath);
|
|
27
|
-
console.error('Current directory:', __dirname);
|
|
28
|
-
process.exit(1);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
try {
|
|
32
|
-
// Security: Use execFileSync with array args to prevent command injection
|
|
33
|
-
// Arguments are passed as array elements, not string interpolation
|
|
34
|
-
execFileSync('node', [installerPath, ...arguments_], {
|
|
35
|
-
stdio: 'inherit',
|
|
36
|
-
cwd: path.dirname(__dirname),
|
|
37
|
-
});
|
|
38
|
-
} catch (error) {
|
|
39
|
-
process.exit(error.status || 1);
|
|
40
|
-
}
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* AgentVibes - Beautiful ElevenLabs TTS voice commands for Claude Code
|
|
5
|
+
* This file ensures proper execution when run via npx
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { execFileSync } from 'node:child_process';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import fs from 'node:fs';
|
|
11
|
+
import { fileURLToPath } from 'node:url';
|
|
12
|
+
|
|
13
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
+
const __dirname = path.dirname(__filename);
|
|
15
|
+
|
|
16
|
+
// Check if we're running in an npx temporary directory
|
|
17
|
+
const isNpxExecution = __dirname.includes('_npx') || __dirname.includes('.npm');
|
|
18
|
+
|
|
19
|
+
// Get CLI arguments
|
|
20
|
+
const arguments_ = process.argv.slice(2);
|
|
21
|
+
|
|
22
|
+
// Route through the TUI console (agentvibes.js) which handles install/config/etc
|
|
23
|
+
const installerPath = path.join(__dirname, 'agentvibes.js');
|
|
24
|
+
|
|
25
|
+
if (!fs.existsSync(installerPath)) {
|
|
26
|
+
console.error('Error: Could not find installer.js at', installerPath);
|
|
27
|
+
console.error('Current directory:', __dirname);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
try {
|
|
32
|
+
// Security: Use execFileSync with array args to prevent command injection
|
|
33
|
+
// Arguments are passed as array elements, not string interpolation
|
|
34
|
+
execFileSync('node', [installerPath, ...arguments_], {
|
|
35
|
+
stdio: 'inherit',
|
|
36
|
+
cwd: path.dirname(__dirname),
|
|
37
|
+
});
|
|
38
|
+
} catch (error) {
|
|
39
|
+
process.exit(error.status || 1);
|
|
40
|
+
}
|