Current Version: 0.1.10
A modern Windows desktop app that reads clipboard text aloud using AI Text-to-Speech engines. Trigger speech by quickly copying the same text twice in a row.
bun install
bun run tauri dev- Multiple trigger modes: Double-copy (1.5s window), hotkey, or manual paste/play
- 11 TTS engines:
- Local CLI β Piper, Kokoro, Kitten, Chatterbox, or any CLI TTS tool via local subprocess
- Edge TTS β Free Microsoft Edge Read Aloud backend (default)
- OpenAI TTS β Cloud API with 9 voices
- ElevenLabs TTS β Cloud API with voice library support
- Cartesia TTS β Sonic 3.5 cloud API
- Google TTS β Cloud API
- Microsoft TTS β Azure Cognitive Services
- HTTP TTS β Generic HTTP endpoint backend
- HUD overlay β Floating heads-up display with real-time waveform visualization
- History β Persistent TTS generation history with playback and batch management
- Voice profiles β Create, edit, and switch between named voice profiles with engine, voice, speed, pitch, and effects settings
- Audio effects β Walkie-talkie, 8-bit Game Boy, and more via OfflineAudioContext post-processing
- LLM post-processing β Optional Groq/AI rewrite pass that turns copied text into concise, listener-friendly speech
- Engines page β Dedicated per-engine setup with API key entry, local-engine installers, and test buttons
- General: auto-start, debug mode, language
- Playback: speed (0.25xβ4x), pitch (0.5xβ2x), volume
- Effects: toggle and select audio effects
- Triggers: double-copy window, hotkey configuration
- Sanitization: granular markdown stripping toggles, text normalization
- Advanced: LLM post-processing, engine catalog
- Audio: output device selection, format conversion (MP3/OGG/FLAC)
- System tray β Quick access controls
- Auto-updater β Check and install updates from GitHub Releases
- Control server β Local HTTP server for external integrations (Pi, Claude Code, curl)
- Pi & Claude Code extensions β Speak AI assistant responses through CopySpeak
- Audio save mode β Save TTS output to files
- Dark/Light mode β Brutalist design with theme support
| Component | Technology |
|---|---|
| Backend | Rust (Tauri v2) |
| Frontend | Svelte 5, TypeScript, Vite |
| Package Manager | Bun |
| Audio | rodio |
| UI | shadcn-svelte, Tailwind CSS v4 |
src/ # Svelte 5 frontend
βββ lib/
β βββ components/ # UI components
β β βββ effects-page.svelte
β β βββ engine/ # Engine settings
β β βββ history/ # History components
β β βββ hud/ # HUD overlay
β β βββ landing/ # Marketing landing page
β β βββ settings/ # Settings tabs
β β βββ ui/ # shadcn-svelte
β β βββ profiles-page.svelte
β β βββ play-page.svelte
β β βββ ...
β βββ utils.ts # Utilities (cn, portal action)
βββ routes/ # SvelteKit routes
βββ settings/ # Settings page
βββ effects/ # Effects page
βββ engine/ # Engine page
βββ history/ # History page
βββ profiles/ # Profiles page
βββ onboarding/ # First-run setup
βββ hud/ # HUD overlay
src-tauri/src/ # Rust backend
βββ main.rs # Entry point, IPC registration
βββ config/ # Persistence modules
β βββ tts.rs # TTS config types & engine enum
βββ commands/ # IPC handlers
β βββ tts/ # Synthesis commands
βββ tts/ # TTS backend implementations
β βββ edge.rs # Edge TTS
β βββ openai.rs # OpenAI
β βββ elevenlabs.rs # ElevenLabs
β βββ cartesia.rs # Cartesia
β βββ google.rs # Google
β βββ microsoft.rs # Microsoft
β βββ http.rs # Generic HTTP
β βββ cli.rs # Local CLI engines
β βββ catalog.rs # Engine catalog types
βββ clipboard.rs # Double-copy detection
βββ audio.rs # Playback
βββ post_process.rs # LLM post-processing
βββ sanitize/ # Text normalization
# Development
bun run tauri dev # Full app with hot-reload
bun run dev # Frontend only (port 5173)
# Build
bun run tauri build # Production build
bun run check # TypeScript/Svelte type checking
bun run check:watch # Watch mode for type checking
# Testing (Frontend)
bun run test # Run all frontend tests (vitest)
bun run test <name> # Run single frontend test
bun run test:watch # Watch mode
# Testing (Rust)
cd src-tauri && cargo test # Run all Rust tests
cd src-tauri && cargo test <name> # Run single Rust test
cd src-tauri && cargo check # Type check Rust
cd src-tauri && cargo clippy # Lint Rust
# Formatting
bun format # Biome + Prettier hybrid format
# Version Bumping
bun run bump # Patch version bump (0.0.x)
bun run bump:minor # Minor version bump (0.x.0)
bun run bump:major # Major version bump (x.0.0)See CHANGELOG.md for recent changes.
We welcome contributions! Please see our Contributing Guide for details on how to get started, code style guidelines, and how to submit pull requests.
MIT
