# spicetify/cli

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/spicetify-cli).**

22,182 stars · 837 forks · JavaScript · lgpl-2.1

## Links

- GitHub: https://github.com/spicetify/cli
- Homepage: https://spicetify.app
- awesome-repositories: https://awesome-repositories.com/repository/spicetify-cli.md

## Topics

`command-line` `command-line-tool` `customization` `golang` `hacktoberfest` `linux` `macos` `spicetify-cli` `spicetify-extensions` `spotify` `windows`

## Description

This project is a command-line utility and development framework designed to modify, extend, and customize the Spotify desktop client. It functions as a binary patching engine that injects custom scripts, stylesheets, and interface components directly into the host application, enabling users to alter visual themes and add new functionality.

The tool distinguishes itself by providing a comprehensive development environment for building modular extensions and custom applications. It includes a hot-reloading pipeline for rapid iteration, a declarative library for constructing interactive UI panels, and deep integration with the player's internal state. Developers can manipulate playback controls, register global keyboard shortcuts, and create context-aware menus or tooltips that integrate seamlessly with the native interface.

Beyond customization, the project offers robust administrative control over the client environment. It manages the full lifecycle of extensions and themes, provides automated backup and restoration of the original application state, and includes diagnostic tools like remote debugging and component inspection to facilitate troubleshooting.

The project is distributed as a command-line interface, allowing users to manage configurations, apply modifications, and maintain compatibility with client updates through structured terminal commands.

## Tags

### Development Tools & Productivity

