CLI
The openasr binary is built from the openasr-cli crate in the
open core. Install a
release binary or build
from source — see the CLI quickstart. From a source
checkout you can run any command below via cargo run -p openasr-cli -- <args>
instead of a bare openasr.
Command overview
Section titled “Command overview”| Command | Purpose |
|---|---|
transcribe <inputs>... (alias t) | Transcribe files or directories. --benchmark prints run timing instead of the transcript. |
live | Microphone / system-audio capture; streams final-per-utterance (or streaming-partial, for packs that declare it) captions. |
serve | Local OpenAI-compatible HTTP API; TLS + pairing for non-loopback serving. |
search [query] / pull <ref> | Browse the model catalog / download and install a pack. |
list / show <id-or-pack> / rm <id> | List installed packs / show catalog or pack details / remove a pack. |
verify <pack.oasr> | Probe a local pack’s ggml integrity (no inference, no download). |
speaker enroll / speaker clear | Manage local voice-match profiles for diarization display names (embeddings only, not authentication). |
model-pack import <family> | Build a local .oasr pack from source weights (maintainer tool). |
config / doctor / bench-suite | Edit saved config / print environment diagnostics / run the performance suite. |
apikey create / apikey list / apikey revoke <id> | Manage local API keys for openasr serve (Authorization: Bearer <key>). |
Run openasr --help or openasr <command> --help for the authoritative,
versioned flag list.
Browse and manage models
Section titled “Browse and manage models”openasr search # browse the model catalogopenasr pull whisper-small # download and install a packopenasr list # installed packsopenasr rm whisper-small # remove an installed packopenasr config listopenasr doctorBrowse available models, sizes, and quantizations on the Models page.
Transcription
Section titled “Transcription”openasr transcribe audio.wav --model whisper-small --format textUseful transcribe flags: -m/--model (also OPENASR_MODEL), -f/--format
(repeatable — text, json, srt, vtt, verbose_json, markdown),
-o/--output, -l/--language (auto or a hint like en), --task
(transcribe or translate; Whisper models only), --diarize
(+ --speakers <n>), --word-timestamps (bare flag or =approximate uses
the model’s own decode-time timestamps; =aligned refines them with the
Qwen3-ForcedAligner-0.6B capability pack, native backend only),
--no-punctuate to skip punctuation restoration, --continue-on-error
(multi-input), --hotword <phrase> / --hotword-boost for phrase bias,
--adapter <path> for a local .oadp adapter pack, --ffmpeg-bin <path>
to point at an existing ffmpeg binary, -y/--yes to skip the download
confirmation, and --offline to fail closed instead of downloading
anything.
--word-timestamps takes an optional mode: bare (or =approximate, the
default) keeps the model family’s own decode-time word timestamps at no
extra cost. --word-timestamps=aligned is not usable yet — it depends on
a forced-alignment capability pack (Qwen3-ForcedAligner-0.6B) that exists in
the code path but is not yet in the public catalog, so pulling it fails.
Stick to the default approximate mode until that pack ships.
Local model pack
Section titled “Local model pack”native is the default backend, so transcribe/live/serve already run
it. --model-pack pins an explicit local .oasr file instead of resolving
an installed model by id:
openasr transcribe audio.wav --model-pack /path/to/model.oasr --format textUnsupported native inputs fail closed rather than producing partial, timestamp, diarization, or confidence claims.
Multiple files, benchmarking, live, serve
Section titled “Multiple files, benchmarking, live, serve”transcribe is variadic: pass several files or a directory to write one
transcript per file into --output, and --benchmark to print run timing
instead of the transcript.
openasr transcribe /path/to/audio-dir --output /path/to/transcriptsopenasr transcribe audio.wav --benchmark --model whisper-smallopenasr live --source mic --max-seconds 5 --format jsonlopenasr serveFor the server API, listening address, and remote access requirements, see Server API.