One binary. Every shell.
Capture microphone audio, play WAV files, and list devices from the command line. One static binary, zero runtime dependencies, cross-platform across Windows, macOS, and Linux.
Install with one command:
An audio CLI that works everywhere your scripts do.
decibri-cli is a focused audio I/O tool for scripts and CI: one statically-linked binary with zero runtime dependencies, installed in seconds via npm, cargo, or a direct download.
No system tools required.
No SoX, no ffmpeg, no arecord. Install and run. Nothing else to configure.
Works where you already work.
Windows 11, macOS (Intel + Apple Silicon), and Linux (x64 + arm64) from the same commands.
Built to be scripted.
Machine-readable --json output and stable exit codes for CI, pipelines, and automated diagnostics.
Four commands. One binary.
Everything decibri-cli does in v0.1.0. A tool built for capture, playback, and device enumeration.
decibri capture
Record 16-bit PCM WAV from any input device. ASR-ready defaults (16 kHz mono). Ctrl+C produces a valid truncated file, never corruption.
decibri play
Play 16-bit PCM or 32-bit float WAV through any output device. Clean Ctrl+C stop, stable exit codes.
decibri devices
Enumerate inputs and outputs with sample rates and channel counts. Select by name substring or numeric index.
decibri version
Report version, audio backend (WASAPI / CoreAudio / ALSA), target triple, and Rust version. Stable JSON schema from v0.1.0.
Pick whichever fits your workflow.
npm (recommended):
Recommended. Downloads the platform binary, verifies the SHA256, adds it to your PATH. No Node.js runtime required after installation.
cargo (from source):
Builds from source. Requires Rust stable. Linux needs libasound2-dev.
Direct download:
Pre-built archives with SHA256SUMS and SLSA provenance attestations for every supported platform.
Record, then play it back.
$ decibri devices --input # Name Channels Sample rate Default 0 MacBook Pro Microphone 1 48000 yes 1 Blue Yeti 2 48000 $ decibri capture -o speech.wav -d 5 --device "Yeti" Recording 5.0s from "Blue Yeti"… done. → speech.wav (160044 bytes, 16-bit PCM, 16000 Hz, mono) $ decibri play speech.wav Playing speech.wav (5.0s)… done.
{
"file": "clip.wav",
"duration_seconds": 2.0,
"sample_rate": 16000,
"channels": 1,
"samples": 32000,
"bytes": 64000,
"device": "MacBook Pro Microphone",
"dropped_chunks": 0
}
Only the version --json schema is stable in v0.1.x. Other JSON outputs may change before v1.0.0.
Ship your script, not your build pipeline.
One binary per target, checksummed and attested via Sigstore. Distributed through npm, crates.io, and GitHub Releases.
Built on the Decibri library.
decibri-cli is a thin shell over the decibri Rust crate, which is the same library that powers the decibri Node.js package. If you've used decibri from Node, the CLI uses the exact same audio backend (cpal) underneath; the browser runtime shares the same API through a JavaScript implementation. Capture a WAV on the command line, then load it in a Node script with decibri. Same audio format, same device semantics, same cross-platform coverage.
Frequently asked.
No. npm install -g decibri-cli uses npm purely as a delivery channel. The package downloads a platform-specific binary, verifies its SHA256, and adds it to your PATH. Once installed, the binary runs directly with no Node.js runtime involved. You can also use cargo install decibri-cli or download the binary directly from GitHub Releases.
It's the format every ASR engine, wake-word detector, and speech-processing pipeline expects. 16-bit PCM at 16 kHz mono is the default because it's the lingua franca of voice tooling. You can pass -r 44100 -c 2 for CD-quality stereo, but the encoding is always 16-bit PCM WAV in v0.1.0.
Not in v0.1.0. The focus is small, focused, and predictable. decibri-cli records and plays 16-bit PCM WAV only; format conversion is out of scope.
v0.1.x binaries are unsigned (code signing is on the v1.0 roadmap). Every release ships with SHA256 checksums and SLSA provenance attestations generated by GitHub Actions, so you can verify a download with gh attestation verify <archive> --owner decibri. On macOS, direct downloads may need xattr -d com.apple.quarantine /path/to/decibri. The npm install path avoids the SmartScreen prompt because the binary is fetched at install time.
Capture audio from the command line in 30 seconds.
One install. Four commands. Every platform.