Free & open source

Search music librarieswithout leaving the terminal.

Search your music library from the terminal. Fast. Local. Built for DJs and producers.

Runs locally — no cloud, no account
Search by artist, title, album, BPM, or key
Results cached in ~/.dubgrep/
Supports MP3, WAV, and FLAC
dubgrep
Runs
100% local
Cache
SQLite-backed
Output
Text or JSON
Scroll
Features

Built for the way you work

Metadata search, BPM filtering, key detection, and a fast local cache — all from the command line.

Metadata + Filename Search

Search title, artist, album, comment, or filename. Fast, case-insensitive, zero config.

BPM & Variable Tempo

Range filters, near-BPM with tolerance, and segment-aware detection for tracks with tempo changes.

Key Detection

Camelot & OpenKey with confidence scores. Use `--key 8A --harmonic` for compatible matches.

Lightning Cache

SQLite cache by content hash. `dubgrep cache status` for runtime info and library stats.

Formats

MP3, WAV, FLAC (and more coming). Full metadata + audio analysis.

Terminal First

Plain text, rich JSON, table output. Pipe-friendly. `--max-workers` for large libraries.

Roadmap

Planned next
Pre-built binaries & Homebrew
Advanced energy / onset density tagging
Rekordbox / Serato export helpers
.dubignore support
Documentation

Start in seconds

Install the CLI, point it at your library, and start searching. No config needed.

Installation

Install with a single command:

bash
go install github.com/forrest321/dubgrep@latest

Pre-built binaries & Homebrew coming soon.

Quick Start

Cache your library with dubgrep index, then check stats and recommended workers with dubgrep cache status.

bash
dubgrep index -r ~/Music          # cache your library
bash
dubgrep cache status                  # view stats & recommended workers

Real DJ workflows

Harmonic crate search

Find all harmonically compatible tracks in a set folder.

bash
dubgrep "" ~/Sets/current --key 8A --harmonic

BPM + genre tagging

Search for tracks by genre keyword within a tempo range.

bash
dubgrep "garage" ~/Music --bpm 138-142 --field title,artist,comment

JSON for scripts / Rekordbox export

Pipe structured output to a file or another tool.

bash
dubgrep "techno" ~/Library --json > set.json

Near BPM

Search around a tempo with an adjustable range.

bash
dubgrep "dubstep" ~/Music --bpm-near 140 --tol 2

Pre-scan library

Cache metadata and BPM ahead of time so searches are instant.

bash
dubgrep index -r ~/Music

Key Flags

FlagDescription
--key 8A,9BCamelot key filter (supports --harmonic)
--bpm <range>BPM range filter, e.g. `128-132`
--bpm-near <bpm> --tol <n>Near-tempo search with adjustable tolerance
--field <list>Limit search fields: `title`, `artist`, `key`, etc.
--max-workers 8Control indexing parallelism (default = GOMAXPROCS)
-r, --recursiveScan subdirectories
--jsonStructured output
cache statusShow cache stats + hardware recommendations
Install

Get dubgrep

Install from source with a single command. Pre-built binaries are on the way — follow GitHub for updates.

Install from source

Fastest way to get started

go install github.com/forrest321/dubgrep@latest