panaud
The Swiss Army knife of audio processing — built for humans and AI agents alike.
Features
- Multi-format support — decode WAV, MP3, FLAC, OGG, AAC; encode WAV, MP3, FLAC (OGG opt-in)
- Flexible time parsing —
1:30,90s,1.5m,44100S(samples) - AI-agent friendly — structured JSON output,
--dry-run,--schema, and--capabilitiesfor programmatic use - Fast & safe — built in Rust with structured error handling and exit codes
Installation
Homebrew (macOS / Linux)
Cargo
Build from source
Quick Start
# Get audio info
# Convert MP3 to WAV
# Trim audio to a time range
# Preview without executing
# Adjust volume by +3 dB
# Peak-normalize audio
# Fade in/out
# Convert to mono / extract left channel
# Resample to 48 kHz
# Concatenate files
# Split by equal parts, at time points, or by duration
Commands
| Command | Description |
|---|---|
info |
Show audio file metadata (format, codec, sample rate, channels, duration) |
convert |
Convert audio between formats |
trim |
Trim audio to a time range |
volume |
Adjust audio volume |
normalize |
Peak-normalize audio |
fade |
Apply fade-in/fade-out to audio |
channels |
Change audio channel layout (mono, stereo, extract) |
resample |
Resample audio to a different sample rate |
concat |
Concatenate multiple audio files into one |
split |
Split audio into multiple files |
Supported Formats
| Format | Decode | Encode |
|---|---|---|
| WAV | ✅ symphonia | ✅ hound |
| MP3 | ✅ symphonia | ✅ mp3lame (default) |
| FLAC | ✅ symphonia | ✅ flacenc (default) |
| OGG | ✅ symphonia | ✅ vorbis_rs (opt-in) |
| AAC | ✅ symphonia | — |
MP3 and FLAC encoding are enabled by default. OGG encoding requires the
ogg-encfeature flag (cargo install panaud-cli --features ogg-enc) and a system libvorbis.
Time Formats
Time-related flags (--start, --end, --in, --out, --at, --duration) accept flexible formats:
| Format | Example | Meaning |
|---|---|---|
mm:ss |
1:30 |
1 minute 30 seconds |
hh:mm:ss |
1:02:30 |
1 hour 2 min 30 sec |
| seconds | 90 |
90 seconds |
Ns |
90s |
90 seconds |
Nm |
1.5m |
1.5 minutes |
NS |
44100S |
44100 samples (capital S) |
AI Agent Integration
panaud supports programmatic discovery and structured output for AI agents and automation:
Why panaud?
SoX (Sound eXchange) has been the "Swiss Army knife of sound processing" since 1991, but its last stable release (14.4.2) was in 2015. Development has effectively stopped, and its C codebase has known security vulnerabilities.
panaud aims to fill this gap with:
- Explicit CLI syntax — named flags instead of positional magic (
--channels monovsremix -) - AI-agent friendly —
--format json,--dry-run,--schema,--capabilities - Structured errors — actionable error messages with suggestions
- Modern tooling — cross-platform binaries, batch processing, pipeline recipes
# SoX: remix to mono, normalize, resample — all in one cryptic command
# panaud: explicit, composable commands
Part of the pan- family
panaud is the second member of the pan- tool family, sharing core infrastructure (CLI framework, structured output, pipeline engine) via pan-common.
| Tool | Domain |
|---|---|
| panimg | Image processing |
| panaud | Audio processing |
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT License (LICENSE-MIT)
at your option.