Offline speech-to-text for macOS and source-built Windows/Linux development. Press a hotkey, speak, and ScribeFoundry inserts the text at your cursor.
- Hold the default
Alt+Spaceshortcut (Option+Spaceon macOS) or your configured hotkey. - Speak while the recording capsule is visible.
- Release the hotkey.
- ScribeFoundry transcribes locally, optionally post-processes or translates, then inserts text into the active app.
Your voice stays on your device by default. Network access is used for first-time model downloads, desktop update checks for official builds, and optional API post-processing if you enable it. After the selected local model is downloaded, default dictation can run offline.
- Native Tauri 2 app with Rust backend and React settings UI
- Global push-to-talk hotkey with automatic cursor insertion
- Local ASR models: Qwen3-ASR 1.7B, Qwen3-ASR 0.6B, and experimental Mega-ASR
- Background model prefetch with progress status
- Multilingual Qwen3-ASR input: Chinese, English, Cantonese, Arabic, German, French, Spanish, Portuguese, Indonesian, Italian, Korean, Russian, Thai, Vietnamese, Japanese, Turkish, Hindi, Malay, Dutch, Swedish, Danish, Finnish, Polish, Czech, Filipino, Persian, Greek, Hungarian, Macedonian, Romanian
- Optional output translation: English, Vietnamese, Spanish, French, German, Japanese, Korean, Simplified Chinese
- Local post-processing for cleanup, coding terms, templates, and voice commands
- Optional API post-processing through OpenAI, Anthropic, or OpenAI-compatible endpoints
- Coding agent prompt mode for lightly rewriting dictated coding requests into concise agent prompts
- Keychain storage for provider API keys
| Platform | Status | Notes |
|---|---|---|
| macOS 14+ Apple Silicon | Supported | Best experience; Qwen3-ASR and Mega-ASR available |
| macOS 14+ Intel | Partial | Qwen3-ASR available; Mega-ASR hidden |
| Windows | Source/dev supported; official updater artifacts planned | Qwen3-ASR and Mega-ASR available through ONNX Runtime CPU by default; DirectML is an opt-in smoke path |
| Linux | Source/dev supported; official updater artifacts planned | Qwen3-ASR and Mega-ASR available; AMD GPU acceleration uses ONNX Runtime ROCm/MIGraphX when ROCm is detected, with CPU fallback |
Official convenience builds are macOS-first, with signed Tauri updater artifacts configured for macOS, Windows, and Linux release pipelines. Windows and Linux users can still build from source. CPU inference remains available on AMD and Intel systems. AMD GPU acceleration is best-effort through ONNX Runtime: ROCm/MIGraphX on Linux when the local driver/runtime stack supports it, and DirectML on Windows only when explicitly enabled for smoke testing.
| Model | Status | Notes |
|---|---|---|
| Qwen3-ASR 1.7B | Recommended | Default high-quality local model |
| Qwen3-ASR 0.6B | Supported | Smaller local model |
| Mega-ASR | Experimental | MLX on macOS Apple Silicon; ONNX Runtime on Windows/Linux |
Models are downloaded into the user's local Hugging Face cache or app data paths. They are not committed to this repository.
First-time model downloads are large, roughly 1.2-4.2GB depending on the selected model. A network connection is required for the initial download; local dictation is offline after the model is cached.
ScribeFoundry can enhance or translate text with either:
- Local model: default, private, offline after model download
- API provider: OpenAI, Anthropic, or OpenAI-compatible base URL
API keys are stored in the OS keychain. The settings UI only shows whether a key is stored and never reveals saved key material. If API post-processing is selected but unavailable, ScribeFoundry falls back to local post-processing for that attempt.
Prerequisites:
- macOS 14+, Windows 10/11, or a recent Linux desktop
- Bun
- Rust toolchain
- Python 3.12+ for app-data ASR runtimes: Mega-ASR MLX on macOS Apple Silicon and ONNX Runtime on Windows/Linux
git clone https://github.com/tsnAnh/ScribeFoundry.git
cd ScribeFoundry
bun install
bun run check
bun run check:rust
bun run tauri:devUseful commands:
bun run typecheck
bun run test
bun run check
bun run check:rust
bun run build
bun run tauri:buildLanding site:
cd site
bun install
bun run dev
bun run remotion:still
bun run remotion:render
bun run test
bun run buildThe landing site is configured for root hosting at https://scribefoundry.app.
NEXT_PUBLIC_SCRIBEFOUNDRY_DOWNLOAD_URL remains available for a future verified
https://firebasestorage.googleapis.com/... official release asset URL.
Waitlist registration uses Firebase from the static landing build. Configure these public site variables before building:
NEXT_PUBLIC_FIREBASE_API_KEY=...
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=...
NEXT_PUBLIC_FIREBASE_PROJECT_ID=...
NEXT_PUBLIC_FIREBASE_APP_ID=...
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=...
NEXT_PUBLIC_FIREBASE_FUNCTIONS_REGION=us-central1
NEXT_PUBLIC_FIREBASE_APP_CHECK_SITE_KEY=...
NEXT_PUBLIC_TURNSTILE_SITE_KEY=...The callable function writes registrations to Firestore and queues appreciation
emails through the Firebase Trigger Email extension using the mail collection.
The landing page starts Firebase Analytics and Google Ads conversion tracking
only after the visitor accepts the analytics consent banner.
Set ENFORCE_APP_CHECK=true for the function environment after App Check is
verified in production. Cloudflare Turnstile is optional additional abuse
protection for the waitlist: set the Firebase function secret
TURNSTILE_SECRET_KEY, deploy with ENFORCE_TURNSTILE=false, deploy the rebuilt
site with NEXT_PUBLIC_TURNSTILE_SITE_KEY, then redeploy the function with
ENFORCE_TURNSTILE=true after the widget is live. Deploy Firebase resources
after configuring the extension and SMTP sender:
cd functions
bun install
bun run build
cd ..
firebase deploy --only functions,firestore,storage,hostingOfficial desktop updates use the public Firebase HTTPS function
checkDesktopUpdate backed by Firestore metadata and Firebase Storage artifacts
under desktop-releases/.
NVIDIA CUDA builds for Windows/Linux require a CUDA-capable local build environment:
cargo check --manifest-path src-tauri/Cargo.toml --features asr-cuda
bun run tauri:build -- --features asr-cudaWindows/Linux AMD-capable builds use the default source build. The app creates an app-data ONNX Runtime virtual environment on first model prefetch: onnxruntime-directml on Windows, onnxruntime-rocm on Linux when ROCm is detected, and CPU onnxruntime as fallback. The current Windows ONNX exports default to CPU because DirectML failed smoke verification for these models; set SCRIBE_ONNX_ASR_ENABLE_DML=1 only for provider testing.
This project uses Bun for Node dependency management. Do not commit package-lock.json, yarn.lock, or pnpm-lock.yaml.
See CONTRIBUTING.md.
Report vulnerabilities privately. See SECURITY.md.
ScribeFoundry is released under the MIT License. See NOTICE for third-party dependency and model asset notes.