Turn speech into text, entirely on your device.
Website · Documentation · License
Pre-v1 — under active development. CLI flags, API surface, and pack format may change between 0.x releases.
macOS (Apple Silicon) · Windows (x64, Windows 10+) · Linux desktop coming soon
No terminal needed. Install the app, drop in an audio file, and get your transcript — everything runs on your machine.
This repository is the Apache-2.0 open core behind the desktop app: a Rust CLI, a local OpenAI-compatible HTTP API, and the ggml inference engine. The desktop app wraps the same engine in a native GUI — no hidden network calls.
- Transcribe audio files — single files or entire folders, output as plain text, SRT/VTT subtitles, or JSON with word-level timestamps
- Live captions — real-time transcription from your microphone with streaming partial results
- System audio capture — caption meetings, lectures, and podcasts by recording what your computer plays
- Speaker separation — automatically label who said what
- Translation — transcribe and translate to English in one step
- Local API — OpenAI-compatible
/v1/audio/transcriptionsendpoint, works with existing SDKs
Private. In the default local mode, audio stays on your machine. Remote compute is available only when you explicitly pair and enable it; see SECURITY.md. No telemetry, no silent uploads, and no silent network fallback. The engine either produces a real transcript or tells you why it can't.
Broad. 28 models across 13 families — Whisper, Qwen3-ASR, Parakeet, SenseVoice, FireRed, Dolphin, Moonshine, and more. Pick the one that fits your language and workload. All run through one binary on CPU and Apple Metal.
Open. The engine is Apache-2.0. Each model pack ships under its own upstream license as recorded in the registry and pack metadata. Every model download is verified against a signed catalog before it runs.
# Option A: Homebrew (macOS / Linux)
brew install quintinshaw/tap/openasr
# Option B: one-line installer (macOS / Linux)
curl -fsSL https://dl.openasr.org/install.sh | sh
# Option C: grab a prebuilt binary from Releases
# https://github.com/QuintinShaw/openasr/releases
# Transcribe a file (first run offers to download a model — you confirm first)
openasr transcribe recording.wav
# Live mic captions
openasr live
# SRT subtitles with speaker labels
openasr transcribe meeting.wav -f srt --diarizeSee Quickstart for a guided walkthrough, or run openasr --help.
openasr serve
curl http://127.0.0.1:8080/v1/audio/transcriptions \
-F file=@audio.wav -F model=qwen3-asr-0.6bDrop-in compatible with OpenAI SDKs (base_url="http://127.0.0.1:8080/v1"). Offline native requests are serial by default. Operators can set --max-native-sessions-per-model N; N is both the admission limit and, for eligible direct-GPU Cohere, Moonshine, Qwen, and Whisper jobs, the source for an internal batch width capped at 8. CPU, scheduler, adapter, realtime, FireRed-AED, and FireRed2 paths remain serial; translations follow the offline policy. See Agent Integration for API key setup and agent workflows.
git clone --recurse-submodules https://github.com/QuintinShaw/openasr.git
cd openasr
cargo build --release -p openasr-cliRequires Rust (pinned via rust-toolchain.toml), CMake, and a C/C++ toolchain. Full build setup and development workflow in CONTRIBUTING.md.
28 models across 13 families, from tiny English-only models that run faster than real-time to large multilingual models covering 100+ languages. Browse them at openasr.org/models or from the CLI:
openasr search # browse available models
openasr pull whisper-small # install oneBenchmarks from the committed performance baseline are in Performance.
| Docs Index | Full documentation map |
| Quickstart | First transcript in three commands |
| FAQ | Common questions answered |
| Known Limitations | What works and what does not yet |
| Roadmap | What is planned next |
| Architecture | Crate map and transcription pipeline |
Contributions welcome. See CONTRIBUTING.md for build setup, branch naming, the PR checklist, and DCO sign-off.
Apache License 2.0. See NOTICE for attribution.
The ggml inference backend is MIT-licensed. Each model pack's license is defined by its registry entry and pack metadata; packs may use Apache-2.0, MIT, CC-BY, FunASR, or other upstream terms. This is not an exhaustive license guarantee. See ACKNOWLEDGMENTS.md for the projects and model authors OpenASR builds on.
The OpenASR name, logo, and official app icons are reserved. Apache-2.0 covers the code, not the brand. Third-party products may say “Powered by OpenASR” and must not use OpenASR as their primary product name or imply official endorsement. Official apps are published only by the project operators.
- TRADEMARKS.md — name, logo, and official-app reservation
- BRANDING.md — practical product-identity checklist
- XCFRAMEWORK-DISTRIBUTION.md — shipping iOS/macOS apps that embed the SDK