CLI quickstart
OpenASR’s Rust CLI, local HTTP API, and model catalog are developed in the public Apache-2.0 open core at github.com/QuintinShaw/openasr.
Install
Section titled “Install”Option A: prebuilt binary (fastest)
Section titled “Option A: prebuilt binary (fastest)”Download a tar.gz from GitHub Releases
(macOS arm64 and Linux x86_64 today), verify against the release’s SHA256SUMS,
extract, and put openasr on your PATH:
tar -xzf openasr-*-aarch64-apple-darwin.tar.gz./openasr --helpOption B: build from source
Section titled “Option B: build from source”The ggml backend is a git submodule compiled from source, so clone recursively.
You’ll need cmake, a C/C++ toolchain, Rust 1.95.0 (pinned by
rust-toolchain.toml), and on Linux libasound2-dev:
git clone --recurse-submodules https://github.com/QuintinShaw/openasr.gitcd openasrcargo build --release -p openasr-cli # binary at target/release/openasrThe macOS desktop app is a separate closed-source product — see the desktop app guide if you want a GUI instead of the CLI.
Transcribe a file
Section titled “Transcribe a file”native is the default backend: it runs local ggml-backed .oasr model
packs and is fail-closed at every stage. The first run offers to download the
default model with a visible confirmation (showing model, quant, size, host,
and license), then runs fully offline:
openasr transcribe audio.wavPick a model and format, and write to a file (t is an alias for transcribe):
openasr t audio.wav --model whisper-small --format srt --output audio.srtTranscribe a whole directory (one transcript per file), or write several formats at once:
openasr transcribe ./recordings --output ./transcriptsopenasr transcribe audio.wav --format srt --format vtt --format jsonNever touch the network — fail closed if the model isn’t installed yet:
openasr transcribe audio.wav --offlineBrowse 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 show whisper-small # catalog card or local .oasr pack detailsopenasr rm whisper-small # remove an installed packValidate a local .oasr pack
Section titled “Validate a local .oasr pack”openasr verify /path/to/model.oasropenasr show /path/to/model.oasrPackage validation is local-only. It does not download artifacts or run inference.
To pin an explicit local pack for transcription instead of an installed model,
pass --model-pack:
openasr transcribe audio.wav --model-pack /path/to/model.oasrStart the local server
Section titled “Start the local server”openasr serveThen call the OpenAI-compatible transcription endpoint:
curl -s http://127.0.0.1:8080/v1/audio/transcriptions \ -F file=@audio.wav \ -F model=whisper-small \ -F response_format=jsonThe server never downloads a model to satisfy a request — it only runs an already-installed or explicitly pinned local pack.
Diagnostics
Section titled “Diagnostics”openasr doctorSee the CLI reference for the full command surface, and
openasr --help / openasr <command> --help for the authoritative flag list.