How yuyudhan/simple-voice works
Simple Voice is a macOS dictation app: a user starts a recording with a shortcut, speaks, and gets formatted text delivered to the frontmost app, with a history record. Its documented workflow supports cloud or on-device transcription, optional cleanup, dictionary-aware formatting, and clipboard/paste delivery. The graph also includes the UI’s settings, dictionary, history, insights, model, permissions, and update capabilities. Sampled source confirms the dictation pipeline and engine sidecar; some feature wiring is represented only by the tree and README, so uncertain calls are omitted.
Main entry points: App.tsx App shell and pages · api.ts Tauri API client · pipeline.rs Dictation pipeline · db.rs SQLite data store
Components 29
App interface
- App shell and pages
src/app/App.tsx - Tauri API client
src/lib/api.ts - History and search
src/features/history/HistoryPage.tsx - Insights views
src/features/insights/InsightsPage.tsx - Dictionary editor
src/features/dictionary/DictionaryPage.tsx - Settings and models
src/features/settings/SettingsPage.tsx - Onboarding
src/features/onboarding/Onboarding.tsx - Update notices
src/features/updates/UpdateBanner.tsx
Dictation workflow
- Dictation coordinator
src-tauri/src/features/dictation/coordinator.rs - Audio capture
crates/sv-audio/src/capture.rs - Dictation pipeline
src-tauri/src/features/dictation/pipeline.rs - Transcription routing
src-tauri/src/features/dictation/transcription.rs - Text formatting
crates/sv-text/src/lib.rs - Text delivery
src-tauri/src/features/dictation/delivery.rs
Speech and cleanup
- Cloud providers
crates/sv-cloud/src/lib.rs - Engine client
crates/sv-engine/src/client.rs - On-device speech engine
engine/Sources/SimpleVoiceEngine/main.swift - Model management
src-tauri/src/features/models/mod.rs
Local data
- SQLite data store
crates/sv-storage/src/db.rs - History operations
src-tauri/src/features/history/mod.rs - Dictionary operations
src-tauri/src/features/dictionary/mod.rs - Insights operations
src-tauri/src/features/insights/mod.rs - Settings operations
src-tauri/src/features/settings/mod.rs
macOS integration
- Tauri application
src-tauri/src/lib.rs - Shortcuts and tray
src-tauri/src/platform/shortcuts.rs - Engine sidecar process
src-tauri/src/platform/engine_process.rs
Other components
- Mac user
- Frontmost app
- Cloud services
Connections 34
- Mac user → App shell and pages: uses app
- App shell and pages → Tauri API client: invokes commands
- Tauri API client → Tauri application: calls Tauri
- App shell and pages → History and search: shows history
- App shell and pages → Insights views: shows insights
- App shell and pages → Dictionary editor: shows dictionary
- App shell and pages → Settings and models: shows settings
- App shell and pages → Onboarding: starts setup
- App shell and pages → Update notices: shows updates
- Mac user → Shortcuts and tray: presses shortcut
- Shortcuts and tray → Dictation coordinator: starts or stops
- Dictation coordinator → Audio capture: records audio
- Dictation coordinator → Dictation pipeline: submits recording
- Dictation pipeline → Transcription routing: requests transcript
- Transcription routing → Cloud providers: uses cloud model
- Transcription routing → Engine client: requests local model
- Engine sidecar process → Engine client: connects transport
- Engine sidecar process → On-device speech engine: launches sidecar
- Dictation pipeline → Text formatting: formats transcript
- Dictation pipeline → Cloud providers: requests cleanup
- Cloud providers → Cloud services: sends provider requests
- Dictation pipeline → Text delivery: delivers text
- Text delivery → Frontmost app: pastes text
- Dictation pipeline → SQLite data store: writes history
- History and search → Tauri API client: loads entries
- History operations → SQLite data store: reads and writes
- Dictionary operations → SQLite data store: reads and writes
- Insights operations → SQLite data store: reads insights
- Settings operations → SQLite data store: reads and writes
- Model management → Engine client: manages models
- Settings and models → Tauri API client: updates preferences
- Dictionary editor → Tauri API client: edits terms
- Insights views → Tauri API client: loads metrics
- Update notices → Tauri API client: checks updates