- [Desktop Customization Frameworks](https://awesome-repositories.com/f/development-tools-productivity/desktop-customization-frameworks.md) — Acts as a command-line tool for injecting themes, extensions, and custom functionality into the desktop application.
- [Extensible Media Players](https://awesome-repositories.com/f/development-tools-productivity/extensible-media-players.md) — Provides a development environment for building and managing modular plugins that extend the features and UI of the media player.
- [Client Configuration](https://awesome-repositories.com/f/development-tools-productivity/client-configuration.md) — Manages application configuration, backups, and state restoration through command-line instructions. ([source](https://spicetify.app/))
- [Extensible Application Frameworks](https://awesome-repositories.com/f/development-tools-productivity/extensible-application-frameworks.md) — Provides a framework for building modular extensions and custom applications that integrate directly into the desktop client. ([source](https://spicetify.app/docs/customization/custom-apps))
- [Application Customization Frameworks](https://awesome-repositories.com/f/development-tools-productivity/application-customization-frameworks.md) — Injects themes, extensions, and custom applications to modify client appearance and functionality. ([source](https://spicetify.app/docs/cli/commands))
- [Hot Reloading](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/build-plugin-integrations/hot-reloading.md) — Monitors source files for changes and automatically refreshes injected assets to enable rapid iterative development.
- [Workflow Optimization Tools](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/workflow-productivity-enhancers/developer-productivity-utilities/developer-productivity/workflow-automation-frameworks/workflow-optimization-tools.md) — Streamlines development with hot-reloading, remote debugging, and automated build tools for rapid iteration.
- [Extension Managers](https://awesome-repositories.com/f/development-tools-productivity/extension-managers.md) — Provides a centralized dashboard to discover, install, update, and remove themes and extensions. ([source](https://spicetify.app/docs/customization))
- [Internal Application Interfaces](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces/application-extensions/internal-application-interfaces.md) — Enables deep integration with the player's internal state for building custom extensions. ([source](https://spicetify.app/docs/development/api-wrapper))
- [Desktop Client Management](https://awesome-repositories.com/f/development-tools-productivity/desktop-client-management.md) — Removes all patches and customizations to restore the application to its original state. ([source](https://spicetify.app/docs/uninstallation))
- [Extension Compilers](https://awesome-repositories.com/f/development-tools-productivity/extension-compilers.md) — Transforms source code into functional extensions for the desktop client using high-performance build tools. ([source](https://spicetify.app/docs/development/spicetify-creator/the-basics))
- [Firefox Add-on Management](https://awesome-repositories.com/f/development-tools-productivity/firefox-add-on-management.md) — Provides a centralized dashboard to toggle, update, or remove installed extensions and themes. ([source](https://spicetify.app/docs/customization/marketplace))
- [Client Update Utilities](https://awesome-repositories.com/f/development-tools-productivity/client-update-utilities.md) — Ensures custom extensions remain functional and compatible after the host application receives updates. ([source](https://spicetify.app/docs/getting-started))
- [Component Inspection Tools](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/component-inspection-tools.md) — Provides tools to examine the internal state and visual structure of interface components. ([source](https://spicetify.app/docs/development/react-devtools))
- [Debugging Tools](https://awesome-repositories.com/f/development-tools-productivity/debugging-tools.md) — Unlocks built-in debugging interfaces to facilitate inspection of themes and extensions. ([source](https://spicetify.app/docs/cli/commands))
- [Global Keyboard Shortcuts](https://awesome-repositories.com/f/development-tools-productivity/global-keyboard-shortcuts.md) — Binds custom actions to specific key combinations so that extensions respond to user input within the desktop client. ([source](https://spicetify.app/docs/development/api-wrapper/methods/keyboard))
- [Media Metadata Retrievers](https://awesome-repositories.com/f/development-tools-productivity/integration-metadata-retrievers/media-metadata-retrievers.md) — Fetches detailed media information like artist and album names for context-aware interface modifications. ([source](https://spicetify.app/docs/development/api-wrapper/types/metadata))
- [Panel Visibility Controllers](https://awesome-repositories.com/f/development-tools-productivity/remote-panel-controllers/panel-visibility-controllers.md) — Manages the visibility and lifecycle of interface panels through unique identifiers. ([source](https://spicetify.app/docs/development/api-wrapper/methods/panel))

### Operating Systems & Systems Programming

- [Desktop Clients](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-clients.md) — Modifies the desktop client to enable custom visual themes, interface extensions, and advanced playback controls.

### Software Engineering & Architecture

- [Binary Patching Utilities](https://awesome-repositories.com/f/software-engineering-architecture/binary-patching-utilities.md) — Modifies the host application executable at runtime to inject custom hooks and enable external script execution.
- [Extensibility](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility.md) — Provides a framework for injecting custom extensions to add features and manipulate interface elements. ([source](https://cdn.jsdelivr.net/gh/spicetify/cli@main/README.md))
- [Event-Driven Plugin Registries](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/hook-event-orchestration/event-driven-plugin-registries.md) — Registers custom logic to respond to internal application events like playback changes and user interactions.
- [Backup Utilities](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-scopes/client/backup-utilities.md) — Creates copies of original client files to ensure a clean state can be restored after modifications. ([source](https://spicetify.app/docs/cli/commands))
- [Client](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-scopes/client.md) — Creates snapshots of application files to enable restoration after modifications. ([source](https://spicetify.app/docs/customization/config-file))
- [Functional Extensions](https://awesome-repositories.com/f/software-engineering-architecture/token-standards/functional-extensions.md) — Executes custom code alongside the desktop client to integrate external services and add features. ([source](https://spicetify.app/docs/customization))

### User Interface & Experience

- [Desktop Environment Customizers](https://awesome-repositories.com/f/user-interface-experience/desktop-environment-customizers.md) — Modifies the appearance and functionality of desktop applications by injecting custom themes and extensions.
- [Playback Controllers](https://awesome-repositories.com/f/user-interface-experience/playback-controllers.md) — Interacts with the internal media player to programmatically manage playback states and audio settings. ([source](https://spicetify.app/docs/development/api-wrapper/methods/platform))
- [Media Player Controls](https://awesome-repositories.com/f/user-interface-experience/ui-components/media-player-controls.md) — Provides programmatic control over media playback, queue management, and track metadata within the desktop client.
- [Visual Theme Engines](https://awesome-repositories.com/f/user-interface-experience/visual-theme-engines.md) — Overrides native application styles by injecting custom stylesheets to redefine the visual appearance of interface components.
- [Playback Behavior Enhancements](https://awesome-repositories.com/f/user-interface-experience/playback-controllers/playback-behavior-enhancements.md) — Modifies audio playback behavior by enabling features like true random shuffling and segment looping. ([source](https://spicetify.app/docs/customization/extensions))
- [Playback Control Injections](https://awesome-repositories.com/f/user-interface-experience/context-menu-customizations/playback-control-injections.md) — Injects interactive buttons into the playback interface to trigger custom actions or toggle player states. ([source](https://spicetify.app/docs/development/api-wrapper/classes/playbar))
- [Custom Theme Injectors](https://awesome-repositories.com/f/user-interface-experience/custom-theme-definitions/custom-theme-injectors.md) — Defines visual styles by injecting custom stylesheets and assets to alter the interface appearance. ([source](https://spicetify.app/docs/development))
- [Declarative Component Libraries](https://awesome-repositories.com/f/user-interface-experience/declarative-component-libraries.md) — Provides a declarative library for constructing interactive application components and managing state. ([source](https://spicetify.app/docs/development/api-wrapper/modules))
- [Declarative UI Libraries](https://awesome-repositories.com/f/user-interface-experience/declarative-ui-libraries.md) — Provides a declarative library of modular building blocks for constructing custom interface panels.
- [Interface Style Sheet Customizers](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/visual-styling-presentation/interface-appearance-customization/interface-style-sheet-customizers.md) — Provides a mechanism to inject custom CSS stylesheets into the desktop client for visual personalization. ([source](https://spicetify.app/docs/development/spicetify-creator/the-basics))
- [Custom Component Extensions](https://awesome-repositories.com/f/user-interface-experience/custom-component-extensions.md) — Extends the user interface with custom visual components, pop-ups, and navigation tools. ([source](https://spicetify.app/docs/customization/extensions))
- [Custom UI Components](https://awesome-repositories.com/f/user-interface-experience/custom-ui-components.md) — Facilitates the creation of modular, interactive UI panels that integrate with the host application. ([source](https://spicetify.app/docs/development/api-wrapper/types/panel/panel-props))
- [Track Interaction Widgets](https://awesome-repositories.com/f/user-interface-experience/interactive-widgets/track-interaction-widgets.md) — Places custom widgets next to track information to perform stateful actions on the currently playing media. ([source](https://spicetify.app/docs/development/api-wrapper/classes/playbar))
- [Theme Management](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/content-styling/theme-management.md) — Manages the installation and removal of visual themes through local configuration directories. ([source](https://spicetify.app/docs/customization/themes))
- [Visual Themes](https://awesome-repositories.com/f/user-interface-experience/visual-themes.md) — Applies custom color schemes and style rules to override default interface elements. ([source](https://spicetify.app/docs/customization/themes))
- [Header Button Injections](https://awesome-repositories.com/f/user-interface-experience/action-toolbars/toolbar-button-customizations/header-button-injections.md) — Injects interactive buttons into the application header area to provide quick access to global features. ([source](https://spicetify.app/docs/development/api-wrapper/classes/topbar))
- [Color Scheme Managers](https://awesome-repositories.com/f/user-interface-experience/color-scheme-managers.md) — Enables switching between predefined color variations within a theme to adjust the visual palette. ([source](https://spicetify.app/docs/customization/themes))
- [Component Registration Systems](https://awesome-repositories.com/f/user-interface-experience/component-registration-systems.md) — Provides a registration system to dynamically add and manage custom UI components within the application. ([source](https://spicetify.app/docs/development/api-wrapper/methods/panel))
- [Context Menu Customizations](https://awesome-repositories.com/f/user-interface-experience/context-menu-customizations.md) — Adds custom interactive options to the right-click menus of tracks, albums, and artists to trigger user-defined actions. ([source](https://spicetify.app/docs/development/api-wrapper/classes/context-menu))
- [Page Management Systems](https://awesome-repositories.com/f/user-interface-experience/page-management-systems.md) — Manages internal routing between custom views and native pages for multi-page workflows. ([source](https://spicetify.app/docs/development/custom-apps))
- [Sidebar Layouts](https://awesome-repositories.com/f/user-interface-experience/sidebar-layouts.md) — Assembles structured side panels using specialized layout components for custom content. ([source](https://spicetify.app/docs/development/api-wrapper/properties/react-components))
- [User Confirmation Dialogs](https://awesome-repositories.com/f/user-interface-experience/user-confirmation-dialogs.md) — Renders confirmation dialogs with custom titles and action handlers for user interactions. ([source](https://spicetify.app/docs/development/api-wrapper/types/react-component/confirm-dialog-props))
- [Client Navigation Controllers](https://awesome-repositories.com/f/user-interface-experience/client-navigation-controllers.md) — Spicetify controls the internal router to switch between views, push new pages onto the history stack, and manage the current location state. ([source](https://spicetify.app/docs/development/api-wrapper/methods/platform))
- [Custom Header Components](https://awesome-repositories.com/f/user-interface-experience/custom-header-components.md) — Enables the construction of interactive panel headers with custom navigation and action controls. ([source](https://spicetify.app/docs/development/api-wrapper/types/react-component/panel-header-props))
- [Declarative UI Components](https://awesome-repositories.com/f/user-interface-experience/declarative-ui-components.md) — Provides a declarative library for constructing interactive UI panels and sidebar components.
- [Interactive UI Elements](https://awesome-repositories.com/f/user-interface-experience/interactive-ui-elements.md) — Renders standard interactive controls like toggles and menus to maintain consistent user interaction patterns. ([source](https://spicetify.app/docs/development/api-wrapper/properties/react-components))
- [Modals](https://awesome-repositories.com/f/user-interface-experience/modals.md) — Renders interactive popup windows to present information or collect user input. ([source](https://spicetify.app/docs/development/api-wrapper/methods/popup-modal))
- [Notification Customization](https://awesome-repositories.com/f/user-interface-experience/notification-customization.md) — Triggers toast notifications with custom styling and configurable display duration. ([source](https://spicetify.app/docs/development/api-wrapper/functions/show-notification))
- [Class Merging](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/content-styling/styling-architectures/styling-systems/class-based-styling/css-class-based-styling/class-merging.md) — Manages and merges CSS class names dynamically to update interface appearance. ([source](https://spicetify.app/docs/development/api-wrapper/modules))

### Programming Languages & Runtimes

- [Injection Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/javascript-and-web-standard/injection-frameworks.md) — Loads and executes user-defined scripts within the host application process to manipulate internal state.

### System Administration & Monitoring

- [Playback Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/playback-monitoring.md) — Registers listeners to trigger custom logic upon playback state changes. ([source](https://spicetify.app/docs/development/api-wrapper/methods/player))

### Web Development

- [Custom Page Frameworks](https://awesome-repositories.com/f/web-development/custom-page-frameworks.md) — Integrates standalone custom pages into the application sidebar to extend native functionality. ([source](https://spicetify.app/docs/customization/custom-apps))

### Graphics & Multimedia

- [Audio Playback](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-playback.md) — Enables appending audio tracks to the active playback queue using unique identifiers. ([source](https://spicetify.app/docs/development/api-wrapper/functions/add-to-queue))

### Security & Cryptography

- [API Request Authentication](https://awesome-repositories.com/f/security-cryptography/identity-access-management/authentication-strategies/machine-and-protocol-identity/api-machine-authentication/api-request-authentication.md) — Automatically attaches session headers and cookies to outgoing network calls for authenticated communication. ([source](https://spicetify.app/docs/development/api-wrapper/methods/cosmos-async))
- [Local Configuration Files](https://awesome-repositories.com/f/security-cryptography/file-based-configuration/local-configuration-files.md) — Manages user preferences and assets through a structured directory of local configuration files.

### Data & Databases

- [Client-Side Data Persistence](https://awesome-repositories.com/f/data-databases/data-management/state-context-management/client-side-data-persistence.md) — Stores key-value pairs in the local environment to maintain user settings or application state across sessions. ([source](https://spicetify.app/docs/development/api-wrapper/methods/local-storage))
- [Operation Execution](https://awesome-repositories.com/f/data-databases/graphql-integrations/operation-execution.md) — Sends queries and mutations to remote services to retrieve or modify data structures. ([source](https://spicetify.app/docs/development/api-wrapper/methods/graphql))
- [Local Data Persistence](https://awesome-repositories.com/f/data-databases/local-data-persistence.md) — Stores and retrieves key-value pairs in local storage, namespaced by user account to maintain isolated settings. ([source](https://spicetify.app/docs/development/api-wrapper/methods/platform))
- [Server State Managers](https://awesome-repositories.com/f/data-databases/server-state-managers.md) — Synchronizes, caches, and updates data fetched from remote sources to ensure interface consistency with backend information. ([source](https://spicetify.app/docs/development/api-wrapper/modules))

### DevOps & Infrastructure

- [Application Settings Management](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/application-settings-management.md) — Updates and manages application settings, including lists of active extensions and custom apps. ([source](https://spicetify.app/docs/cli/commands))
