cuz graphical interfaces are overrated (somebody)
The headless, native Spotify client engineered for terminal power users and autonomous AI agents.
- 24-bit color dashboard with real-time status
- Keyboard-driven navigation (no mouse needed)
- Live search with instant results
- <50MB RAM idle, <100ms launch time
- Stateless commands for scripting
--jsonflag for clean, machine-readable output- Perfect for AI agents and shell automation
- Zero-config pipeline integration
-
Install Rust (if not already installed):
# Linux / macOS curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Windows # Download from https://rustup.rs or use: winget install Rustlang.Rustup
-
Get Spotify Developer Credentials:
- Visit Spotify Developer Dashboard
- Click "Create app"
- Fill in app name and description (any values)
- Add Redirect URI:
http://127.0.0.1:8888/callback - Save and copy your Client ID and Client Secret
cargo install spotilinespotiline daemon startYou will be prompted for:
- Spotify Client ID (paste from dashboard)
- Spotify Client Secret (paste from dashboard)
Your browser opens automatically for authorization. Click "Agree" and you're done.
Credentials are stored securely in your system keychain (Windows Credential Manager, macOS Keychain, Linux Secret Service).
spotilineOr control via CLI:
spotiline play
spotiline status --json
spotiline search "lofi beats" --playFull documentation available at: https://ejafee.github.io/spotiline
- Rust 1.70+ (for installation via cargo or building from source)
- Operating System: Linux, macOS, or Windows
- Spotify Premium account (required for playback control via Spotify Web API)
- Spotify Developer credentials (Client ID and Client Secret)
- Create free app at: https://developer.spotify.com/dashboard
- Set redirect URI:
http://127.0.0.1:8888/callback
- Active internet connection
- At least one active Spotify device (desktop app, mobile, or speaker)
spotiline binary
├─ TUI (ratatui) # Terminal dashboard
└─ CLI (clap) # Command interface
↓
TCP IPC (127.0.0.1:47836)
↓
Background Daemon
└─ Spotify Web API (rspotify)
Contributions welcome! See CONTRIBUTING.md for guidelines.
- Synced lyrics integration (lrclib.net)
- Podcast support
- Real-time FFT audio visualizer
- Playlist management
MIT License - see LICENSE for details.
Built with:
Made with ❤️ for the terminal