Skip to content

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.

CommandPurpose
transcribe <inputs>... (alias t)Transcribe files or directories. --benchmark prints run timing instead of the transcript.
liveMicrophone / system-audio capture; streams final-per-utterance (or streaming-partial, for packs that declare it) captions.
serveLocal 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 clearManage 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-suiteEdit 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.

bash
openasr search # browse the model catalog
openasr pull whisper-small # download and install a pack
openasr list # installed packs
openasr rm whisper-small # remove an installed pack
openasr config list
openasr doctor

Browse available models, sizes, and quantizations on the Models page.

bash
openasr transcribe audio.wav --model whisper-small --format text

Useful 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.

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:

bash
openasr transcribe audio.wav --model-pack /path/to/model.oasr --format text

Unsupported native inputs fail closed rather than producing partial, timestamp, diarization, or confidence claims.

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.

bash
openasr transcribe /path/to/audio-dir --output /path/to/transcripts
openasr transcribe audio.wav --benchmark --model whisper-small
openasr live --source mic --max-seconds 5 --format jsonl
openasr serve

For the server API, listening address, and remote access requirements, see Server API.