Skip to content

Repository files navigation

AMCLI - Apple Music Command Line Interface

A Rust-powered terminal controller for Apple Music on macOS

Rust Version License Status

English | 中文

AMCLI cyan VFD theme with album artwork, playback controls, and synchronized lyrics

Overview

AMCLI is a Terminal User Interface (TUI) application for controlling Apple Music on macOS. It brings playback controls, album artwork, synchronized lyrics, and terminal-first customization into one focused interface.

  • Complete playback controls for Apple Music
  • 8-bit style album artwork rendering
  • Real-time synchronized lyrics
  • Lightweight Rust implementation
  • Vim-style keybindings
  • Theme and mosaic display customization

Feature Highlights

Media Control

  • Play, pause, skip, and go back
  • Adjust volume and mute
  • Seek forward and backward
  • Cycle repeat mode
  • Track progress with precise position display

Visual Experience

  • ASCII, Unicode, and TrueColor album artwork
  • Current-track artwork first, with online lookup as a fallback
  • Non-blocking background artwork loading
  • Automatic retry after transient artwork failures
  • Six built-in themes:
    • AMBER VFD
    • GREEN VFD
    • CYAN VFD
    • RED ALERT
    • MODERN
    • CLEAN
  • Optional mosaic mode for pixelated artwork
  • Responsive terminal layout

AMCLI amber VFD theme screenshot AMCLI alternate terminal theme screenshot

Synchronized Lyrics

  • Millisecond-precision LRC playback sync
  • Concurrent LRCLIB and Netease lookup on first fetch
  • Candidate matching by title, artist, album, and duration
  • Session-level source preference based on the faster provider
  • LRU cache for repeated lyrics queries
  • Centered auto-scrolling lyrics view
  • LRC parser support for multiple timestamps and offset adjustments

AMCLI modern dark theme with synchronized lyrics AMCLI clean light theme with synchronized lyrics

Terminal-First Workflow

AMCLI is designed to stay useful inside a real terminal workspace: compact controls, readable metadata, predictable keybindings, and visual feedback that works alongside other command-line tools.

AMCLI running inside a terminal dashboard workflow

Configuration & Customization

  • Interface language: English / Japanese
  • Settings menu with s
  • Live theme switching with t
  • Mosaic mode toggle
  • Configuration file at ~/.config/amcli/config.toml

Quick Start

Tip

Project status: Phases 1-3 are complete, covering the core TUI, album artwork, and LRCLIB + Netease lyrics integration.

Installation

Option 1: Build from Source

git clone https://github.com/juntaochi/amcli.git
cd amcli
cargo build --release
cargo install --path .

Option 2: Download a Release

Download a pre-built binary from the Releases page.

Option 3: Homebrew tap

If the Homebrew tap has been published for the current release:

brew tap juntaochi/tap
brew install amcli

Maintainers can use the template in homebrew/amcli.rb when preparing tap updates.

Usage

amcli
amcli --help
amcli --config ~/.config/amcli/config.toml

Configuration

AMCLI creates ~/.config/amcli/config.toml on first run.

[general]
language = "en"  # "en" or "jp"

[artwork]
enabled = true
cache_size = 100
mode = "auto"     # auto, ascii, blocks, truecolor
mosaic = true

[ui]
color_theme = "default"
show_help_on_start = true

Keybindings

Action Key
Play / Pause Space
Next Track ]
Previous Track [
Volume Up = / +
Volume Down - / _
Mute m
Seek Forward / Backward . / , or /
Navigate h / j / k / l or arrow keys
Cycle Repeat Mode r
Theme Switch t
Settings s
Help ?
Quit q

See PROJECT_SPEC.md for the full design notes and planned keyboard system.

Documentation

  • PROJECT_SPEC.md - Full project specification, architecture, feature design, and roadmap
  • LYRICS.md - Lyrics system internals, provider integration, parsing, and sync behavior
  • CONTRIBUTING.md - Contribution guide

Development Roadmap

  1. Phase 1: Core foundation, TUI framework, and Apple Music control
  2. Phase 2: UI enhancements and album artwork
  3. Phase 3: Lyrics integration
  4. Phase 4: Playlist and music library features
  5. Phase 5: Plugin system and multi-player support
  6. Phase 6: Polish and release

Tech Stack

  • Language: Rust 1.75+
  • TUI Framework: Ratatui
  • Terminal Backend: Crossterm
  • Async Runtime: Tokio
  • macOS Integration: AppleScript / osascript
  • Configuration: Serde + TOML + Clap

Contributing

Contributions are welcome. See CONTRIBUTING.md for setup and workflow details.

License

AMCLI is licensed under the MIT License. See LICENSE for details.

Acknowledgments

Made for music lovers and terminal enthusiasts

About

Rust TUI for Apple Music on macOS — playback controls, terminal-rendered artwork, synced lyrics, custom themes.

Topics

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages