Skip to content

πŸŽ‰ AgentVibes v5.7.5

Choose a tag to compare

@paulpreibisch paulpreibisch released this 14 May 03:56
· 68 commits to master since this release

AgentVibes v5.7.5

Professional text-to-speech narration for Claude Code sessions

πŸ“¦ Installation

npx agentvibes@5.7.5 install

πŸ“ What's Changed

AgentVibes Release Notes

πŸ–₯️ v5.7.5 β€” TUI Button Contrast + BMAD Routing Fixes

Released: 2026-05-13

πŸ› TUI Button Focus: Grey Text Eliminated Across All Terminals

Focused and selected buttons in the TUI (voices, music, settings, setup tabs) displayed light grey text on light-blue backgrounds in many terminals. Root cause: bold: true combined with a dark foreground triggers terminal "bright mode," rendering the color as grey regardless of shade.

Fix: All button focus states now use white text on dark green (#2e7d32) background β€” the same high-contrast pattern already used by the Agents tab. Explicit focus/blur handlers were added to setup-tab modal buttons to prevent attachBtnBlink from interfering with blessed's passive style.focus color application.

πŸ› BMAD Tab Voice Picker β™ͺ Indicator Not Showing

The β™ͺ preview indicator in the BMAD tab voice list didn't appear during preview. The Agents tab was missing _refreshVP() calls that the Settings tab already had. A 2-second minimum display timer now keeps the indicator visible when SSH-remote exits immediately (fire-and-forget mode).

πŸ› Non-Interactive Install: Generic Pretext Instead of Project Name

Running agentvibes install non-interactively always set the pretext to "Claude Code here" regardless of project. The installer now derives a project-aware pretext from path.basename(process.cwd()) with capitalization (e.g., "MyProject here"), with a safe fallback for Docker root paths.

πŸ› Global Pretext Overriding Per-Project Config

seedAllLlmDefaultsSync was seeding project-level LLM rows with the global pretext string, causing the global "Claude Code here" to override per-project tts-pretext.txt values. Project-level rows are now seeded with empty pretexts so the per-project file takes precedence.

πŸ› screen/tmux TERM Variant Caused plab_norm Capability Error

When TERM was set to a screen-* or tmux-* variant, blessed threw a plab_norm terminal capability error on startup. The app now overrides TERM to xterm-256color before creating the blessed screen when such a variant is detected.

πŸ› BMAD Per-Agent Music/Reverb Not Reaching SSH Receiver

play-tts.sh was not forwarding AGENT_PROFILE_FILE to the SSH remote transport, so per-agent background music and reverb overrides in the BMAD tab were silently ignored for remote audio. The profile file path is now passed as argument 4 to play-tts-ssh-remote.sh.

πŸ› Node 18 Compatibility: import.meta.dirname Replaced

A test file used import.meta.dirname, available only in Node 21+. Replaced with the fileURLToPath(import.meta.url) pattern so tests run correctly on Node 18 and 20.


🎭 v5.7.0 β€” BMAD v6.6 Support + Windows Auto-Restart Watcher

Released: 2026-05-11

πŸ†• BMAD v6.6.0 Compatibility

BMAD v6.6 restructured where agents live β€” they moved from _bmad/bmm/agents/ to .claude/skills/*/agents/. AgentVibes now detects and scans these new paths correctly.

TTS injection gracefully skips v6.6+ agents (which use plain Markdown without XML/YAML activation sections) instead of throwing errors. The install summary now clearly reports how many agents were skipped vs. modified.

BMAD tab detection now finds globally-installed BMAD at ~/_bmad (home-dir install) in addition to project-local installs. Previously the BMAD tab showed "Not detected" even when BMAD was installed globally.

Security: The installer's path validation now correctly permits BMAD paths under the user's home directory, fixing a false-positive "Invalid BMAD path" error for global installs.

πŸ†• Windows TTS Watcher β€” Standalone File + Auto-Restart

tts-watcher.ps1 is now extracted to ~/.agentvibes/tts-watcher.ps1 as a standalone file. Running npx agentvibes update now copies the latest watcher to that location and automatically restarts it β€” so both the watcher script itself and its running process are updated in one step. No manual file replacement or restart needed after updates.

πŸ› Windows Provider Override Respected on Laptop

play-tts.ps1 now reads the ProviderOverride setting from the Linux-side config when receiving audio via SSH. Previously the laptop always used its locally-configured provider even if the server specified a different one.

πŸ› Sample Command Added to Voice Manager

voice-manager.sh sample was missing its handler β€” calling it fell through to the usage/exit path silently. Fixed.

πŸ› Preview SSH Routing Detects Correct Endpoint

provider-manager.sh now includes detect_routing_llm() which checks AGENTVIBES_LLM_KEY then transport-config.json for the first mode=remote entry, so preview audio reaches the correct SSH host.


πŸ”‡ v5.6.9 β€” Reverb & Background Music Silent in NPX Installs

Released: 2026-05-09

πŸ› Reverb and Background Music Silently Broken for All NPX Users

When AgentVibes is installed via npx, hook files are extracted from the tarball with 644 permissions β€” no execute bit. play-tts-piper.sh called audio-processor.sh directly, which exits immediately with code 126 (Permission denied) on a non-executable file. Every npx-installed user was getting voice-only TTS β€” no reverb, no background music, silently.

Fix 1: play-tts-piper.sh now calls audio-processor.sh via bash "$SCRIPT_DIR/audio-processor.sh", bypassing the execute-bit check.
Fix 2: install-deps.js (postinstall) now runs ensureHookPermissions() to chmod 755 all .sh files after npm install.

πŸ› Voice Browser Preview Ignored Reverb and Background Music

The Preview button in the Voice Browser played raw piper output with no reverb and no background music, bypassing audio-processor.sh entirely.

Fix: Preview audio now routes through the same audio-processor.sh pipeline as real TTS.

πŸ› MCP text_to_speech Returned Garbled File Path and Missing Voice Info

The tool extracted the audio file path incorrectly (trailing size/emoji characters included) and never reported the voice name in its response.

Fix: ANSI codes are stripped before parsing, the .wav path is cleanly extracted, and the 🎀 Voice used: line is included in the tool response.

πŸ› Background Music TUI Toggle Didn't Take Effect

Enabling background music in the Music tab wrote to config.json but not to background-music-enabled.txt (read by bash hooks). Music stayed off after toggling. Saving a track also now implies enabling music.


🐧 v5.6.8 β€” WSL Voice Routing Fixed + Session Lifecycle Reliability

Released: 2026-05-09

πŸ› WSL: Configured Voice Now Plays (Not Lessac Fallback)

In WSL sessions, AgentVibes was playing en_US-lessac-medium regardless of what voice you configured. The root cause: pipx installs Piper to ~/.local/bin/, which interactive shells get via .bashrc/.zshrc, but Claude Code's Bash tool calls run non-interactively and skip profile sourcing β€” command -v piper failed, falling back to the default voice.

Fix: play-tts-piper.sh now prepends ~/.local/bin and the pipx Piper venv bin to PATH before the binary check, so Piper is found regardless of shell mode.

πŸ› Per-Project Voice/Music Lost When CLAUDE_PROJECT_DIR Not in Bash Environment

When Claude Code runs a Bash tool call, CLAUDE_PROJECT_DIR is not passed in the environment. The TTS hooks couldn't find per-project config and fell back to global defaults β€” wrong voice, wrong music, no pretext.

Fix: session-start-tts.sh (and .ps1) now bakes the project directory into the injected hook command as --project-dir. play-tts.sh reads this flag before any config lookup, so per-project routing is reliable in every Bash tool call.

πŸ› play-tts-piper.sh and play-tts-piper.ps1 Not Deployed by agentvibes install

These hooks were missing from CRITICAL_HOOKS / CRITICAL_HOOKS_WINDOWS, so agentvibes install never propagated updated versions to ~/.claude/hooks/.

Fix: Both are now in the critical hooks list and always deployed on install/update.

πŸ› Voice Display Name Bugs

  • uniquifyVoiceName("Mary-1") returned "Mary-1 Bell" instead of "Mary Bell".
  • 16Speakers names like Rose_Ibex were incorrectly getting a surname appended ("Rose Ibex Bell").
  • 🎀 Voice used: line was missing from WSL bash output.

All three fixed. A new test file (test/unit/voice-names.test.js, 16 tests) covers these cases.


πŸͺŸ v5.6.7 β€” Windows Preview Fixed

Released: 2026-05-08

πŸ› Preview Button Now Works Correctly on Windows

When configuring audio per LLM on Windows, clicking Preview was playing the wrong voice (defaulting to Windows SAPI) with no background music or reverb. Now it plays exactly the voice, reverb, and background track you configured.

πŸ§ͺ Regression Tests Added

Two new Windows CI tests verify the preview config lookup β€” so this can't regress silently in a future release.


🎡 v5.6.6 β€” Preview Button Works in WSL + Comprehensive Windows Test Suite

Released: 2026-05-08

πŸ› Background Music Silently Missing from Preview (npm link / Global Install)

When you clicked Preview in the LLM configure modal with a background track set, you heard only the voice β€” no music β€” unless AgentVibes was installed as a local dependency. Fixed regardless of how you install AgentVibes.

Root cause: In npm link and global-install setups, a sync script using rsync --delete periodically erased background-music-enabled.txt from the package directory because the file is gitignored. After deletion, audio-processor.sh fell back to a global config that had music disabled β€” silence.

Fix: audio-processor.sh now checks CLAUDE_PROJECT_DIR/.claude/config/background-music-enabled.txt first. The TUI Preview also writes the flag to the project directory (not the package directory), so it survives any package-dir sync.

πŸ› Per-LLM Config Not Found in npm link / Global Installs

In the same setups, audio-processor.sh couldn't find per-LLM audio configuration (voice, reverb, background track) when your project wasn't the AgentVibes package itself.

Fix: The script now searches CLAUDE_PROJECT_DIR/.claude/config/audio-effects.cfg before falling back to the package config.

πŸ› Background Track "Not Found" After Correct Config

When a background track was configured but AgentVibes was installed globally or via npm link, the track file couldn't be found β€” only the package directory was searched.

Fix: audio-processor.sh now also searches CLAUDE_PROJECT_DIR/.claude/audio/tracks/ when the track isn't in the package directory.

πŸ› LLM Config Row Parsing β€” Volume Absorbing Extra Columns

With a full 7-column LLM row (the format the TUI writes), the volume field absorbed all trailing columns. ffmpeg received a malformed volume string and silently fell back to voice-only audio.

Fix: Parser now captures only the numeric volume field, leaving extra columns in _rest.

πŸ§ͺ Windows CI Test Suite

Windows-native tests now run in CI alongside the Linux BATS suite, gating publishing so Windows-specific paths can't regress silently.


πŸ›‘οΈ v5.6.4 β€” Critical Uninstall Safety Fix

Released: 2026-05-08

πŸ› --global Uninstall No Longer Wipes ~/.claude/

With --global, the uninstaller was removing ~/.claude/ recursively rather than only the AgentVibes-owned paths within it. This caused total data loss β€” settings, CLAUDE.md, skills, plugins, MCP configurations, custom tools, everything. Confirmed real, confirmed fixed.

v5.6.4 performs a surgical removal β€” only paths AgentVibes installed:

  • ~/.claude/hooks/, hooks-windows/, commands/agent-vibes/, personalities/, audio/
  • ~/.agentvibes/ β€” fully AgentVibes-owned, removed entirely
  • settings.json, CLAUDE.md, skills, plugins, MCP configs β€” untouched

A regression test now enforces this in CI. If anyone reintroduces broad deletion, the build fails:

// issue #182 regression guard
assert: settings.json and CLAUDE.md survived --global uninstall

This can't quietly regress β€” it will break the build first.


🌟 v5.6.3 β€” AgentVibes Comes to Hermes + Easier Remote Setup

Released: 2026-05-07

πŸŽ‰ AgentVibes Now Works with Hermes

Hermes is one of the most popular open-source AI agents on GitHub β€” 21,000+ stars and growing. AgentVibes now integrates with it out of the box: when Hermes finishes a response, AgentVibes speaks it aloud through your speakers automatically. No extra setup beyond installing the included hook.

πŸŽ‰ Per-LLM Audio Destination β€” Pick Where the Voice Comes From

When you configure an LLM in AgentVibes (Claude Code, Copilot, Codex, or Hermes), you already could set a unique voice, reverb style, background music, and intro prefix for each one. Now you can also set the audio destination per LLM:

  • Local β€” play through the speakers on the computer you're working on
  • Remote β€” send audio to a different machine (your laptop, for example) while you work on a remote server or run Hermes in the cloud

πŸŽ‰ SSH Alias Picker β€” No More Typing Paths

Setting up remote audio used to require typing an SSH path by hand. Now there's a dropdown right in the AgentVibes TUI that reads the SSH aliases already on your machine. Pick the one that points to your speakers β€” done. Your voice follows you whether you're local or remote.

πŸ› Fixes

  • No audio at all β€” some setups would get complete silence with no error message. Fixed.
  • Wrong voice playing β€” in some configs, AgentVibes would ignore your per-LLM voice settings and fall back to the default. Fixed.
  • Audio settings leaking between messages β€” music or reverb set for one message could accidentally carry over to the next one. Fixed.
  • Lost messages after a crash β€” if AgentVibes crashed mid-message, that message was gone. It now recovers and replays it when it restarts.

πŸŽ›οΈ v5.6.2 β€” Per-Message Audio Control for Remote Providers

Released: 2026-05-02

πŸŽ‰ Per-Message Override: Voice, Music, Reverb, Volume

Remote senders (Hermes, SSH remote provider) can now control every audio parameter per message without touching the receiver's persistent config:

  • Music β€” pass "music": "bachata" (keyword) or full filename to switch background track for that message
  • Volume β€” pass "volume": "0.35" to adjust music volume for that message
  • Reverb β€” pass "effects": "medium" (off/light/medium/heavy/cathedral) to set reverb per message
  • Voice β€” already worked; now documented with full field reference
  • Pretext β€” pass "pretext": "" to suppress the intro prefix for a single message

Previously these fields were parsed by the receiver and queued but never applied β€” play-tts.ps1 didn't read the AGENTVIBES_OVERRIDE_* env vars the watcher set. Fixed.

πŸ“š Hermes Skill: Full Payload Field Reference

agentvibes-target SKILL.md now documents all 9 JSON payload fields with examples so Hermes (or any AI agent) can say "switch to chillwave", "add reverb", "use a female voice", "remove the intro prefix" β€” and it just works.

πŸ› Hermes Hook: handler.py + HOOK.yaml now ship in the package

docs/hermes/skills/tts/hermes-agentvibes-hook/ was missing handler.py and HOOK.yaml β€” only SKILL.md was included. Both files now ship. handler.py also reads AGENTVIBES_MUSIC from the environment so the default background music is configurable without editing the file.


πŸ€– v5.6.1 β€” Hermes Agent Integration & Windows PS5.1 Fixes

Released: 2026-05-01

πŸŽ‰ Hermes Agent Integration (New!)

AgentVibes now officially supports Hermes Agent β€” the self-hosted, self-improving AI assistant. Two production-ready Hermes skills ship in docs/hermes/skills/:

hermes-agentvibes-hook β€” Auto-speaks every Hermes response via AgentVibes

  • Fires on every agent:end event (Telegram, Discord, CLI, etc.)
  • Strips markdown, code blocks, emoji before speaking
  • Truncates at word boundaries, rate-limits to prevent queue flooding
  • MITM-safe SSH with StrictHostKeyChecking=accept-new + persistent known_hosts
  • Full logging to tts-hook.log for debugging

agentvibes-target β€” Teaches Hermes to send any text to your speakers on demand

  • Base64 JSON payload over SSH (same ForceCommand architecture as the Windows receiver)
  • Supports Windows and Android targets
  • Detailed troubleshooting guide included

Install: Copy the skill to your Hermes home and restart the gateway:

cp -r docs/hermes/skills/tts/hermes-agentvibes-hook ~/.hermes/skills/tts/
hermes gateway restart

πŸ› Windows PS5.1 Bug Fixes

  • play-tts.ps1 PS5.1 compatibility β€” Fixed three regressions from v5.6.0 rebase:
    replaced PS7 null-conditional (?.) with PS5.1-compatible if/else, added UTF-8 BOM so
    em-dash literals aren't mangled by CP1252, restored piper provider alias and
    AGENTVIBES_TEXT_FILE sentinel lost in merge
  • Modal & hotkey fixes β€” Modal escape key, navigation hotkeys, Q+Caps Lock, and voice
    preview error handling all repaired
  • BMAD tab β€” Now shows all agents regardless of module

πŸ“Έ v5.6.0 β€” TUI Screenshots & Documentation Cleanup

Released: 2026-04-28

πŸ“Έ TUI Screenshots Added

Added real screenshots of every major TUI tab to the README:

  • Setup tab β€” LLM Providers screen (Claude Code, Copilot, Codex, Default)
  • Configure dialog β€” Per-LLM audio config (voice, pretext, reverb, music)
  • Voice Browser β€” Select Voice dialog with alpha-jump, thumbs up/down, 914 voices
  • Music tab β€” Built-in tracks list with preview and toggle
  • BMad tab β€” Agent voice assignment (voice, reverb, music, pretext per agent)

🧹 Documentation Cleanup

  • Removed all npx agentvibes-voice-browser references (tool retired, replaced by TUI)
  • Renamed "Voice Browser" section to reflect TUI-native access via Setup β†’ Configure β†’ Voice
  • All image paths now use absolute GitHub raw URLs (renders correctly on npmjs.com)
  • Fixed BMad section placeholder screenshot replaced with real screenshot

🎡 v5.5.0 β€” Per-LLM Audio Routing & Windows Installer Resilience

Released: 2026-04-27

πŸ†• Per-LLM Audio Routing

Each LLM (Claude Code, Copilot, Codex) can now have its own voice, pretext, reverb, and
background-music settings. The MCP server passes --llm <key> to both play-tts.sh
(Linux/macOS) and play-tts.ps1 (Windows), and the scripts look up llm:<key> rows in
audio-effects.cfg. Default rows for claude-code, copilot, and codex ship out of the
box; configure them via Setup β†’ Default β†’ Configure in the TUI.

πŸ› Windows Installer Crash Fix

Fixed spinner.info is not a function error that crashed AgentVibes reinstalls on Windows
when users had an older global install. All 10 file-copy functions in the installer now wrap
their spinner with createRobustSpinner() so stale callers can never cause a crash regardless
of which methods they expose.

🎢 Windows Background Music Parity

Windows TTS playback now prefers ffplay (sinc resampling, no artefacts) over the low-quality
WinMM SoundPlayer resampler. The new Invoke-AudioPlay helper handles the fallback
transparently β€” if ffplay is unavailable, SoundPlayer is used as before.

πŸŽ‰ Party Mode Cross-Platform Entry Point

BMAD party mode step files and the Copilot skill now consistently reference
node bin/bmad-speak.js β€” the single cross-platform entry point that delegates to
bmad-speak.ps1 on Windows and bmad-speak.sh elsewhere.

πŸ”§ Other Fixes

  • play-tts.sh now accepts a named --llm <key> flag in addition to the LLM_PROVIDER env var
  • mcp-server/server.py routes AGENTVIBES_LLM β†’ CLAUDECODE=1 β†’ AGENTVIBES_MCP_FALLBACK
    priority chain and forwards the resolved key as -llm/--llm to TTS scripts
  • Added audio-effects.cfg rows for llm:claude-code, llm:copilot, llm:codex
  • Added command-routing.test.js and ConfigService unit tests
  • npm pack content guard now catches untracked publishable files

πŸ“Š Technical

  • 231 tests passing (0 failures)

πŸŽ›οΈ v5.4.0 β€” TUI Installer, Spinner Fix & Dependency Cleanup

Released: 2026-04-22

✨ New

  • TUI Installer: Interactive terminal UI for guided installation β€” browse voices, configure providers, enable BMAD party mode, all from a beautiful terminal interface
  • Cross-Platform Spinner Fix: Resolved spinner.info is not a function crash on WSL/Linux that blocked installation

πŸ› Bug Fixes

  • Removed circular self-dependency: package.json was depending on agentvibes@^3.5.9 (itself), causing npm to shadow the fixed binary with the old buggy one β€” the silent cause of the spinner crash on repeat installs
  • Restored background music volume fallback: audio-processor.sh bg_volume="0.20" fallback lost in merge was restored
  • Fixed PROJECT_ROOT detection in play-tts.sh: Walk-up logic was going 2 levels too far, causing TTS to use global ~/.agentvibes config instead of project config

πŸ”§ Technical

  • 706/738 tests passing

✨ v3.5.10 - Soprano Detection Fixes & Enhanced Installer Features

Release Date: February 14, 2026

🎯 Summary

Production release combining critical bug fixes and new installer features. Fixed Soprano TTS detection for pipx installations (the core issue reported by users), resolved 5 execSync API misuse bugs that were breaking Python package detection, and eliminated 100+ lines of code duplication. Introduces new installer features: custom music track support with preview functionality, personality emoji mapping for better visual recognition, and pretext configuration allowing users to customize agent introductions.

✨ Key Features & Fixes

πŸ”§ Critical Bug Fixes:

  • Soprano TTS Detection: Fixed detection when installed via pipx (was showing "not installed" despite working)
  • execSync API Bugs: Fixed 5 locations using incorrect API signature (array args with execSync)
  • Code Duplication: Eliminated 100+ lines of duplicate code between Soprano and Piper validators
  • API Consistency: All provider validation functions now return consistent response structures
  • Python Package Detection: Fixed broken Python pip detection that was silently failing

🎨 New Installer Features:

  • Custom Music Tracks: Users can now upload and preview their own background music
  • Personality Emojis: Visual recognition mapping (😊 for none, 🎭 for dramatic, πŸ’ for sassy, etc.)
  • Pretext Configuration: Custom agent introductions (e.g., "FireBot: " prefix for all messages)
  • Track Preview: Audio preview with support for ffplay, sox, and mpv players

πŸ›‘οΈ Security & Quality:

  • Improved path traversal protection in provider validation
  • Enhanced error handling and logging
  • Reduced code complexity by 29% through deduplication
  • Test coverage improved: 56.61% β†’ 63.67%

πŸ“Š Technical Details

Soprano Detection Improvements:

  • Checks command in PATH first (most reliable for pipx)
  • Falls back to ~/.local/bin directory check
  • Checks pipx venv directory for installation
  • Final fallback to Python pip package detection
  • Consistent error messages showing all checked locations

Code Quality Metrics:

  • File size reduced by 145 lines (-29%)
  • Code duplication eliminated (was ~100 lines)
  • Test coverage improved +7.06%
  • All 114 tests passing
  • Provider validator now 63.67% covered (up from 56.61%)

Installer Enhancements:

  • Added personality emoji mapping (26 personalities)
  • Custom track upload with validation
  • File type restrictions (.mp3, .wav, .ogg, .m4a)
  • Registry storage in ~/.agentvibes/custom-tracks.json
  • Audio preview before finalizing selection

πŸ”’ Security Notes

  • All spawnSync calls now use correct array argument form
  • Path traversal prevention maintained in all operations
  • HOME injection protection via os.homedir()
  • No hardcoded credentials introduced
  • Input validation for file uploads and track selection

πŸ› Known Limitations

  • Audio preview requires ffplay, sox, or mpv (feature gracefully degrades if unavailable)
  • Custom track registry is stored locally per user
  • Some legacy bash scripts still lack strict mode (pre-existing, low risk)

πŸ™ Acknowledgments

This release includes fixes identified through adversarial code review, ensuring production-quality reliability and security alignment with CLAUDE.md standards.


πŸ›‘οΈ v3.5.8 - Provider Validation Security & UX Improvements

Release Date: February 12, 2026

🎯 Summary

Critical security and reliability update for provider detection. Fixes command injection vulnerabilities in validation code, prevents HOME directory injection attacks, and improves UX with explicit provider detection messaging. Soprano TTS installed via pipx is now correctly detected (previously showed "not installed" due to ES module import error). All 8 critical code review issues resolved with comprehensive security hardening and enhanced error reporting.

✨ Key Improvements

  • πŸ” Security Fixes: Fixed command injection vulnerability (template strings β†’ array form), prevented HOME injection attacks, added path traversal protection
  • βœ… Provider Detection: Soprano via pipx now correctly detected; added checkedLocations tracking for transparency
  • πŸ’¬ Better Messaging: Explicit "Detected and selected!" confirmation; detailed error messages showing what was checked
  • πŸ§ͺ Test Coverage: Enhanced tests verify actual detection values, not just types
  • πŸ› Debugging: Added [DEBUG] logging for troubleshooting provider issues

πŸ”΄ Critical Fixes

  1. Command Injection Prevention - All execSync calls now use array form (security: CLAUDE.md)
  2. HOME Directory Injection - Switched to os.homedir() instead of process.env.HOME
  3. Path Traversal Protection - Added path.resolve() validation for pipx venv directories

🟑 Medium Fixes

  1. Pipx Logic Improved - Tracks checked locations even on success (transparency)
  2. Silent Failures Eliminated - Added [DEBUG] error logging for diagnostics
  3. Test Quality Enhanced - Verify message content, not just types
  4. Documentation - Added JSDoc comments explaining security-critical imports
  5. Error Differentiation - Better distinction between different failure types

πŸ“Š Technical Impact

  • Soprano detection now works reliably for both pip and pipx installations
  • Reduced false negatives in provider validation
  • Enhanced security posture aligned with CLAUDE.md security mandates
  • Improved debuggability with explicit error messages

πŸ”§ v3.5.7 - CLI Fix: npx Command Output & Startup Hooks

Release Date: February 12, 2026

Fixes critical bug where npx agent-vibes install and other commands produced no output, making CLI unusable. Root cause: bin/agent-vibes used dynamic import without passing arguments to installer.js on local execution. Also removed broken hook configurations (pre_compact.py, notification.ts) that didn't exist and caused startup errors in Claude Code settings.

🎯 What's Fixed

  • npx agent-vibes now works - npx agent-vibes install, npx agent-vibes --help, all commands produce proper output
  • Startup hook errors gone - Removed non-existent hook references from settings.json (pre_compact.py, notification.ts)
  • CLI execution proper - Both npx and local execution now use execFileSync with proper argument passing

πŸš€ Technical Details

Before v3.5.7:

// bin/agent-vibes (local execution path)
import('../src/installer.js');  // ❌ No args, doesn't await

After v3.5.7:

// bin/agent-vibes (all execution paths)
execFileSync('node', [installerPath, ...arguments_], {
  stdio: 'inherit',
  cwd: isNpxExecution ? path.dirname(__dirname) : process.cwd(),
});  // βœ… Passes args, proper I/O

πŸ”§ v3.5.6 - Bug Fix: Bash Hook Parameter Handling

Release Date: February 11, 2026

Fixes critical regression in v3.5.5 where bash hooks failed with unbound variable errors when called with optional parameters under strict mode. Affects play-tts.sh and provider-manager.sh.


πŸ“¦ v3.5.5 - Native Windows Support: Soprano, Piper & SAPI Providers

Release Date: February 12, 2026

🎯 Why v3.5.5?

v3.5.5 brings native Windows support to AgentVibes with a full-featured PowerShell installer and three TTS providers. Windows users no longer need WSL - AgentVibes runs natively with Soprano (neural), Piper (offline neural), or Windows SAPI (zero-setup) voices. The installer also adds background music selection (16 genre tracks), reverb/audio effects (via ffmpeg aecho), and verbosity control for the TTS experience.

πŸš€ Key Highlights

πŸ–₯️ Native Windows TTS (NEW!)

  • 3 providers: Soprano (ultra-fast neural), Piper (offline neural), Windows SAPI (built-in)
  • Beautiful PowerShell installer with figlet banner and interactive setup
  • 8 hook scripts for complete TTS functionality on Windows
  • MCP server auto-resolves .sh to .ps1 on Windows
  • 46 Windows-specific unit tests with full coverage

🎡 Background Music Selection

  • 16 genre tracks: Flamenco, Bachata, Bossa Nova, City Pop, Chillwave, and more
  • Interactive picker in the installer with descriptions
  • ffmpeg mixing: 2s intro, voice over music, 2s fade-out outro

πŸŽ›οΈ Reverb / Audio Effects

  • 5 reverb levels: Off, Light, Medium, Heavy, Cathedral
  • ffmpeg aecho filter (no SOX dependency on Windows)
  • Applied before background music mixing for clean layering

πŸ”Š Verbosity Control

  • 3 levels: High (full reasoning), Medium (key updates), Low (essential only)
  • Integrates with session-start-tts.ps1 protocol instructions

πŸ€– AI Summary

AgentVibes v3.5.5 delivers native Windows support with a polished PowerShell installer offering three TTS providers (Soprano neural, Piper offline, Windows SAPI), background music selection from 16 genre tracks, reverb effects via ffmpeg aecho filter, and verbosity control. The release includes 8 Windows hook scripts, MCP server platform detection for automatic .sh-to-.ps1 resolution, and 46 new unit tests. Security hardening adds path traversal prevention with regex allowlisting and path containment checks, reverb config allowlist validation, and strict mode compliance across all scripts. Cross-platform test fixes ensure the full 93-test suite passes on both Windows and Unix.


✨ New Features

Native Windows TTS

  • Full PowerShell installer (setup-windows.ps1) with figlet banner and interactive UX
  • Soprano provider (play-tts-soprano.ps1) with Gradio WebUI integration
  • Piper provider (play-tts-windows-piper.ps1) with auto-download of voices from HuggingFace
  • Windows SAPI provider (play-tts-windows-sapi.ps1) with zero-setup built-in voices
  • TTS router (play-tts.ps1) with mute support, background music mixing, and reverb
  • Provider manager, voice manager, audio cache utils, and session-start hook scripts
  • MCP server .sh to .ps1 auto-resolution on Windows

Installer Enhancements

  • Background music selection with 16 genre tracks and interactive picker
  • Reverb/audio effects selection (Off/Light/Medium/Heavy/Cathedral)
  • Verbosity control (High/Medium/Low) for TTS protocol instructions
  • Updated completion screen showing all 4 settings (provider, background, reverb, verbosity)

πŸ› Bug Fixes

Security Fixes

  • Fix path traversal in background music config reader (regex allowlist + path containment)
  • Add allowlist validation for reverb-level.txt config (prevent invalid values)
  • Add set -euo pipefail strict mode to play-tts.sh for Sonar compliance

Cross-Platform Fixes

  • Fix self-copy error when setup-windows.ps1 runs from project root
  • Fix test executable permission checks on Windows (skip Unix mode bits)
  • Fix test path separator comparison in uninstall test (use path.join not hardcoded /)

πŸ—οΈ Improvements

Code Quality

  • Reverb config uses switch-as-allowlist pattern - file content never flows into commands
  • All SoundPlayer instances wrapped in try/finally for resource disposal
  • Environment variable cleanup (AGENTVIBES_NO_PLAY) on all exit paths
  • Input validation with regex + range checks for all installer prompts

Testing

  • 46 new Windows-specific unit tests (hook scripts, providers, security, encoding)
  • 3 cross-platform test fixes for Windows compatibility
  • Full suite: 93 Node tests passing on Windows

πŸ“Š Statistics

  • 7 commits since v3.4.1
  • 3,769 lines added, 211 removed across 24 files
  • 9 new PowerShell scripts for Windows TTS
  • 93 tests passing (46 Windows + 47 cross-platform)
  • 24/24 Sonar quality gates passing
  • Security score: All path traversal and injection vectors reviewed

πŸ”§ Technical Details

Files Added

  • .claude/hooks-windows/play-tts.ps1: TTS router with reverb and background music
  • .claude/hooks-windows/play-tts-soprano.ps1: Soprano neural TTS provider
  • .claude/hooks-windows/play-tts-windows-piper.ps1: Piper offline TTS provider
  • .claude/hooks-windows/play-tts-windows-sapi.ps1: Windows SAPI built-in voices
  • .claude/hooks-windows/provider-manager.ps1: Provider switching
  • .claude/hooks-windows/voice-manager-windows.ps1: Voice browsing and selection
  • .claude/hooks-windows/audio-cache-utils.ps1: Cache management
  • .claude/hooks-windows/session-start-tts.ps1: Auto-activates TTS on Claude start
  • setup-windows.ps1: Full Windows installer with 4 interactive sections
  • test/unit/windows-tts.test.js: 46 Windows-specific unit tests

Breaking Changes

None - all changes are backward compatible. Existing Unix/macOS installations are unaffected.


πŸŽ“ Migration Notes

For New Windows Users

  1. Run npx agentvibes install (Node.js) or .\setup-windows.ps1 (PowerShell)
  2. Follow the interactive setup
  3. Choose provider (Soprano, Piper, or SAPI)
  4. Select background music, reverb, and verbosity
  5. TTS works automatically in Claude Code sessions

For Existing Unix/macOS Users

  • No changes required - your setup continues working
  • All Unix bash hooks remain untouched
  • Only play-tts.sh gained set -euo pipefail (strict mode)

πŸ™ Acknowledgments

Project Lead

  • @paulpreibisch (Paul Preibisch) β€” Creator and maintainer of AgentVibes

Community Contributors

  • @nathanchase β€” For contributing the Soprano TTS provider in v3.4.0, whose ultra-fast neural engine is now one of the three Windows-native providers
  • @alexeyv β€” For suggesting native Windows support and recommending Windows SAPI as a zero-dependency provider
  • @bmadcode (Brian Madison) β€” Creator of the BMAD Method, used daily for planning and building AgentVibes features

Quality Assurance

  • Adversarial Security Review: Path traversal, injection, and resource disposal all validated
  • Testing: 93/93 tests passing (100% suite coverage)
  • Quality Gates: 24/24 Sonar requirements validated
  • Co-Authored-By: Claude Opus 4.6

Full Changelog: v3.4.1...v3.5.5


πŸ“¦ v3.4.0 - Soprano TTS, Security Hardening & Environment Intelligence

Release Date: February 10, 2026

🎯 Why v3.4.0?

v3.4.0 introduces Soprano TTS - an ultra-fast neural TTS provider with GPU acceleration, comprehensive security hardening across the codebase, and intelligent environment detection that recognizes PulseAudio tunnels for remote audio scenarios.

πŸš€ Key Highlights

⚑ Soprano TTS Provider (NEW!)

  • 80M parameter neural model with premium female English voice
  • 20x CPU speed (vs Piper), 2000x GPU speed with CUDA
  • 3 synthesis modes: WebUI (Gradio), API (OpenAI-compatible), CLI (fallback)
  • Auto-detection: Checks for running Gradio server, falls back gracefully
  • <1GB memory footprint - perfect for low-RAM systems
  • Provider-aware voice management: Auto-selects single voice, shows model specs
  • Thanks to @nathanchase for this contribution! (see acknowledgments)

πŸ›‘οΈ Security Hardening (9.5/10 Score)

  • Timeouts on system commands: Prevents installer hangs (nvidia-smi, sysctl, meminfo)
  • Bounds checking: Validates array access before parsing system output
  • NaN validation: Prevents crashes from malformed memory/GPU detection
  • Case-insensitive checks: PulseAudio tunnel detection handles TCP: and tcp:
  • Code duplication eliminated: Extracted PulseAudio helper function (DRY)

🌐 Environment Intelligence

  • PulseAudio tunnel detection: Recognizes PULSE_SERVER=tcp:* as working audio
  • Context-aware messaging:
    • "🌐 PulseAudio Tunnel Detected!" for SSH + tunnel setups
    • "πŸ”Š Audio Output Detected!" for local speakers
    • Distinguishes local/tunnel/hybrid configurations
  • Smart environment classification:
    • DESKTOP: Local audio OR active PulseAudio tunnel
    • VOICELESS: No audio AND no tunnel
    • PHONE: Termux/Android devices

🎀 Installer Enhancements

  • Provider-aware voice pages: Soprano shows model specs, Piper shows 50+ voices
  • Auto-selection logic: Soprano (1 voice) auto-selects, no manual choice needed
  • GPU-based recommendations: "Your GPU will run Soprano 2000x faster!"
  • RAM-based suggestions: Low memory systems see "Soprano uses <1GB" message
  • Better RAM display: Shows "512MB" instead of "0GB" for sub-1GB systems

πŸ€– AI Summary

AgentVibes v3.4.0 brings Soprano TTS - an 80M parameter neural provider offering 20x CPU and 2000x GPU acceleration with sub-1GB memory footprint - plus comprehensive security hardening (timeouts, bounds checking, NaN validation) and intelligent environment detection that recognizes PulseAudio tunnels as working audio for remote scenarios. The enhanced installer provides context-aware messaging distinguishing local speakers from SSH tunnels, GPU-based provider recommendations (Soprano for CUDA users, macOS Say for Apple, Piper for versatility), and provider-specific voice pages that auto-select Soprano's single voice while showcasing model specifications. This release achieves a 9.5/10 security score through systematic defensive programming, making AgentVibes production-ready for enterprise deployments while expanding TTS provider options for diverse hardware configurations.


✨ New Features

Soprano TTS Provider

  • Add Soprano TTS provider script with 3 synthesis modes (WebUI, API, CLI) (#95)
  • Integrate Soprano into TTS router and provider manager
  • Add soprano-gradio-synth.py helper for WebUI/SSE protocol
  • Provider-aware voice selection page with model specifications
  • Auto-select single Soprano voice with performance details

Installer Intelligence

  • Add detectSystemCapabilities() for GPU/RAM detection
  • Add hasPulseAudioTunnel() helper function
  • Context-aware audio detection messaging (tunnel vs local)
  • GPU-based provider ordering (Soprano first for CUDA users)
  • RAM-based recommendations (<4GB systems see Soprano first)
  • Provider-specific intro messages (Soprano vs Piper vs macOS)

Environment Detection

  • PulseAudio tunnel recognition via PULSE_SERVER env var
  • Case-insensitive TCP protocol detection
  • Smart DESKTOP classification (local audio OR tunnel)
  • Improved VOICELESS detection (no audio AND no tunnel)

πŸ› Bug Fixes

Security Fixes

  • Add 5s timeout to nvidia-smi to prevent GPU detection hangs
  • Add 3s timeout to sysctl/meminfo to prevent memory detection hangs
  • Add bounds checking before parsing sysctl output (macOS)
  • Add bounds checking before parsing /proc/meminfo (Linux)
  • Add NaN validation for parseInt() memory size parsing
  • Fix case sensitivity in PULSE_SERVER detection (handles TCP: and tcp:)

Test Fixes

  • Fix provider-manager test #90: Add soprano and ssh-remote to cleanup list
  • Ensure zero-provider edge case properly simulates empty state

User Experience

  • Fix RAM display for <1GB systems (show "512MB" not "0GB")
  • Fix PulseAudio selection triggering wrong setup flow
  • Separate PulseAudio tunnel setup from SSH receiver setup

πŸ—οΈ Improvements

Code Quality

  • Extract PulseAudio detection to helper function (DRY principle)
  • Implement system capabilities caching (eliminates duplicate calls)
  • Add comprehensive error handling in detectSystemCapabilities()
  • Improve code comments for security-critical sections

Performance

  • Cache system detection results (prevents duplicate nvidia-smi calls)
  • Add timeouts to prevent indefinite hangs
  • Optimize provider detection with early returns

Documentation

  • Add comprehensive commit message documenting all changes
  • Document security improvements (timeouts, bounds checking, NaN validation)
  • Explain PulseAudio tunnel detection architecture
  • Detail environment classification logic

πŸ“Š Statistics

  • 91 commits since v3.3.0
  • 817 lines added in merge to master
  • 6 files modified in core integration
  • 260 tests passing (213 BATS + 47 Node)
  • Security score: 7.5/10 β†’ 9.5/10
  • Test coverage: 100% pass rate

πŸ”§ Technical Details

Files Modified

  • src/installer.js: +335 lines (security fixes, environment detection, Soprano integration)
  • test/unit/provider-manager.bats: +4 lines (fix edge case test)
  • .claude/hooks/play-tts-soprano.sh: +320 lines (new provider)
  • .claude/hooks/soprano-gradio-synth.py: +139 lines (new helper)
  • .claude/hooks/provider-manager.sh: +17 lines (Soprano support)
  • .claude/hooks/play-tts.sh: +6 lines (route to Soprano)

Breaking Changes

None - all changes are backward compatible.

Dependencies

  • New: soprano-tts (Python package, optional)
  • Recommended: CUDA-capable GPU for 2000x speedup (optional)
  • Compatible: Works on CPU-only systems (20x vs Piper)

πŸŽ“ Migration Notes

For New Users

  1. Run npx agentvibes install
  2. Installer auto-detects your hardware (GPU, RAM, platform)
  3. Soprano appears as option if you have working audio
  4. Select Soprano for ultra-fast TTS with GPU acceleration

For Existing Users

  1. Update: npx agentvibes update
  2. Switch provider: /agent-vibes:provider switch soprano
  3. Test: /agent-vibes:sample soprano-default
  4. Optionally install soprano-tts: pip install soprano-tts

PulseAudio Tunnel Users

  • Installer now auto-detects your tunnel configuration
  • Shows "🌐 PulseAudio Tunnel Detected!" instead of "speakers"
  • Provides DESKTOP mode options (Soprano, Piper, macOS Say)
  • No manual configuration needed

πŸ™ Acknowledgments

Special Thanks

πŸŽ‰ @nathanchase - For contributing the Soprano TTS Provider integration (PR #95)! Nathan's work brings ultra-fast neural TTS with GPU acceleration to AgentVibes, offering 20x CPU and 2000x GPU performance improvements. The comprehensive integration includes WebUI, API, and CLI synthesis modes with intelligent auto-detection and graceful fallback. Thank you for this outstanding contribution! πŸš€

Quality Assurance

  • Security Review: Adversarial code review achieved 9.5/10 score
  • Testing: All 260 tests pass (100% suite coverage)
  • Quality Gates: All Sonar requirements validated
  • Co-Authored-By: Claude Sonnet 4.5

πŸ“š Additional Resources


Full Changelog: v3.3.0...v3.4.0


πŸ“¦ v3.3.0 - Remote TTS, Smart Installer, OpenClaw Receiver & Cache Management

Release Date: February 5, 2026

🎯 Why v3.3.0?

v3.3.0 transforms AgentVibes into a universal TTS platform for any environment:

  • SSH-Remote Provider - Generate TTS on servers, receive audio on your phone/computer
  • Termux/Android Support - Native Piper TTS on mobile devices
  • OpenClaw Integration - Turn voiceless servers into Siri-like conversational AI
  • AgentVibes Receiver - Receive and play audio from remote servers on your device
  • Smart Installer - Auto-detects your environment (voiceless, GUI, Termux, SSH)
  • Intelligent Cache Management - Real-time tracking and auto-cleanup prevents disk bloat

🌐 Real-World Use Case: OpenClaw + AgentVibes Receiver

You deploy OpenClaw on a voiceless Mac mini (or remote server) where users message you via WhatsApp, Telegram, or Discord. With v3.3.0:

Before AgentVibes Receiver:

  • User messages: "Tell me a joke"
  • Mac mini processes request
  • Text response appears in chat
  • 😞 No audio - silent experience

After AgentVibes Receiver:

  1. Install AgentVibes on your Mac mini (or remote server)
  2. Install AgentVibes Receiver on your phone/iPad/laptop
  3. Connect via Tailscale (one-time setup)
  4. User messages: "Tell me a joke"
  5. Mac mini generates TTS with your configured voice
  6. Audio streams to your device via SSH tunnel
  7. Your speakers play: πŸ”Š "Why did the AI go to school? To improve its learning model!"
  8. User in WhatsApp also hears the audio playing (Siri-like experience)

Result: OpenClaw transforms from silent text AI β†’ Conversational AI with voice

Perfect for:

  • πŸ–₯️ Mac mini with OpenClaw
  • πŸ–₯️ Remote servers (AWS, DigitalOcean, Linode)
  • πŸ—οΈ Container deployments (Docker)
  • πŸ”§ WSL (Windows Subsystem for Linux)
  • πŸ“± Any voiceless environment needing audio

πŸ€– AI Summary

AgentVibes v3.3.0 unleashes the platform across new frontiers: remote servers via SSH-PulseAudio tunneling, Android/Termux environments with native Piper support, and OpenClaw (formerly Clawdbot) multi-agent orchestration. The redesigned smart installer detects your environment (voiceless, GUI, SSH, Termux) and shows only relevant options, plus optional BMAD personality injection for advanced users. Every TTS output now displays real-time cache metrics (file count/size with dynamic colors) plus intelligent size-based auto-cleanup that deletes oldest files when the cache exceeds threshold. The release includes comprehensive TTS queue management to prevent audio overlap, audio effects support across all providers, and full MCP tool integration for programmatic control. This release transforms AgentVibes into a universal TTS platform.

Key Highlights:

  • 🌍 SSH-Remote TTS - Remote device playback via PulseAudio tunneling (servers, containers, WSL)
  • πŸ“± Android/Termux Support - Native Piper TTS on Android with termux-media-player integration
  • πŸ€– OpenClaw Receiver (formerly Clawdbot) - AgentVibes Receiver for receiving TTS from voiceless servers
  • 🧠 Smart Installer - Voiceless environment detection + personality injection for BMAD
  • πŸ“Š Real-Time Cache Tracking - File count and size on every output with dynamic colors
  • 🧹 Intelligent Auto-Cleanup - Size-based threshold (15MB default) prevents storage bloat
  • 🎡 Queue Management - Prevents TTS audio overlap via centralized queue system
  • βš™οΈ Audio Effects - Full support across SSH-remote, Termux-ssh, and local providers
  • πŸ“ Uninstall Command - Comprehensive cleanup with full documentation
  • βœ… 96 Commits - Massive feature expansion with 213 BATS tests passing

✨ New Features

🌍 Remote SSH TTS Support

SSH-Remote Provider:

  • Play TTS on remote servers via SSH + PulseAudio tunneling
  • Zero-dependency for audio output (uses PulseAudio network tunnel)
  • Perfect for deployed Claude Code on servers, containers, WSL
  • Auto-configuration of PulseAudio TCP module
  • Fallback to local playback if SSH unavailable
  • Full compatibility with all voice selection and audio effects

SSH-PulseAudio Integration:

  • Automatic SSH connection detection and setup
  • Secure TCP tunnel for audio stream transmission
  • Support for both interactive and batch TTS operations
  • Persistent audio configuration per SSH session

πŸ“± Android/Termux Support

Termux-SSH Provider:

  • Native Piper TTS on Android via Termux environment
  • Uses termux-media-player for audio playback
  • Full voice selection and effects support
  • Automatic temp directory detection
  • Integration with Tailscale for secure remote access
  • Comprehensive setup guide with QR codes

Android Installation:

  • Self-contained Termux installer script
  • One-command setup: curl https://agentvibes.org/install-android | bash
  • Automatic dependency detection and installation
  • Piper voice download management

πŸŽ™οΈ OpenClaw Integration & AgentVibes Receiver

What is AgentVibes Receiver?

AgentVibes Receiver is a lightweight audio client that receives and plays TTS audio from remote servers where OpenClaw is installed. It runs on your phone, tablet, or personal computer and connects to voiceless servers via SSH tunnel.

The Problem It Solves:

  • OpenClaw running on Mac mini/remote server has no audio output
  • Users message via WhatsApp/Telegram/Discord - get text responses only
  • 😞 No voice = Less engaging AI experience

AgentVibes Receiver Solution:

  1. Lightweight client runs on your device (phone/tablet/laptop)
  2. SSH tunnel securely connects to your voiceless server
  3. Audio streams from server to your device via PulseAudio
  4. Auto-plays on your speakers when OpenClaw responds
  5. Siri-like experience - Text + Voice in one flow

How It Works:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Your Mac mini / Server       β”‚
β”‚ (OpenClaw + AgentVibes)      β”‚
β”‚ β”œβ”€ No audio output           β”‚
β”‚ β”œβ”€ Generates TTS             β”‚
β”‚ └─ Sends via SSH tunnel      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
            ↓ SSH Tunnel (encrypted)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Your Phone / Laptop          β”‚
β”‚ (AgentVibes Receiver)        β”‚
β”‚ β”œβ”€ Receives audio stream     β”‚
β”‚ β”œβ”€ Plays on speakers         β”‚
β”‚ └─ You hear OpenClaw speak   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Example Flow:

WhatsApp: "Tell me a joke"
        ↓
Mac mini: Processes with Claude
        ↓
Generates TTS: "Why did the AI... [audio file]"
        ↓ SSH tunnel
Your Phone: Plays audio πŸ”Š
        ↓
You hear: "Why did the AI go to school?"

AgentVibes Receiver Features:

  • One-Time Setup - Pair with server via SSH key
  • Automatic Connection - Reconnects if interrupted
  • Real-Time Streaming - Low latency audio playback
  • SSH Encryption - Secure tunnel for audio
  • Tailscale Support - Easy VPN for remote servers
  • Multiple Servers - Connect to different OpenClaw instances
  • Voice Control - Full voice selection on the server side
  • Cache Metrics - Monitor audio generation and cleanup

OpenClaw Skill Integration:

  • Installed automatically with AgentVibes on OpenClaw server
  • Full feature access:
    • Voice selection (50+ voices)
    • Personality/sentiment (sarcastic, flirty, etc.)
    • Audio effects (reverb, echo, pitch)
    • Speech speed (0.5x - 3.0x)
    • Language translation (speak in different languages)
    • Real-time cache tracking
    • Automatic cleanup of old audio files

🧠 Smart Installer Enhancements

Voiceless Environment Detection:

  • Auto-detects if GUI audio is unavailable (headless servers, containers)
  • Offers SSH-remote TTS as alternative for voiceless environments
  • Prevents installation of unnecessary audio dependencies

Personality Injection (BMAD):

  • Interactive prompt during install for BMAD users
  • Optional TTS personality configuration
  • Sentiment/personality selection built into setup flow
  • Skipped for non-BMAD environments

Provider Auto-Selection:

  • Intelligent detection of available providers:
    • macOS Say (macOS systems)
    • Piper TTS (all systems)
    • SSH-remote (if SSH available)
    • Termux-ssh (Android/Termux)
  • Shows only relevant providers in installation

Better UX:

  • Clear descriptions of each provider
  • Setup URLs for complex providers (Tailscale)
  • Comprehensive help text for each option
  • Git log integration for recent changes

πŸ“Š Real-Time TTS Cache Tracking & Intelligent Auto-Cleanup

Why Cache Management Matters:

  • TTS audio files accumulate quickly
  • Server deployments can run out of disk space silently
  • Users have no visibility into cache size or cleanup status
  • Manual cleanup is inconvenient and error-prone

Cache Display on Every Output:
Every time you generate TTS, you see real-time cache metrics:

πŸ’Ύ Saved to: /home/user/.claude/audio/tts-1770274925.wav πŸ“¦ 28 20.9MB 🧹[15mb]

What you see:

  • πŸ’Ύ Full path - Clickable file for replay or sharing
  • πŸ“¦ 28 - File count in cache
  • 20.9MB - Total cache size (color-coded):
    • 🟒 Green: <500MB
    • 🟑 Yellow: 500MB-3GB
    • πŸ”΄ Red: >3GB
  • 🧹 [15mb] - Auto-cleanup threshold

Intelligent Size-Based Auto-Cleanup:

  • Deletes oldest files when cache exceeds threshold (default: 15MB)
  • Silent operation (no blocking prompts)
  • Write-lock protection prevents conflicts with TTS generation
  • Respects active TTS (won't delete while generating)

Configuration:

# Per-project threshold override
echo "50" > .claude/tts-auto-clean-threshold.txt  # 50MB limit

# Or disable cleanup
echo "0" > .claude/tts-auto-clean-threshold.txt   # Disable

Manual Cleanup:

# Non-interactive cleanup
/agent-vibes:clean

# Or programmatically via MCP
await agent_vibes.clean_audio_cache()

🎡 TTS Queue Management

Overlap Prevention:

  • Centralized queue system for TTS operations
  • Prevents simultaneous audio playback
  • Critical for Clawdbot multi-agent scenarios
  • Atomic queue operations ensure consistency

Queue Integration:

  • Automatic in OpenClaw Receiver
  • Optional in standalone environments
  • Fallback to sequential playback

βš™οΈ Audio Effects Across All Providers

Effects Support:

  • Reverb, echo, pitch, EQ available
  • SSH-remote provider: Full effects support
  • Termux-ssh provider: Full effects support
  • All local providers: Unchanged effects behavior

Configuration:

  • Per-session override via environment variables
  • Project-local settings via config files
  • Persistent across TTS operations

πŸ“ Comprehensive Uninstall Command

/agent-vibes:uninstall Skill:

  • Complete removal of AgentVibes and dependencies
  • Interactive prompts for user confirmation
  • Option to preserve configuration
  • Detailed removal logs
  • Full documentation included

πŸ› Bug Fixes

  • TTS Overlap - Fixed audio overlapping via queue management
  • Termux Audio - Proper detection and use of termux-media-player
  • SSH Detection - Improved SSH environment detection logic
  • Race Conditions - Write-lock mechanism prevents cleanup conflicts
  • Temp Directory - Proper Termux temp directory handling
  • Color Codes - Fixed GOLD color (256-color οΏ½[38;5;226m)
  • Stat Compatibility - BSD/GNU stat detection with proper output suppression
  • Syntax Validation - Fixed installer.js syntax errors
  • Coverage Testing - Proper coverage file generation for CI/CD

πŸ”’ Security & Quality

  • No Hardcoded Credentials - All secure operations use environment variables
  • SSH Safety - Secure PulseAudio tunnel authentication
  • Atomic Operations - Queue and receiver use atomic file operations
  • Input Validation - All external inputs validated
  • Pre-existing Limitations - TTS scripts lack set -euo pipefail (pre-existing)
  • Sonar Compliance - Security hotspots resolved, quality gates passing
  • Test Coverage - 213 BATS tests + 47 Node unit tests

βœ… Testing & Validation

  • 213 BATS Tests - Core functionality validation
  • 47 Node Tests - JavaScript/installer validation
  • Cross-Platform - Piper, macOS, SSH-remote, Termux-ssh
  • Environment Tests - Voiceless, GUI, SSH, Termux detection
  • Audio Effects - All providers tested
  • Backwards Compatible - No breaking changes to existing code

πŸ“¦ v3.2.0 - Clawdbot Integration: AI Assistants on Any Messenger

Release Date: January 27, 2026

🎯 Why v3.2.0?

This minor release adds native Clawdbot integration to AgentVibes, bringing professional TTS to the revolutionary AI assistant you can access via any instant messenger. Clawdbot connects Claude AI to WhatsApp, Telegram, Discord, and moreβ€”and now with AgentVibes, your Clawdbot can speak with 50+ professional voices in 30+ languages. This release also includes SonarCloud quality gate improvements and CI/CD workflow enhancements.

πŸ€– AI Summary

AgentVibes v3.2.0 introduces seamless integration with Clawdbot, the revolutionary AI assistant accessible via any instant messenger. With this release, Clawdbot users get professional TTS with 50+ voices, remote SSH audio support for server deployments, and zero-configuration setupβ€”just install AgentVibes and the Clawdbot skill is ready. The release also includes quality improvements: SonarCloud workflow fixes, enhanced documentation for disabling quality gate checks, and improved test coverage validation.

Key Highlights:

  • πŸ€– Clawdbot Integration - Native TTS support for Clawdbot AI assistant framework
  • πŸ’¬ Messenger Platforms - Works with WhatsApp, Telegram, Discord via Clawdbot
  • πŸ”Š Remote SSH Audio - Perfect for Clawdbot on remote servers with PulseAudio tunneling
  • πŸ“¦ Simple Install - Just npx agentvibes install and it works
  • πŸ›‘οΈ SonarCloud Fixes - Quality gate workflow improvements and documentation
  • βœ… Full Test Coverage - All 213 BATS + 47 Node tests passing

✨ New Features

Clawdbot Skill (.clawdbot/):

  • New .clawdbot/ directory with skill integration files
  • README.md - Clawdbot integration overview and setup guide
  • skill/SKILL.md - Comprehensive skill documentation with voice selection, background music, effects, personalities, and remote SSH audio setup
  • Automatically distributed via npm package
  • Zero-configuration when AgentVibes is installed

README Updates:

  • Added "πŸ€– Clawdbot Integration" section with full documentation
  • Updated header to include Clawdbot alongside Claude Code, Claude Desktop, and Warp Terminal
  • Added Clawdbot to Quick Links table
  • Clawdbot description: "A revolutionary AI assistant you can access via any instant messenger"
  • Website link: https://clawd.bot

package.json Updates:

  • Added .clawdbot/ to npm files array for distribution
  • Added clawdbot to keywords for npm discoverability
  • Updated description to mention Clawdbot support

πŸ› Bug Fixes

  • SonarCloud Quality Gate - Disabled quality gate status reporting to GitHub to prevent false CI failures
  • Coverage File Generation - Ensured coverage file is generated before SonarCloud scan
  • CLI Test Coverage - Added CLI tests and excluded CLI entry point from coverage requirements
  • macOS Runner - Removed macos-15-large runner to avoid GitHub billing limits
  • Piper Voice Test - Updated installation test to match current voice list

πŸ“š Documentation

  • Added step-by-step SonarCloud dashboard configuration guide
  • Added guide to disable SonarCloud GitHub App checks
  • Comprehensive Clawdbot integration documentation with SSH audio examples

πŸ”’ Security & Quality

  • βœ… All Sonar quality gates validated
  • βœ… No hardcoded credentials in changes
  • βœ… New Clawdbot files are documentation only (no executable code)
  • βœ… All 213 BATS + 47 Node tests passing

πŸ“Š Changes Summary

  • Files Added: 2 (.clawdbot/README.md, .clawdbot/skill/SKILL.md)
  • Files Modified: 2 (README.md, package.json)
  • Commits Since v3.1.0: 11 (5 fixes, 4 docs, 1 test, 1 debug)

🎯 User Impact

For Clawdbot Users:

  • Professional TTS with 50+ voices in 30+ languages
  • Works on remote servers with SSH audio tunneling
  • Zero API costsβ€”Piper TTS is free and offline
  • Automatic integration when AgentVibes is installed

For Existing Users:

  • Zero breaking changes
  • All existing features work exactly the same
  • Clawdbot support is additive

πŸš€ Migration Notes

No migration required! This is a fully backward-compatible minor release.

To Use with Clawdbot:

  1. Install: npx agentvibes install
  2. Speak: npx agentvibes speak "Hello!"

πŸ“¦ Full Changelog

Feature Commits:

  • (pending) feat: Add Clawdbot integration

Bug Fix Commits:

  • 5cd97d52 fix: Disable SonarCloud quality gate status reporting to GitHub
  • 12f822e6 fix: Disable quality gate failure in SonarCloud workflow
  • 0d26ccc2 fix: Ensure coverage file is generated before SonarCloud scan
  • c2465508 fix: Add CLI tests and exclude CLI entry point from coverage
  • c673afe1 fix: Remove macos-15-large runner to avoid GitHub billing limits
  • 92271732 fix: Update Piper installation test to match current voice list

Documentation Commits:

  • f72dd977 docs: Add guide to disable SonarCloud GitHub App checks
  • 6587519b docs: Add step-by-step SonarCloud dashboard configuration guide
  • ba765f50 docs: Add SonarCloud quality gate configuration guidance

Test Commits:

  • 47f08a79 test: Trigger workflow to verify SonarCloud quality gate fix

Debug Commits:

  • 84945d25 debug: Add coverage file verification to SonarCloud workflow

πŸ“¦ v3.1.0 - Android Native Support: Run Claude Code on Your Phone

Release Date: January 22, 2026

🎯 Why v3.1.0?

This minor release brings native Android support to AgentVibes, enabling developers to run Claude Code with professional TTS voices directly on Android devices via Termux. No SSH required, no remote server neededβ€”just install Termux on your Android phone or tablet and get the full AgentVibes experience locally. This complements the v3.0.0 termux-ssh provider by offering a complete mobile development solution: use native Termux for local Android development, or use termux-ssh when connecting to remote servers.

πŸ€– AI Summary

AgentVibes v3.1.0 introduces native Android/Termux support, enabling developers to run Claude Code with professional TTS voices directly on their Android devices. Through automatic detection and a specialized installer, AgentVibes now runs Piper TTS via proot-distro with Debian (solving Android's glibc compatibility issues), uses termux-media-player for audio playback, and includes comprehensive Android-specific documentation. Perfect for developers who want to code on-the-go with their Android phone or tablet using the full power of Claude Code and AgentVibes.

Key Highlights:

  • πŸ€– Native Android Support - Run Claude Code with TTS directly on Android devices via Termux
  • πŸ“¦ Automatic Termux Detection - AgentVibes auto-detects Android and runs specialized installation
  • 🎯 Proot-Distro Integration - Solves glibc compatibility with proot Debian environment
  • πŸ”Š Android Audio Playback - Uses termux-media-player for native Android audio routing
  • πŸ“š Comprehensive Documentation - Complete Android setup guide with troubleshooting and F-Droid instructions
  • βœ… Full Test Coverage - All 213 BATS + 38 Node tests passing with Android compatibility

✨ New Features

Termux Installer (.claude/hooks/termux-installer.sh):

  • New 224-line installer specifically for Android/Termux environments
  • Automatically installs proot-distro with Debian (for glibc compatibility)
  • Downloads and configures Piper TTS binary in proot environment
  • Creates /usr/bin/piper wrapper that routes through proot
  • Installs audio dependencies: ffmpeg, sox, bc, termux-api
  • Interactive voice selection with 50+ language options
  • Validates Termux environment before proceeding

Termux Detection (src/installer.js):

  • New isTermux() function checks for /data/data/com.termux directory
  • New detectAndNotifyTermux() displays Android detection messages
  • Auto-configures piper provider with Termux-compatible voice
  • Shows Termux-specific installation instructions
  • Piper installer automatically redirects to termux-installer.sh on Android

Audio Processor Updates (.claude/hooks/audio-processor.sh):

  • Detects Termux environment for temp directory selection
  • Uses ${PREFIX}/tmp on Termux, /tmp on standard systems
  • Ensures audio effects work correctly on Android
  • Cross-platform compatibility maintained

Piper Installer Updates (.claude/hooks/piper-installer.sh):

  • Auto-detects Termux and redirects to specialized installer
  • Shows clear message when routing to Termux-specific setup

Android Audio Playback (.claude/hooks/play-tts-piper.sh):

  • Detects Android/Termux environment
  • Uses termux-media-player instead of paplay on Android
  • Audio routes through Android's native media system

πŸ“š Documentation

New Android Setup Section (README.md):

  • Added "πŸ€– Android / Termux" section to System Requirements
  • Complete 3-step installation guide for Android devices
  • Explanation of why Termux needs special handling (bionic vs glibc)
  • Requirements: Termux app from F-Droid, Termux:API, Android 7.0+
  • Audio playback architecture explanation
  • Setup verification commands
  • Troubleshooting table for common issues
  • Clear explanation of why F-Droid version is required (not Google Play)
  • Updated Quick Links table with direct link to Android setup

πŸ› Bug Fixes

  • Test #90 Fix - Added termux-ssh provider to test cleanup list for "no providers found" edge case
  • Temp Directory Detection - Fixed audio-processor.sh defaulting to Termux paths on non-Termux systems
  • Sonar Compliance - Added set -euo pipefail strict mode to termux-installer.sh for security

πŸ”’ Security & Quality

  • βœ… All Sonar quality gates validated
  • βœ… Strict mode (set -euo pipefail) on all new bash scripts
  • βœ… No hardcoded credentials
  • βœ… Proper variable quoting and input validation
  • βœ… Cross-platform temp directory handling
  • βœ… All 213 BATS + 38 Node tests passing

πŸ“Š Changes Summary

  • Files Modified: 7
  • Lines Added: +391
  • Lines Removed: -8
  • New Files: 1 (termux-installer.sh)
  • Commits: 8 (5 fixes, 1 feature, 1 docs, 1 merge)

🎯 User Impact

For Android Users:

  • Can now run Claude Code directly on Android phones/tablets
  • Full TTS support with 50+ voices and languages
  • No remote server required for basic usage
  • Works offline after initial voice downloads

For Developers:

  • Complete mobile development solution (native + SSH)
  • Native Termux for local Android development
  • Termux-SSH provider for remote server connections
  • Seamless integration with existing AgentVibes workflows

For Existing Users:

  • Zero breaking changes
  • All existing features work exactly the same
  • New Android support is opt-in via Termux installation

πŸš€ Migration Notes

No migration required! This is a fully backward-compatible minor release.

To Try Android Support:

  1. Install Termux from F-Droid
  2. Install Termux:API
  3. In Termux: pkg install nodejs-lts
  4. Run: npx agentvibes install

AgentVibes will auto-detect Termux and run the specialized installer.

πŸ“¦ Full Changelog

Feature Commits:

  • e9d4cf95 feat: Add Android/Termux support for Piper TTS

Bug Fix Commits:

  • aa4d3cdd fix: Add termux-ssh provider to test #90 cleanup list
  • c1b00c6d fix: Use termux-media-player for audio playback on Android
  • f96ab89a fix: Properly detect Termux environment for temp directory
  • e2efeb06 fix: Add strict mode to termux-installer.sh for Sonar compliance

Documentation Commits:

  • 701a9412 docs: Add comprehensive Android/Termux setup section to README

Merge Commits:

  • a5d3f546 Merge feature/android-termux into master
  • 95f04e70 Merge origin/master into feature/pulseaudio-reverse-tunnel

πŸ“¦ v3.0.0 - Cross-Platform Remote Audio: Termux SSH Provider

Release Date: January 8, 2026

🎯 Why v3.0.0?

This major release marks a significant milestone in AgentVibes' evolution, introducing mobile-first interactive AI conversations. The termux-ssh provider enables a revolutionary workflow: have fully interactive, hands-free conversations with Claude Code using just your mobile deviceβ€”whether you're coding locally on your laptop with audio routed to your phone, or working on remote servers from anywhere in the world. This architectural breakthrough represents a new paradigm: "Code with your hands, converse with your voice."

πŸ€– AI Summary

AgentVibes v3.0.0 introduces the termux-ssh TTS provider, enabling true mobile-first interactive conversations with Claude Code. Route TTS audio to your Android device via SSHβ€”whether coding locally on your laptop or on remote serversβ€”and have hands-free, voice-driven conversations with Claude using just your phone. This major release includes comprehensive Tailscale VPN setup documentation for internet-wide access, full MCP server integration, and transforms how developers interact with AI assistants. Perfect for developers who want to experience AI conversations naturally through their mobile device while their hands stay on the keyboard.

Key Highlights:

  • πŸ“± Mobile-First AI Conversations - Have fully interactive, hands-free conversations with Claude Code using just your Android device
  • πŸ’» Local + Remote Development - Works for both local coding (laptop β†’ phone audio) and remote server development
  • 🌐 Tailscale Integration - Comprehensive guide for internet-wide device access without port forwarding or firewall configuration
  • πŸ”§ Enhanced Installer - Interactive SSH host configuration with validation and clear use-case guidance
  • 🎯 Full MCP Compatibility - Complete integration with all MCP commands and workflows
  • πŸ›‘οΈ Quality Gates Integration - Automated security validation in release process

πŸŽ₯ Demo Video

Watch it in action: Mobile-First AI Conversations with Claude Code

See the termux-ssh provider in actionβ€”fully interactive, hands-free conversations with Claude Code using just your Android device.

✨ New Features

Termux SSH TTS Provider (.claude/hooks/play-tts-termux-ssh.sh):

  • New TTS provider for Android via SSH connection
  • Routes text to termux-tts-speak on remote Android device
  • Configuration priority: env var β†’ project β†’ global
  • Secure quote escaping for safe text transmission
  • 196 lines of fully documented code

Installer Updates (src/installer.js):

  • Added termux-ssh to provider selection menu
  • Interactive SSH host alias configuration with validation
  • Saves host alias to .claude/termux-ssh-host.txt
  • Clear use case description: "Only choose if your project is on a remote server and you want audio sent to your Android device"
  • Documentation link to TERMUX_SETUP.md

TTS Router Updates (.claude/hooks/play-tts.sh):

  • Added termux-ssh provider routing in two locations
  • Full integration with existing provider detection
  • Supports mixed-provider mode (Piper + Termux)

MCP Server Integration (mcp-server/server.py):

πŸ”— Links


Built with ❀️ by Paul Preibisch | Powered by ElevenLabs AI

Full Changelog: v5.7.3...v5.7.5