Control iTunes playback and library from your terminal using a Node.js CLI.
itunes-remote is a Node.js command-line tool that lets you control iTunes playback and search your music library directly from the terminal. It solves the problem of needing to switch away from the command line to manage music, using macOS's JavaScript for Automation to interact with iTunes.
Developers and power users on macOS who prefer terminal workflows and want to control iTunes without interrupting their command-line sessions.
It offers a fast, scriptable interface for iTunes control with fuzzy search and interactive commands, making it a productivity tool for music management in development environments.
:notes: Control iTunes via CLI
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages Apple's JXA to interact directly with iTunes, providing reliable playback and library access without third-party APIs, as highlighted in the README's use of osascript via Node.js.
Offers a custom prompt with commands like play, pause, and fuzzy search for albums, artists, and songs, making it easy to quickly find and control music from the terminal.
Supports passing commands directly from the command line, enabling automation and integration into shell scripts, as shown in the README's example with 'itunes stop --exit'.
Installs globally via npm with minimal dependencies, providing a quick start for controlling iTunes without complex configuration, as indicated by the simple installation steps.
Requires macOS and iTunes, making it incompatible with other operating systems and increasingly obsolete as Apple phases out iTunes in favor of the Music app on newer macOS versions.
Does not support other music players or streaming services, restricting its utility to users who still rely on iTunes, with no mention of extensibility in the README.
Relies on JXA via osascript, which can introduce delays in playback control compared to native applications, and the README does not address optimization or speed concerns.