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 the archive for your platform from GitHub Releases,
verify against the release’s SHA256SUMS, extract, and put openasr on your
PATH. macOS (arm64, x86_64), Linux (x86_64, arm64), and Windows (x86_64,
arm64) are all published as prebuilt archives, alongside CUDA/ROCm/Vulkan
backend variants for Linux and Windows and a musl variant for Linux.
macOS / Linux:
tar -xzf openasr-*-macos-arm64.tar.gz # or -macos-x86_64 / -linux-x86_64 / -linux-arm64./openasr --helpWindows:
Expand-Archive openasr-*-windows-x86_64.zip.\openasr.exe --helpOption B: Docker (Linux server / CI)
Section titled “Option B: Docker (Linux server / CI)”Published images on Docker Hub track each core release (CPU multi-arch and
CUDA). The container default is the local HTTP server; model packs still install
into a volume at /data:
docker pull quintinshaw/openasr:latestdocker run --rm -p 8080:8080 -v openasr-data:/data quintinshaw/openasr:latestFull tag list, GPU setup, and openasr pull --yes inside the container:
Docker.
Option C: build from source
Section titled “Option C: 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 and Windows desktop apps are separate closed-source products — 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 packBrowse available models, sizes, and quantizations on the Models page.
Validate 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 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.
For authentication, TLS, and remote access configuration, see Server API.
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.