Problem
The v3.0 VoiceServer (Releases/v3.0/.claude/VoiceServer/) has three hard macOS dependencies with no Linux fallback:
1. Audio playback — afplay only
server.ts:playAudio() spawns /usr/bin/afplay. On Linux, this fails silently. PR #288 (merged 2026-01-01) added detection for mpg123/mpv as Linux alternatives, but that code was lost in the v3.0 restructuring.
2. Notifications — osascript only
server.ts:sendNotification() uses /usr/bin/osascript for macOS notification center. On Linux, notify-send (libnotify) is the equivalent. PR #288 had this working.
3. Installation — LaunchAgent only
install.sh uses launchctl, ~/Library/LaunchAgents/, and ~/Library/Logs/. PR #288 added a systemd user service alternative for Linux — also lost.
Impact
PLATFORM.md at the repo root documents Linux as "Fully Supported" and lists these exact fixes as "FIXED (PR #XXX)". But the actual v3.0 code doesn't contain any of them.
Happy to Submit a PR
I can port the Linux compatibility fixes from PR #288 to the v3.0 architecture. The changes are straightforward — platform detection via process.platform / uname -s with graceful fallbacks.
References
Problem
The v3.0 VoiceServer (
Releases/v3.0/.claude/VoiceServer/) has three hard macOS dependencies with no Linux fallback:1. Audio playback —
afplayonlyserver.ts:playAudio()spawns/usr/bin/afplay. On Linux, this fails silently. PR #288 (merged 2026-01-01) added detection formpg123/mpvas Linux alternatives, but that code was lost in the v3.0 restructuring.2. Notifications —
osascriptonlyserver.ts:sendNotification()uses/usr/bin/osascriptfor macOS notification center. On Linux,notify-send(libnotify) is the equivalent. PR #288 had this working.3. Installation — LaunchAgent only
install.shuseslaunchctl,~/Library/LaunchAgents/, and~/Library/Logs/. PR #288 added a systemd user service alternative for Linux — also lost.Impact
PLATFORM.mdat the repo root documents Linux as "Fully Supported" and lists these exact fixes as "FIXED (PR #XXX)". But the actual v3.0 code doesn't contain any of them.Happy to Submit a PR
I can port the Linux compatibility fixes from PR #288 to the v3.0 architecture. The changes are straightforward — platform detection via
process.platform/uname -swith graceful fallbacks.References
PLATFORM.md(repo root)