Skip to content

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.

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:

bash
tar -xzf openasr-*-aarch64-apple-darwin.tar.gz
./openasr --help

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:

bash
git clone --recurse-submodules https://github.com/QuintinShaw/openasr.git
cd openasr
cargo build --release -p openasr-cli # binary at target/release/openasr

The macOS desktop app is a separate closed-source product — see the desktop app guide if you want a GUI instead of the CLI.

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:

bash
openasr transcribe audio.wav

Pick a model and format, and write to a file (t is an alias for transcribe):

bash
openasr t audio.wav --model whisper-small --format srt --output audio.srt

Transcribe a whole directory (one transcript per file), or write several formats at once:

bash
openasr transcribe ./recordings --output ./transcripts
openasr transcribe audio.wav --format srt --format vtt --format json

Never touch the network — fail closed if the model isn’t installed yet:

bash
openasr transcribe audio.wav --offline
bash
openasr search # browse the model catalog
openasr pull whisper-small # download and install a pack
openasr list # installed packs
openasr show whisper-small # catalog card or local .oasr pack details
openasr rm whisper-small # remove an installed pack
bash
openasr verify /path/to/model.oasr
openasr show /path/to/model.oasr

Package 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:

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

Then call the OpenAI-compatible transcription endpoint:

bash
curl -s http://127.0.0.1:8080/v1/audio/transcriptions \
-F file=@audio.wav \
-F model=whisper-small \
-F response_format=json

The server never downloads a model to satisfy a request — it only runs an already-installed or explicitly pinned local pack.

bash
openasr doctor

See the CLI reference for the full command surface, and openasr --help / openasr <command> --help for the authoritative flag list.