A system-level AI voice input tool. Real-time streaming ASR → text optimization → system input injection.
# Build entire workspace
cargo build
# CLI — stream mode (microphone capture + real-time transcription)
cargo run -p typex-cli
# CLI — file mode (transcribe a WAV file)
cargo run -p typex-cli -- --input audio.wav
# Desktop — build the Tauri GUI app
cargo build -p typex-desktop
# Customize config
cp config.example.toml config.toml
# Edit config.toml with your API keysmicrophone → capture → resample (→ 16kHz mono PCM) → ASR → text → plugins → LLM (optional) → injector → target app
| App | Description |
|---|---|
typex-cli |
Terminal CLI — stream mode (mic) or file mode (--input) |
typex-desktop |
Tauri desktop app with overlay UI and i18n (EN / zh-CN) |
| Crate | Description |
|---|---|
typex-core |
Top-level re-exports and builder |
typex-audio |
Microphone capture with cpal + rubato resampling |
typex-asr |
ASR provider trait + implementations |
typex-llm |
LLM provider trait + implementations |
typex-pipeline |
Streaming pipeline orchestration |
typex-plugin |
Plugin trait + built-in plugins |
typex-injector |
System input injection |
typex-config |
TOML configuration (ASR, LLM, pipeline, injector, audio, history, shortcuts, overlay) |
AppConfig supports these sections in config.toml:
- asr — provider selection and model
- llm — provider, model, prompt
- pipeline — plugins list, streaming mode
- injector — method (clipboard / keyboard), settle delay
- audio — device override
- history — transcription log limit, recording session limit
- shortcut — record toggle hotkey (e.g.
Ctrl+Alt+Space) - overlay — desktop overlay window settings
- Implement the trait (
AsrProviderorLlmProvider) in its crate - Add a module under
crates/asr/src/orcrates/llm/src/ - Register in the CLI/main based on config
- Implement
Plugintrait incrates/plugin/src/ - Add module to
crates/plugin/src/lib.rs - Add name to
config.tomlplugins list
BSL-1.1 — non-commercial use permitted; commercial use requires a license.