mtd (short for MUsic TErminal Daemon) is a Unix-based, terminal music player written in Rust.
The project exists primarily as a learning exercise to understand Rust through building a real, structured systems application involving audio playback, IPC, async execution, and terminal interfaces.
This is not a general-purpose music player and does not aim to compete with existing tools.
- Terminal-based
- Unix-only (Linux and macOS)
- Local music playback
- Minimal, structured design
mtd follows a daemon–client model:
- A background daemon manages audio playback and application state
- Clients (CLI / TUI) communicate with the daemon via IPC
- Audio playback is handled through a high-level Rust audio stack
Detailed design documentation is available in the docs/ directory.
- Rust
- rodio (audio playback)
- tokio (async runtime)
- ratatui + crossterm (terminal UI)
- Unix domain sockets (IPC)
- serde (serialization)
Early development.
APIs, structure, and behavior are subject to change.
Project documentation is organized under the docs/ directory:
architecture.md— overall system designaudio.md— audio playback approachipc.md— inter-process communicationroadmap.md— planned milestones
GPLv3