Terminal UI client for Cider (Apple Music) built with Go and Bubble Tea.
Lyrics function with rick-roll
- Three-pane layout (left navigation, center content, right now-playing/lyrics)
- Cider integration for playback, queue, playlists, volume, shuffle, repeat, autoplay
- Search mode (
Ctrl+s) with grouped modules (Songs,Artists,Albums,Playlists) - Search detail pane for non-song results (artist/album/playlist detail)
- Collapsible modules in search results (
h/lorEnteron module headers) - Lyrics view with provider fallback chain:
- Cider local API
- LRCLIB
- lyrics.ovh
- Local state persistence in
~/.config/lazycider/state.json
- Go 1.25+
- Running Cider client with RPC enabled
Optional:
- Kitty terminal (for inline cover art rendering)
Environment variables:
CIDER_API_BASE(default:http://localhost:10767)CIDER_API_TOKEN(required if Cider RPC auth is enabled)CIDER_STOREFRONT(default:us, used for catalog search)
go mod tidy
go build ./...
go run ./cmd/lazyciderCtrl+c: quit:: command mode (:qto quit)
Ctrl+h/Ctrl+k: move focus leftCtrl+l/Ctrl+j: move focus right
When search is active, focus order is:
left -> center results -> center detail -> right
j/k(or arrows): move selection/scroll in focused panelgg: jump to topG: jump to bottom
Enteron a song row: play selected trackSpace: play/pausen/p: next/previous+/-: volume up/downs: toggle shufflee: toggle repeata: toggle autoplay
y: toggle queue/lyrics subpanelr: refresh now playing
Ctrl+s: open search input (top-left bar)Enterin search mode: execute queryEscin search mode: cancelh/lin center results: collapse/expand result modulesEnteron non-song result: load detail in center detail pane
- Persisted state is stored with restrictive permissions (
0700directory,0600file) - Display text is sanitized before rendering to reduce terminal control-sequence injection risk
- Artwork downloads are restricted to
http/httpsand size-limited
cmd/lazycider/ # entrypoint
internal/cider/ # Cider API client (playback, library, lyrics, search)
internal/tui/ # Bubble Tea model/update/view logic
internal/artwork/ # cover cache/downloader
internal/term/kitty/ # kitty image rendering helpers
internal/music/ # shared domain types
gofmt -w ./...
go test ./...
go build ./...This project is licensed under GNU GPL v3.0 (GPL-3.0).
See LICENSE for details.

