Why Features Compare Platforms CLI Docs

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:

$ npm install -g decibri-cli Copied!

An audio CLI that works everywhere your scripts do.

Scripting audio I/O has always meant reaching for fragmented, unmaintained, or heavyweight tooling. decibri-cli is a focused alternative: 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 rather than a full SoX replacement.

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

$ npm install -g decibri-cli Copied!

Recommended. Downloads the platform binary, verifies the SHA256, adds it to your PATH. No Node.js runtime required after installation.

cargo (from source):

$ cargo install decibri-cli Copied!

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.

bash
$ 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.
json
{
  "command": "capture",
  "output": "clip.wav",
  "duration": 2.0,
  "sample_rate": 16000,
  "channels": 1,
  "format": "int16",
  "bytes_written": 64044,
  "interrupted": false
}

Only the version --json schema is stable in v0.1.x. Other JSON outputs may change before v1.0.0.

Built for exactly this job.

Purpose-built for audio capture, playback, and device enumeration. Here's how it stacks up against the tools you might reach for today.

Other tools

  • SoX has no modern Windows build and ships infrequent releases
  • ffmpeg weighs 70 MB+, and audio I/O is a rounding error inside a full media toolkit
  • arecord and aplay are Linux only and not portable across operating systems
  • Platform-specific scripts force your CI to branch per OS

decibri-cli

  • ~800 KB static binary, Apache-2.0
  • Single install across Windows, macOS, Linux (x64 + arm64)
  • Focused on capture, play, devices, and version. Nothing else.
  • JSON output and stable exit codes for scripts and CI
  • SLSA provenance attestations via Sigstore

Ship your script, not your build pipeline.

One binary per target, checksummed and attested via Sigstore. Distributed through npm, crates.io, and GitHub Releases.

Windows 11
x86_64-pc-windows-msvc
WASAPI
macOS
universal2 (Intel + Apple Silicon)
CoreAudio
Linux
x86_64-unknown-linux-gnu
ALSA
Linux
aarch64-unknown-linux-gnu
ALSA

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 and browser runtime. If you've used decibri from Node or the browser, the CLI uses the exact same audio backend (cpal) underneath. 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. If you need format conversion, pipe the WAV output through ffmpeg or sox.

No. SoX is a full audio processing toolkit with effects, filters, and format conversion. decibri-cli does four things: capture, play, enumerate devices, and report version. If your use case is "record and play WAVs from a script on any OS", decibri-cli fits. If you need to apply reverb or convert between codecs, use SoX or ffmpeg.

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.

$ npm install -g decibri-cli Copied!