Skip to main content

CLI Reference

Macaw ships with an Ollama-style CLI for managing models, running the server, and transcribing audio. All commands are available via the macaw binary.

macaw --help

Commands

macaw serve

Start the API server and gRPC workers.

Basic usage
macaw serve
Custom host and port
macaw serve --host 0.0.0.0 --port 9000
FlagDefaultDescription
--host127.0.0.1Bind address
--port8000HTTP port
--models-dir~/.macaw/modelsModels directory
--cors-origins*Allowed CORS origins
--log-formattextLog format (text or json)
--log-levelinfoLog level (debug, info, warning, error)

The server starts:

  1. FastAPI HTTP server on the specified port
  2. STT gRPC worker on port 50051
  3. TTS gRPC worker on port 50052
Production

For production deployments, use structured logging and bind to all interfaces:

macaw serve --host 0.0.0.0 --log-format json --log-level info

macaw transcribe

Transcribe an audio file or stream from the microphone.

Transcribe a file
macaw transcribe recording.wav --model faster-whisper-large-v3
Stream from microphone
macaw transcribe --stream --model faster-whisper-large-v3
FlagShortDefaultDescription
--model-mModel to use (required)
--formatjsonOutput format (json, text, verbose_json, srt, vtt)
--language-lautoLanguage code (e.g., en, pt)
--no-itnDisable Inverse Text Normalization
--hot-wordsComma-separated hot words
--streamStream from microphone instead of file
--serverhttp://localhost:8000Server URL (connects to running server)

File mode sends the audio to the REST API for batch transcription. Stream mode connects to the WebSocket endpoint for real-time transcription.

With hot words and language
macaw transcribe call.wav -m faster-whisper-large-v3 -l pt --hot-words "Macaw,OpenVoice"
Output as subtitles
macaw transcribe video.wav -m faster-whisper-large-v3 --format srt

macaw translate

Translate audio to English.

Translate Portuguese audio
macaw translate reuniao.wav --model faster-whisper-large-v3
FlagShortDefaultDescription
--model-mModel to use (required)
--formatjsonOutput format
--no-itnDisable ITN
--hot-wordsComma-separated hot words
--serverhttp://localhost:8000Server URL
English output only

Translation always produces English text, regardless of the source language. This matches the OpenAI API behavior.


macaw list

List installed models.

macaw list
NAME                        TYPE   ENGINE            SIZE
faster-whisper-large-v3 stt faster-whisper 3.1 GB
kokoro tts kokoro 982 MB
wenet-chinese stt wenet 1.2 GB
FlagDefaultDescription
--models-dir~/.macaw/modelsModels directory to scan

macaw inspect

Show detailed information about a model.

macaw inspect faster-whisper-large-v3
Name:           faster-whisper-large-v3
Type: stt
Engine: faster-whisper
Architecture: encoder-decoder
Size: 3.1 GB

Capabilities:
Hot words: false (via initial_prompt workaround)
Initial prompt: true
Batch: true
Word timestamps: true
Max concurrent: 1

Engine Config:
beam_size: 5
vad_filter: false
compute_type: float16
device: cuda
FlagDefaultDescription
--models-dir~/.macaw/modelsModels directory

macaw ps

List models loaded on a running server.

macaw ps
NAME                        TYPE   ENGINE            STATUS
faster-whisper-large-v3 stt faster-whisper ready
kokoro tts kokoro ready
FlagDefaultDescription
--serverhttp://localhost:8000Server URL to query

This queries the GET /v1/models endpoint on the running server.


macaw pull

Download a model from HuggingFace Hub.

Download a model
macaw pull faster-whisper-large-v3
Force re-download
macaw pull faster-whisper-large-v3 --force
FlagDefaultDescription
--models-dir~/.macaw/modelsDownload destination
--forceRe-download even if already exists

macaw remove

Remove an installed model.

Remove with confirmation
macaw remove faster-whisper-large-v3
Skip confirmation
macaw remove faster-whisper-large-v3 --yes
FlagShortDefaultDescription
--models-dir~/.macaw/modelsModels directory
--yes-ySkip confirmation prompt

Typical Workflow

1. Install a model
macaw pull faster-whisper-large-v3

# 2. Verify it's installed
macaw list

# 3. Start the server
macaw serve

# 4. In another terminal — check loaded models
macaw ps

# 5. Transcribe a file
macaw transcribe audio.wav -m faster-whisper-large-v3

# 6. Stream from microphone
macaw transcribe --stream -m faster-whisper-large-v3

# 7. Translate foreign audio
macaw translate foreign.wav -m faster-whisper-large-v3

Environment Variables

CLI commands respect these environment variables:

VariableDefaultDescription
MACAW_MODELS_DIR~/.macaw/modelsDefault models directory
MACAW_SERVER_URLhttp://localhost:8000Default server URL for client commands
MACAW_LOG_LEVELinfoDefault log level
MACAW_LOG_FORMATtextDefault log format