Add TUI interface #32

Open
opened 2026-03-17 16:47:27 -04:00 by connor · 0 comments
Owner

Several crates were designed to have TUI (terminal user interface) capability. Implement a unified TUI using ratatui that provides an interactive terminal experience for managing Shanty without a web browser.

  1. Library browser — navigate artists/albums/tracks in the terminal
  2. Search — search for music and add to watchlist
  3. Download queue — view and manage downloads
  4. System status — overview of running tasks, library stats
  5. Key bindings — vim-style navigation

This is particularly useful for headless servers where users SSH in, or for users who prefer terminal workflows.

Acceptance Criteria

  • TUI launches with shanty tui or as the default for individual crate binaries
  • Library browsing works with keyboard navigation
  • Search and add-to-library flow works
  • Download queue is viewable and manageable
  • System status is displayed
  • Responsive to terminal size changes

Dependencies

  • Issue #2 (database)
  • Issue #9 (may share the backend API, or call library crates directly)
Several crates were designed to have TUI (terminal user interface) capability. Implement a unified TUI using `ratatui` that provides an interactive terminal experience for managing Shanty without a web browser. 1. **Library browser** — navigate artists/albums/tracks in the terminal 2. **Search** — search for music and add to watchlist 3. **Download queue** — view and manage downloads 4. **System status** — overview of running tasks, library stats 5. **Key bindings** — vim-style navigation This is particularly useful for headless servers where users SSH in, or for users who prefer terminal workflows. ### Acceptance Criteria - [ ] TUI launches with `shanty tui` or as the default for individual crate binaries - [ ] Library browsing works with keyboard navigation - [ ] Search and add-to-library flow works - [ ] Download queue is viewable and manageable - [ ] System status is displayed - [ ] Responsive to terminal size changes ### Dependencies - Issue #2 (database) - Issue #9 (may share the backend API, or call library crates directly)
connor added the LowPriority label 2026-03-19 12:31:13 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Shanty/Main#32