Observed since 20 Oct, 21:48 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Token-efficient Discogs CLI for AI agents
A token-efficient Discogs CLI for AI agents that minimizes API calls.
agent-discogs search "Nine Inch Nails"
agent-discogs get release @r352665 # ref from search output
agent-discogs tracks @r352665 # tracklist shortcut
agent-discogs price @r352665 # price guide shortcut
pipx install agent-discogs
Or with uv:
uv tool install agent-discogs
Or with pip:
pip install agent-discogs
pipx, uv and pip need Python 3.10 or later.
brew install jmfontaine/tap/agent-discogs
The formula comes from the maintainer's Homebrew tap. It installs the PyPI release into a virtualenv on Homebrew's own Python, whatever Python you have.
To tap once and then use the short name:
brew tap jmfontaine/tap
brew install agent-discogs
Or in a Brewfile:
tap "jmfontaine/tap"
brew "agent-discogs"
A prebuilt bottle exists only for Apple Silicon Macs on macOS 26 or later. Everywhere else (Intel Macs, earlier macOS, Linux) Homebrew builds from source, which needs Rust (for pydantic-core; Homebrew installs it as a build dependency) and takes a few minutes.
brew upgrade installs a new release once the tap has picked it up from PyPI.
Install the skill so your AI coding agent can use agent-discogs automatically:
npx skills add jmfontaine/agent-discogs
The installed skill is a thin pointer; the usage guides themselves ship inside the package and are served by agent-discogs skills get core, plus collection, marketplace and pressings for the tasks that need them, so agents always read instructions that match the version they run (see skills).
Set your personal access token from your Discogs developer settings:
export DISCOGS_TOKEN="your-token-here"
Credentials are required for price lookups, and Discogs' API documentation requires them for search too: unauthenticated searches currently get answers, but Discogs may refuse one with auth_required. Without any credentials the limit is 25 requests/minute; with a token, every command works at 60 requests/minute.
price needs one thing more than a token or OAuth credentials: Discogs only returns price suggestions to accounts that have filled out their seller settings. Until you do, the endpoint answers 404 and price tells you so; every other command is unaffected.
The CLI sends whichever credentials discogs-sdk finds in the environment, in this order:
DISCOGS_TOKEN;DISCOGS_CONSUMER_KEY, DISCOGS_CONSUMER_SECRET, DISCOGS_ACCESS_TOKEN and DISCOGS_ACCESS_TOKEN_SECRET, all four);DISCOGS_CONSUMER_KEY and DISCOGS_CONSUMER_SECRET);A consumer key and secret get 60 requests/minute but identify an app, not a user, so price needs a token or OAuth, and so do --owned, --wanted, --in-wantlist, get owned, get collection, get lists and get wantlist, which read your own collection, lists and wantlist. get inventory alone works without credentials: Discogs shows anyone a seller's For Sale listings. agent-discogs status reports the mode in use.
[!TIP] Use a
.envfile with direnv to avoid exporting tokens manually in every shell.
agent-discogs search release "The Downward Spiral" --year 1994
agent-discogs search artist "Nine Inch Nails" --limit 10
agent-discogs get artist @a3857
agent-discogs get versions @m3719 --country US --format Vinyl
agent-discogs get stats @r847868 @r352665 --currency EUR
agent-discogs get owned @r352665 @r847868
agent-discogs search release --artist "Nine Inch Nails" --year 1994 --limit 20 --owned
agent-discogs get collection --style Techno --format 12\" --max-requests 20
agent-discogs get wantlist --for-sale --max-price 20 --currency EUR --max-requests 60
agent-discogs get inventory <seller> --in-wantlist --condition VG+ --max-requests 60
agent-discogs get lists
agent-discogs get list 123
agent-discogs get release @r352665 --json
agent-discogs status
agent-discogs cache clear
agent-discogs skills get core
agent-discogs skills get pressings
Each command, its own flags and its text output are described in Commands. The global flags (--cached, --fresh, --debug, --color), the output modes (--json, --full) and the --max-requests cap have their own pages:
--json and --full: JSON output;--cached, --fresh and --max-requests: Caching and request budget;--debug: Debugging;--color: Color; the default, auto, colors a terminal only, never a pipe.For Tab completion in an interactive bash, zsh or fish shell, add eval "$(agent-discogs completion zsh)" (or bash) to the shell's startup file; see Shell completion for fish.
Output includes typed refs that encode the entity type and Discogs ID. Copy them into subsequent commands.
| Prefix | Type | Example |
|---|---|---|
@r | Release | @r352665 |
@a | Artist | @a3857 |
@m | Master | @m3719 |
@l | Label | @l647 |
Raw numeric IDs also work: agent-discogs get release 352665.
Smart resolution: get versions @r352665 auto-resolves the release to its master.
search (filters, sorting, client-side scans, --added-since, --owned, --wanted), get and its nouns (get stats, get owned, get collection and its filters, get wantlist and its --for-sale scan, get inventory and its grade, origin, price and --in-wantlist filters, get lists and get list), tracks / price, status, cache, skills, shell completion.--full, the pagination envelope, owned and wanted rows, collection rows, get stats and its market object, wantlist rows and their market, inventory listings and their wantlist object, lists and their items, non-ASCII and control-character escaping.--cached / --fresh, cache errors, rate limits, what each command costs, --max-requests.--debug panel, output encoding, how Discogs text is neutralized, and --color.agent-discogs is licensed under the Apache License 2.0.
pypistats · 31 observations shown. Missing days are unknown. Source category: overall: without mirrors.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-20 – 2026-10-20 | 11 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-19 – 2026-10-19 | 2 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-18 – 2026-10-18 | 19 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-17 – 2026-10-17 | 91 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-16 – 2026-10-16 | 5 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-15 – 2026-10-15 | 14 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-14 – 2026-10-14 | 98 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-13 – 2026-10-13 | 1 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-12 – 2026-10-12 | 6 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-11 – 2026-10-11 | 3 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-10 – 2026-10-10 | 3 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-09 – 2026-10-09 | 8 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-08 – 2026-10-08 | 9 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-07 – 2026-10-07 | 2 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-06 – 2026-10-06 | 2 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-05 – 2026-10-05 | 4 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-04 – 2026-10-04 | 4 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-02 – 2026-10-02 | 1 | 2026-10-21T10:27:29.1689628Z |
| 2026-10-01 – 2026-10-01 | 3 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-30 – 2026-09-30 | 1 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-29 – 2026-09-29 | 4 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-27 – 2026-09-27 | 1 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-26 – 2026-09-26 | 4 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-24 – 2026-09-24 | 5 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-23 – 2026-09-23 | 1 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-22 – 2026-09-22 | 3 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-21 – 2026-09-21 | 2 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-20 – 2026-09-20 | 8 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-19 – 2026-09-19 | 13 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-18 – 2026-09-18 | 96 | 2026-10-21T10:27:29.1689628Z |
| 2026-09-17 – 2026-09-17 | 87 | 2026-10-21T10:27:29.1689628Z |
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.4.0 | 17 Oct 2026 | 3 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:48 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:2829c83f2bd2d54df987caea4e2acaf232d5332099a3faff60e5fe5918150fbe