Quickstart: VinylKit CLI

Installation

From Source (For Developers)

Ensure you have uv installed. From the project root, run:

# Bash / PowerShell
uv tool install . --force

From Git (For Users)

Users can install VinylKit directly from the repository:

# Bash / PowerShell
uv tool install git+https://github.com/alaninspace/vinyl-kit.git

Updating VinylKit

If you pull new changes or modify the code yourself, simply run the install command again with the --force and --no-cache flags. This ensures uv rebuilds the tool from your latest local source without affecting your saved settings.

# Bash / PowerShell
uv tool install . --force --no-cache

Setup & Configuration

VinylKit needs to know where your music library is, where you put your new recordings, and how to talk to Discogs.

1. Set your Library Location

This is the final destination for your tagged and organized music.

Bash:

vinylkit config set library_root ~/Music/VinylLibrary

PowerShell:

vinylkit config set library_root "D:\Music\VinylLibrary"

2. Set your Recordings Location (The "Inbox")

This is where you drop your fresh vinyl recordings (e.g. 01.flac, 02.flac) before tagging them. Setting this allows you to run commands without typing the path every time.

Bash:

vinylkit config set recordings_root ~/Recordings/Vinyl

PowerShell:

vinylkit config set recordings_root "C:\Temp\RecordedVinyl"

3. Authenticate with Discogs

See the Authentication Guide for detailed steps.

Quick Start (Personal Access Token):

# Bash / PowerShell
vinylkit config set discogs_token "YOUR_TOKEN"

[!TIP]
For a full list of all settings (backups, custom filenames, tagging modes), see the Configuration Guide.

4. Advanced Artwork Collection

By default, VinylKit only downloads the primary cover. You can enable full collection:

# Bash / PowerShell
# Download all images from the release
vinylkit config set collect_all_artwork true

# Customize the artwork subdirectory name
vinylkit config set artwork_subdir "Scans"

5. Folder Structure & Naming

You can control exactly how your library is organized and how deep the folders are by changing the naming_pattern.

Available Placeholders: {artist}, {album}, {year}, {id}, {track_number}, {title}, {label}, {catalogue_number}, {side}, {genre}, {style}, {country}, and more. See the Configuration Guide — naming_pattern for the full list.

Examples:

  • Standard Chronological (Default): Artist / Year - Album / Track - Title
# Bash / PowerShell
vinylkit config set naming_pattern "{artist}/{year} - {album}/{track_number} - {title}"
  • Deep Parentheses: Artist / Album (Year) / Track - Title
# Bash / PowerShell
vinylkit config set naming_pattern "{artist}/{album} ({year})/{track_number} - {title}"
  • Flat Album Folders: Year - Artist - Album / Track - Title (One folder per album)
# Bash / PowerShell
vinylkit config set naming_pattern "{year} - {artist} - {album}/{track_number} - {title}"
  • Completely Flat: Everything in one folder
# Bash / PowerShell
vinylkit config set naming_pattern "{year} - {id} - {artist} - {album} - {track_number} - {title}"

Example Scenarios (The Easy Way)

If you have configured your recordings_root, your daily workflow becomes much simpler.

Scenario: Tagging and Moving a New Recording

You just finished recording an album and the files are in your recordings folder.

# Bash / PowerShell

# 1. Scan to see the files in your Recordings folder
vinylkit scan

# 2. Tag, Create release_info.txt, and Rename/Move to library in one go
# (Example: Jeff Mills - Kat Moda EP)
vinylkit tag --id 165

Scenario: Overriding the defaults

If you want to tag files in a specific folder instead of your default recordings folder:

Bash:

# Explicit path provided: --rename is NOT automatic in this workflow, must be added
# (Example: Krafty Kuts - Lost Plates E.P.)
vinylkit tag ~/Downloads/vinyl-rip --id 56903 --rename

PowerShell:

# Explicit path provided: --rename is NOT automatic in this workflow, must be added
# (Example: Krafty Kuts - Lost Plates E.P.)
vinylkit tag "C:\Some\Other\Folder" --id 56903 --rename

Scenario: Batch tagging multiple releases

Name your folders with the Discogs ID so VinylKit can pick it up automatically. Three formats are supported:

  • Bracket suffix: Album Name [12345]
  • Bare numeric: 12345
  • URL-style prefix (copy-paste from the Discogs URL): 12345-Artist-Album-Title

Then tag them all at once:

# Bash / PowerShell

# Tag, rename, and move to library
vinylkit tag --batch --auto-move

# Tag and rename in place (don't move to library)
vinylkit tag --batch --no-move

Available Commands

VinylKit provides the following commands:

  • scan — View audio files and their tagging status.
  • tag — Tag files using a Discogs Release ID or interactive search, with optional rename/move.
  • rename — Move already-tagged files into your library structure (dry-run by default).
  • migrate — Migrate an existing library to the new folder structure.
  • auth — Manage Discogs authentication (login, identity).
  • config — View and update persistent settings.
  • cache — List and clear cached Discogs API responses.
  • collection — Download your Discogs collection as CSV.

For full syntax, options, and search tips, see the User Guide — Command Reference.


Next Steps

  • User Guide — In-depth command reference, tagging details, and workflows.
  • Examples Guide — Real-world scenarios and command combinations.
  • Configuration Guide — Full list of all settings with defaults and examples.

Where is my config?

Your settings and keys are stored in a persistent location:

  • Windows: %LOCALAPPDATA%\vinylkit\vinylkit\config.toml
  • macOS: ~/Library/Application Support/vinylkit/config.toml
  • Linux: ~/.config/vinylkit/config.toml

Running uv tool install --force will not delete or reset these files.