CLI Reference
The minihost command provides a CLI for plugin inspection, real-time playback, offline processing, and audio conversion.
minihost [-r SAMPLE_RATE] [-b BLOCK_SIZE] <command> [options]
Global Options
| Option |
Default |
Description |
-r, --sample-rate |
48000 |
Sample rate in Hz |
-b, --block-size |
512 |
Block size in samples |
Commands
scan -- Scan directory for plugins
minihost scan /Library/Audio/Plug-Ins/VST3/
minihost scan ~/Music/Plugins --json
| Option |
Description |
directory |
Directory to scan (required) |
-j, --json |
Output as JSON |
info -- Show plugin info
minihost info /path/to/plugin.vst3 # full info (loads plugin)
minihost info /path/to/plugin.vst3 --probe # lightweight metadata only
minihost info /path/to/plugin.vst3 --json # JSON output
| Option |
Description |
plugin |
Path to plugin (required) |
--probe |
Metadata only, no full load |
-j, --json |
Output as JSON |
params -- List plugin parameters
minihost params /path/to/plugin.vst3
minihost params /path/to/plugin.vst3 --verbose
minihost params /path/to/plugin.vst3 --json
| Option |
Description |
plugin |
Path to plugin (required) |
-V, --verbose |
Show ranges, defaults, flags |
-j, --json |
Output as JSON |
midi -- List or monitor MIDI ports
minihost midi # list all MIDI ports
minihost midi --json # list as JSON
minihost midi -m 0 # monitor MIDI input port 0
minihost midi --virtual-midi "Monitor" # create virtual port and monitor
| Option |
Description |
-m, --monitor N |
Monitor MIDI input port N |
--virtual-midi NAME |
Create virtual port and monitor it |
-j, --json |
Output as JSON |
play -- Play plugin with real-time audio/MIDI
minihost play /path/to/synth.vst3 --midi 0
minihost play /path/to/synth.vst3 --virtual-midi "My Synth"
minihost play /path/to/effect.vst3 --input # duplex mode
minihost play /path/to/effect.vst3 --input --midi 0 # duplex + MIDI
| Option |
Description |
plugin |
Path to plugin (required) |
-i, --input |
Enable audio input (duplex mode) for effect processing |
-m, --midi N |
Connect to MIDI input port N |
-v, --virtual-midi NAME |
Create virtual MIDI input |
--midi-out N |
Connect to MIDI output port N |
--virtual-midi-out NAME |
Create virtual MIDI output |
When --input is enabled, the audio device opens in duplex mode: system audio input is captured, processed through the plugin, and played back through speakers. This is useful for guitar amp sims, vocal processing, and live effects.
process -- Process audio/MIDI offline
# Basic effect processing
minihost process /path/to/effect.vst3 -i input.wav -o output.wav
# With parameters
minihost process /path/to/effect.vst3 -i input.wav -o output.wav --param "Mix:0.5"
# Render MIDI through synth
minihost process /path/to/synth.vst3 -m song.mid -o output.wav --tail 3.0
# Sidechain processing (second -i is sidechain)
minihost process /path/to/compressor.vst3 -i main.wav -i sidechain.wav -o output.wav
# Batch processing (glob input, directory output)
minihost process /path/to/reverb.vst3 -i "drums/*.wav" -o processed/
minihost process /path/to/effect.vst3 -i "*.wav" -o output/ -y
| Option |
Description |
plugin |
Path to plugin (required) |
-o, --output |
Output file or directory (required) |
-i, --input FILE |
Input audio file (repeatable; second = sidechain) |
-m, --midi-input FILE |
Input MIDI file |
-t, --tail SECS |
Tail length after MIDI ends (default: 2.0) |
--param SPEC |
Set parameter: "Name:value" (repeatable) |
--param-file FILE |
JSON automation file |
-s, --state FILE |
Load plugin state from file |
--vstpreset FILE |
Load .vstpreset file |
-p, --preset N |
Load factory preset N |
--bit-depth {16,24,32} |
Output bit depth (default: 24) |
--out-channels N |
Override output channel count |
--non-realtime |
Enable non-realtime processing mode |
--bpm BPM |
Set transport BPM |
--no-resample |
Error on sample rate mismatch instead of auto-resampling |
-y, --overwrite |
Overwrite output if it exists |
Batch Mode
When the output path is a directory (ends with / or is an existing directory) and input contains glob patterns, batch mode activates:
- Each matched input file is processed independently
- Plugin is loaded once and reset between files
- Output files keep the input filename (e.g.,
input/kick.wav becomes output/kick.wav)
- Mismatched sample rates are automatically resampled to match the first file
- Existing output files are skipped unless
-y is set
resample -- Resample audio files
minihost resample input.wav -o output.wav -r 48000
minihost resample input.wav -o output.wav -r 44100 --bit-depth 16
minihost resample input.wav -o output.wav -r 96000 -y
| Option |
Description |
input |
Input audio file (required) |
-o, --output |
Output file path (required) |
-r, --target-rate HZ |
Target sample rate (required) |
--bit-depth {16,24,32} |
Output bit depth (default: 24) |
-y, --overwrite |
Overwrite output if it exists |