dapctl

TUI/CLI sync tool for HiFi Digital Audio Players

v1.0.0 · released

how it works

  1. 1.eject microSD from your DAP
  2. 2.connect via card reader
  3. 3.dapctl scandetect and identify
  4. 4.dapctl diffpreview changes before touching anything
  5. 5.dapctl syncsafe copy via temp+rename

features

install

# pre-built binaries — Linux · macOS · Windows
$ github.com/marturojt/dapctl/releases/latest

# from source (requires Rust 1.80+)
$ cargo install --git https://github.com/marturojt/dapctl --tag v1.0.0

# Homebrew (macOS / Linux)
$ brew tap marturojt/tap
$ brew install dapctl

# AUR / Scoop — coming soon
# yay -S dapctl-bin                   (AUR)
# scoop install dapctl                (Scoop)

Pre-built static binaries for Linux (x86_64 + aarch64), macOS (universal), and Windows are available on the releases page. Source install requires Rust 1.80+ (rustup.rs).

what dapctl is not

status

v1.0.0 released — SSH source (ssh://user@host/path),dapctl cover embed (write cover art into track tags), dapctl profile delete(CLI + TUI with two-press confirm), 5 new builtin DAP profiles (7 total, all CI-validated), path-limit warnings from DAP firmware spec, typed error taxonomy with structured exit codes,NO_COLOR support, selective mode write-back, 54 tests.

v0.4.0 — synced lyrics (.lrc auto-scroll), play history + resume position, sleep timer, equalizer animation, library normalisation (case + diacritics), dapctl audit (offline library health: missing tags · absent covers · format mix · track gaps),dapctl cover fetch (MusicBrainz → Cover Art Archive → iTunes, opt-in--online, 30-day cache), TUI UX improvements across player · diff · wizard · profiles.

v0.3.0 — TUI audio player with SQLite-backed library browser (artist → album → track, tag-grouped), gapless playback, HiFi metadata display (sample rate · bit depth · bitrate · channels), / incremental search, source toggle library ↔ DAP destination, home landing screen.

v0.2.0 — blake3 checksum verification, tag-based filters (artist · genre · sample rate · bit depth), ffmpeg transcode pipeline with blake3-keyed cache, dapctl export m3u, 39 tests.

v0.1.0 — sync engine, TUI (profiles · diff · progress · log · wizard), real-world validated: 2,108 FLAC · 75 GB · HiBy R4 microSD.

→ v1.0.0 release notes → v0.4.0 release notes → v0.3.0 release notes → v0.2.0 release notes → v0.1.0 release notes → roadmap (BACKLOG.md)