A tiny MIDI player for your terminal. It ships with a built-in software synth, so no SoundFont or external synthesizer is needed.
curl -fsSL https://raw.githubusercontent.com/EmreErdogan/termidi/main/install.sh | shThe binary is installed to ~/.local/bin (override with INSTALL_DIR=/path). If that directory is not on your PATH, it is added to your shell config automatically.
On Windows (PowerShell):
irm https://raw.githubusercontent.com/EmreErdogan/termidi/main/install.ps1 | iexThis installs to %LOCALAPPDATA%\Programs\termidi and adds it to your user PATH.
Supported platforms: macOS, Linux and Windows (amd64, arm64).
termidi song.mid
termidi intro.mid verse.mid # play several files in order
termidi ~/midi/ # play every .mid/.midi file in a folderWhile playing, termidi shows a level meter for each channel and a keyboard that lights up the notes being played.
| Key | Action |
|---|---|
space |
pause / resume |
← / → |
seek 5 s back / forward |
↑ / ↓ |
volume up / down |
+ / - |
speed up / slow down |
n / p |
next / previous song (p restarts the current song after 3 s) |
q |
quit |
termidi update # update to the latest release
termidi version # print the installed versionmake build # Go 1.27+; Linux also needs libasound2-dev- In
CHANGELOG.md, move the[Unreleased]entries under a new version heading. - Commit, push, then run
make release V=x.y.z. It pushes the tag; GitHub Actions builds the binaries and attaches them to the release.