miditui Crates.io An interactive terminal app/UI for MIDI composing, mixing, and playback—written in Rust. miditui allows for a DAW-like experience in the terminal and has many features that you wouldn't expect a terminal app to have: Full terminal mouse support: click, drag, scroll, double-click, right-click all work, which allows you to pan views, select notes, click piano keys to play them A piano roll view for showing the notes as they are played in the song An Insert mode to press keys on your keyboard (or simply click the piano roll) and create music in real time: Two-octave QWERTY layout (Z-M and Q-I rows) with live audio playback as you type A project timeline view to see all the MIDI tracks with active notes at the timestep Low-latency 44.1kHz audio via rustysynth Timeline seeking by clicking the time rulers to skip to any point of the track Unlimited MIDI tracks with per-track mute/solo, volume/pan (L/R) controls, and automatic MIDI channel assignment Autosave that periodically saves your project and automatically reloads it when restarting the app Undo/Redo support to avoid losing work Import/Export MIDI and JSON files, plus export the music as a WAV file. Watch this video to see miditui in action (enable sound within the in-line player on the top-right): miditui.mp4 Disclosure: This crate was developed with the assistance of Claude Opus 4.5, initially as a personal experiment just to see how well modern coding agents can handle TUIs and I figured a full-on MIDI mixer which has atypical UI requirements would be a more interesting test. Opus 4.5 did a good job and after a demo went viral on X people were asking for me to release it, so I decided to spend extra time polishing and comprehensively testing the app before then open-sourcing it. I have written a full analysis of the agentic coding workflow—including the prompts provided to Opus 4.5—in the agent_notes folder. Installation The app binaries can be downloaded from the Releases page for your platform...
First seen: 2026-01-10 03:53
Last seen: 2026-01-10 13:54