How open-less/openless works
OpenLess is a cross-platform voice-input application: a user starts dictation, speaks, and receives polished text at the active cursor, with clipboard fallback if insertion fails. The main runtime spans the app UI, native coordination, shared dictation orchestration, speech recognition, text polishing, and insertion. The README also describes style packs, vocabulary learning, selection tools, provider configuration, marketplace, history, and encrypted cloud sync. Paths and workflow reflect the tree, README, and sampled excerpts; several feature links are documented capabilities rather than inspected call sites.
Main entry points: dictation_engine.rs Dictation engine · coordinator.rs Dictation coordinator · App.tsx App UI · polish.rs Text polishing
Components 24
App experience
- App UI
openless-all/app/src/App.tsx - Linux UI
openless-all/app/linux-egui/src/main.rs - Settings UI
openless-all/app/src/pages/settings/DataStorageSection.tsx
Dictation runtime
- Dictation coordinator
openless-all/app/src-tauri/src/coordinator.rs - Dictation engine
openless-all/app/crates/openless-core/src/dictation_engine.rs - Audio recorder
openless-all/app/src-tauri/src/recorder.rs
Language services
- Speech recognition
openless-all/app/crates/openless-core/src/asr/mod.rs - Local ASR
openless-all/app/src-tauri/src/asr/local/mod.rs - Text polishing
openless-all/app/crates/openless-core/src/polish.rs - Style packs
openless-all/app/crates/openless-core/src/style_packs.rs - Vocabulary
openless-all/app/crates/openless-core/src/vocabulary.rs
Platform integration
- Text insertion
openless-all/app/src-tauri/src/insertion.rs - Selection tools
openless-all/app/src-tauri/src/selection.rs - Android keyboard
openless-all/app/android/kotlin/OpenLessImeService.kt
Settings and sync
- Provider configuration
openless-all/app/src-tauri/src/commands/providers.rs - Style marketplace
openless-all/app/src-tauri/src/commands/marketplace.rs - Dictation history
openless-all/app/src-tauri/src/persistence/history.rs - Encrypted cloud sync
openless-all/app/crates/openless-core/src/cloud_sync_e2ee/service.rs
Other components
- User
- Target text field
- System clipboard
- ASR providers
- Polish model
- Sync service
Connections 24
- User → App UI: starts dictation
- User → Linux UI: starts dictation
- App UI → Dictation coordinator: dispatches commands
- Linux UI → Dictation coordinator: dispatches commands
- Dictation coordinator → Dictation engine: orchestrates session
- Dictation engine → Audio recorder: captures audio
- Dictation engine → Speech recognition: transcribes audio
- Speech recognition → ASR providers: streams audio
- Speech recognition → Local ASR: uses local models
- Dictation engine → Text polishing: polishes transcript
- Text polishing → Style packs: uses selected style
- Text polishing → Vocabulary: uses vocabulary
- Text polishing → Polish model: sends text
- Dictation coordinator → Text insertion: inserts result
- Text insertion → Target text field: types text
- Text insertion → System clipboard: copies on failure
- User → Selection tools: invokes selection tools
- User → Android keyboard: dictates on Android
- Android keyboard → Dictation coordinator: calls native backend
- Settings UI → Provider configuration: configures providers
- App UI → Style marketplace: accesses packs
- Dictation engine → Dictation history: records session
- App UI → Encrypted cloud sync: manages sync
- Encrypted cloud sync → Sync service: syncs encrypted data