Modern sync for classic iPods.
Documentation | Getting Started | Roadmap
If you're rocking an old-school iPod on stock firmware and wondering why syncing music to it is still so painful — podkit is for you. No more booting into Windows for iTunes, no more duplicated tracks, no more artwork that refuses to show up. Just point podkit at your music collection, run podkit sync, and walk away.
Beta software — podkit is in early development and things may break. Only use it with an iPod you're willing to wipe. If you're up for that, I'd love your help — join as a beta tester and help shape the project.
- One command, zero thinking — Run
podkit syncand your iPod is up to date. No GUI, no clicking, no babysitting - Incremental sync — only new, changed, or removed tracks are touched. Re-syncing a large library after tweaking tags takes seconds
- Automatic transcoding — FLAC and lossless files converted to AAC on the fly. Lossy files that are already iPod-compatible are copied directly — nothing is re-encoded unnecessarily
- Full metadata and artwork — All tags and album artwork preserved through transcoding
- Clean artist lists — iPods don't respect album artist tags, so "Artist feat. X" splits across dozens of entries. podkit automatically cleans this up on sync — your source files stay untouched
- Multiple sources — Sync from local directories or Subsonic-compatible servers like Navidrome
- Video support — Sync movies and TV shows to video-capable iPods
- Non-destructive — Your music collection is never modified. Transforms, transcoding, and format conversion only affect what lands on the iPod
- Scriptable — CLI-first design for automation with cron, scripts, and pipelines
iPod Classic, Video, Nano (1st–5th gen), Mini, and Shuffle (1st–2nd gen). Stock firmware, no Rockbox required. Modded iPods with iFlash SD adapters work too.
iOS devices (iPod Touch, iPhone, iPad) are not supported.
See Device Compatibility for the full list.
brew install jvgomg/podkit/podkitThis installs podkit and its only runtime dependency (FFmpeg) in a single command. All native dependencies are bundled — nothing else to install.
Other install methods (manual download, building from source) are covered in the Installation guide.
Platform support: macOS and Linux. Windows is on the roadmap.
# Create config file
podkit init
# Add your music collection
podkit collection add -t music -c main --path ~/Music/library
# Connect iPod and register it
podkit device add -d myipod
# Preview what would be synced
podkit sync --dry-run
# Sync your music
podkit sync
# Safely eject
podkit device ejectSee the Quick Start guide for a full walkthrough.
The software for syncing iPods hasn't kept up. iTunes is gone on Mac, gtkpod is abandoned, and the tools that remain are clunky, GUI-only, or broken in subtle ways. Under the hood, most of them depend on libgpod — a C library last updated in 2015. It still works, but nobody has built a modern tool on top of it. Until now.
podkit wraps libgpod in native Node.js bindings and layers on everything that's been missing: incremental sync, automatic transcoding, metadata preservation, and a CLI-first workflow that's easy to script and automate. The goal is to be the go-to project for syncing music to iPod devices.
It's also more than a CLI. podkit is structured as a core library that other developers can build on — a TUI, a desktop app, or something entirely different. The CLI is just the first interface.
Read the full story.
podkit is a one-person project and community input directly shapes what gets built. Here's how you can help:
- Become a beta tester — Try podkit on your iPod and share your experience
- Vote on features — The roadmap is driven by what the community cares about
- Report bugs — Found something broken? Let me know
- Say hello — Share your iPod setup, your use case, or just introduce yourself
Full documentation at jvgomg.github.io/podkit:
- Getting Started — Installation and first sync
- User Guide — Configuration, sources, transcoding
- CLI Reference — All commands and options
- Developer Guide — Architecture and contributing
git clone https://github.com/jvgomg/podkit
cd podkit
bun install
bun run build
bun run testSee Development Setup and Contributing for details.
MIT
