Releases: ilyaizen/copyspeak-tts
CopySpeak v0.1.5
Added
- LLM post-processing (Groq Cloud) β Optional pass between sanitize and TTS synthesis that rewrites copied text into concise, listener-friendly speech tailored for software developers. Off by default. Configure under Settings β Advanced β LLM Post-Processing.
- New
PostProcessConfig(enabled,api_key,model,prompt) inAppConfig; config schema version bumped to0.1.5. - New Rust module
post_process(process,try_process) wraps Groq's OpenAI-compatible/chat/completions. - New IPC command
check_groq_credentialsvalidates the key viaGET /models. - Hooked into
speak_nowandspeak_queuedafter the cfg snapshot, before pagination. LLM failures fall back to the original text and never block synthesis. - Hardcoded model dropdown:
openai/gpt-oss-20b,llama-3.3-70b-versatile,llama-3.1-8b-instant.
- New
Changed
- LLM post-processing default prompt β Switched to a terse caveman-style rewrite prompt with a 3 bullet/point maximum.
Fixed
- CopySpeak Pi extension β Routes final Pi responses through the running app's sanitization, max-length, LLM post-processing, effects, and TTS pipeline instead of filtering/truncating in the extension.
- Vercel landing page β Updated the displayed version, screenshot asset, and removed the double-copy hero tagline.
CopySpeak v0.1.4
Added
- CopySpeak Claude Code hook β Added
scripts/claude-copyspeak-hook.mjsto speak Claude CodeStop/SubagentStopassistant responses through the CopySpeak control server.
Changed
- CopySpeak Pi extension β Disabled speaking Pi thinking blocks by default and expanded status text to show only non-default assistant/thinking/activity modes.
Fixed
- CopySpeak Pi extension β Removed the stale
.pi/extensions/copyspeak-voiceextension so only/copyspeakis registered. - Vercel deployments β Added a repository
ignoreCommandthat runs production builds and skips preview builds.
CopySpeak v0.1.3
Added
- Update controls in settings β Added the footer update status/check/install control below the automatic update-check setting.
Fixed
- CopySpeak Pi extension β Renamed the Pi command/extension path to
copyspeakand shortened its Pi status text toon/off. - Vercel landing page β Re-enabled non-English locale registration and footer language switching, and restored page scrolling despite the desktop app's global hidden body overflow.
- Windows audio wake-up β Add a low-level preroll to desktop playback on Windows so the audio device wakes before speech or radio effects begin.
- About settings layout β Removed the stale import/export separator and aligned About rows with the shared
SettingRowspacing.
CopySpeak v0.1.2
See CHANGELOG.md for details.
CopySpeak v0.1.1
See CHANGELOG.md for details.
CopySpeak v0.1.0
Added
-
Global hotkey speak-from-clipboard β Hotkey now triggers TTS directly from clipboard content
- Added handler in global-shortcut plugin to call
speak_from_clipboardon hotkey press - Logs hotkey trigger events for debugging
- Added handler in global-shortcut plugin to call
-
Dedicated History page β New
/historyroute for viewing all TTS generations- Moved history from play page to its own route
- Conditionally shown in nav when history is enabled
-
SettingRow component β Reusable settings row with label, tooltip, and consistent layout
- Applied across all settings components for uniform UI
-
Live debug logs viewer β Real-time log tail in About section when debug mode enabled
- Shows last 20 lines, auto-refreshes every 2s
Fixed
- Windows CLI backend PATH resolution β Expanded PATH for finding Python/uv tools on Windows
- Added
get_expanded_path()to include common Python and uv installation paths - Fixes "executable not found" errors on clean Windows installations
- Added
Changed
-
Settings page consolidation β Major restructure from 8 sections to 3 tabs (General, Advanced, About)
- Continuous scroll with scroll-spy navigation
- Removed staggered loading (WebView2 crash workaround no longer needed)
- HUD settings moved to General section as dropdown
- Pagination/Sanitization moved to Advanced tab
-
Window size increased β 675x540 β 775x640 for better content visibility
-
Hotkey capture redesign β Cleaner UI with Kbd components and arrow key symbols (ββββ)
-
Quick-settings redesign β Larger controls with clearer labels (Volume, Speed, Pitch)
-
App shell refactor β Grid-based layout for better content distribution
-
Removed
show_notificationsconfig field β Unused setting cleaned up -
Default hotkey shortcut β Changed from
Super+Shift+AtoWin+Shift+Afor Windows clarity -
Hotkey error messages β Updated to use "Win" instead of "Win/Super" for consistency
-
Hotkey logging β Added structured logging with
[Hotkey]prefix for registration attempts and config changes -
Border radius system β Simplified radius variables for sharper brutalist aesthetic
--radius-sm: 2px,--radius-md: var(--radius),--radius-lg: 4px,--radius-xl: 6px- Theme toggle and UI components updated to use
rounded-sminstead ofrounded-none
-
Logging noise reduction β Suppressed verbose debug logs from tauri_plugin_updater and reqwest
-
Engine page layout refactor β Moved badges to header section for cleaner UI
-
Progress bar animation β Converted from JavaScript interval to CSS animation for smoother performance
-
Default Kokoro voice β Changed from
af_hearttoadam -
Internationalization β Temporarily disabled language switcher, hardcoded to English during development
CopySpeak v0.0.5
Added
-
Global hotkey configuration β Configurable keyboard shortcut to trigger TTS
hotkeyconfig field with modifier + key format (e.g.,"Ctrl+Space")- Hotkey capture component in settings UI
- Backend IPC:
register_hotkeywith global-shortcut plugin - Hotkey re-registration on config change
-
Listening toggle β Enable/disable clipboard monitoring via
listen_enabledconfig- Toggle in quick-settings dropdown and app-footer
- Backend IPC:
set_listening,get_listeningcommands - Persisted to config, synced via
config-changedevent
Fixed
-
HUD progress bar and marquee timing β Accurate playback duration via cross-window event
- HUD window and main window have separate JS contexts with separate
hudStoreinstances playbackStorein main window decodes audio via Web Audio API to get accurate duration- Emits
hud:audio-durationevent which HUD window receives and updates itshudStore - Progress now shows accurate percentage based on
AudioBuffer.duration - Marquee animation timing now matches actual playback duration
- ElevenLabs MP3 duration now accurately determined via Web Audio decode (not server estimate)
- HUD window and main window have separate JS contexts with separate
-
Audio playback on clean Windows 11 β AudioContext now resumes if suspended
- Web Audio API requires user gesture to activate AudioContext on fresh profiles
- Added
audioCtx.resume()call when state is "suspended" in playback-store
CopySpeak v0.0.4
See CHANGELOG.md for details.
CopySpeak v0.0.3
Fixed
- KittenTTS installer now works on clean Windows 11 without Python pre-installed
- Embeds installer scripts in binary and extracts to temp directory at runtime
- Auto-detects any Python 3.x version, offers winget installation if not found
- PowerShell window now visible with success/failure feedback before pause
- Default config changed from
py -3.12topython(no version pinning)
CopySpeak v0.0.2
Added
- HUD playback enhancements
- Progress bar animation synced to audio duration
- Marquee scrolling text for long speech content
duration_msfield inHudSynthesizingPayloadfor synthesis duration tracking
Fixed
- Removed duplicate
$effectin hud-playback-content component - Removed debug
console.logstatement from production code