macOS 15+ · Apple silicon · free

Hold up a record. That's it.

VinylCat watches your Mac's camera. Hold a sleeve or label still for a second and it takes one photo, reads it, finds the release on Discogs, says the artist, title, year and format out loud, and files it in your library. Hands stay on the records.

Download for macOS Read the install steps first v0.2.3 · zip · six steps the first time, then it updates itself
VinylCat's Scan tab after a match: the banner reads MATCHED 0.94, The Jam — Going Underground, 1980, 7 inch, Polydor POSP 113, UK.
The Scan tab, a second after a match. Green means saved and spoken. The keys along the bottom are the ones that work right now.
The loop

Six steps, about two seconds

Only one step costs money and only one talks to Discogs. A clean barcode skips the paid step entirely. The long version, with the exact prompts →

1

Camera watch

Waits for the record to be held still and sharp for about a second, then takes exactly one still. Never fires twice on the same record. Built-in camera or an iPhone over Continuity Camera. SPACE forces a shot.

Free · on device
2

Local read

Apple Vision on the Mac: barcodes, text in three orientations, then a zoom pass that magnifies the small print. A sieve picks the tokens that look like catalogue numbers, "POSP 113", "FAC 73".

Free · 0.65 s
3

Vision model

No clean barcode? The photo and the OCR hints go to Claude, OpenAI or Google, forced into thirteen fixed fields. Your own key. No key means OCR-only: fine on labels, worse on artwork covers.

4

Discogs search

Up to six queries, strongest key first: catalogue number, then barcode, then label and title, then artist and title. Stops the moment a precise key lands.

Discogs API · your token
5

Rank and decide

Every hit scored 0 to 1 on catalogue number, barcode, label, title, format and year. 0.85 and up is a match. Between 0.60 and 0.85 it asks you. Below that, not found.

Free · instant
6

Outcome

Saved and spoken. Or "three matches, say one, two or three". Or "show me the label". Or already catalogued. Or not found, parked with its evidence in the review queue. Nothing is ever lost.

Spoken · chime · saved
Outcomes

Five colours, no reading required

Every scan ends in one of five states. Each has its own colour, chime and spoken line, so you can keep your eyes on the shelf.

Matched
saved · spoken

Confident match. Artist, title, year and format read out. In the library, and in your Discogs Collection if sync is on.

N matches
say one, two, three

Several pressings within reach of each other. Pick by voice or key, flip to the B-side to settle it, or park it.

Show me the label
no confident match from the cover

The sleeve was not enough. Slide the record out and hold side A up. The label usually carries the catalogue number.

Already catalogued
skipped

You have this one. RETURN keeps a second copy on purpose. Otherwise show the next record.

Not found
review queue · photo kept

Nothing on Discogs scored well enough. The photo, the model's reading and every candidate wait in Review.

What's in the box

Built for a box of singles, not a demo

Nothing else does the hands-free part. See how it compares with the Discogs app, CLZ, Record Scanner, VinylAI and VinylBox →

Voice

Say it, don't click it

Capture, flip, back cover, gatefold, disc two, skip, done, undo, review, again, one to nine, add anyway, wrong record, pause. On-device speech recognition, nothing leaves the Mac. Every command has a key too.

Spoken

It reads the result back

Artist, title, year, format. A different chime for each outcome. You never have to look at the screen mid-stack.

Model

Three readers, your pick

Claude, GPT-5.6 Luna or Gemini 3.8 Flash, switched in Settings. Claude has three rungs: Haiku reads the catalogue number right first time on 94% of photos for about 50¢ a thousand records, Opus on 97% for $20. If you have the ant CLI signed in, it uses a short-lived token and stores no key at all.

Format

7" · 12" · LP sessions

Set the format once, or say "forty-fives", "twelve inch", "albums". It filters Discogs and shapes the prompts.

Library

Search, value, export

Every record with its photo, Discogs release and a value in your Discogs currency. CSV export. Type one in by hand with "+ ADD RECORD".

Import

A folder of photos, no webcam

Drop a folder of label or sleeve photos on the Library and every one goes through the same pipeline. Matched, parked, duplicate or error, one line per photo.

Review

Nothing is lost

Not found, ambiguous and wrong-match records queue up with the OCR lines, the model's reading and every ranked candidate. Re-search, pick, or save as a manual entry.

Verdicts

Thumbs up, thumbs down

Wrong record? One word or one key. It leaves the counts and the Discogs Collection but the evidence stays, so the matcher can be tuned from real mistakes.

Discogs

Two-way sync, off by default

Switch it on and matches go to your Collection as they are saved. Pull brings the Collection down as records to photograph later. It never deletes anything on Discogs.

Report

One click when it gets it wrong

REPORT A PROBLEM in Settings, or REPORT on any record, sends the note with the last log lines and that scan's evidence straight to the issue tracker. Preview it first; API keys are masked. No account needed.

Updates

It installs its own

Every build is published by CI and the app checks every four hours, then swaps itself between records — never mid-scan. A second or two, and your catalogue, photos, keys and camera permissions all carry over. No Open Anyway after the first install. The amber UPDATE chip only appears when one is waiting on you.

Local

Your data on your Mac

SQLite and JPEGs in your own Application Support folder. Keys in a file only you can read. No account, no server. The one thing it sends home is an anonymous launch count — a switch in Settings turns that off.

Voice and keys

The words that work

The bottom bar always shows exactly which keys apply right now, with the spoken word beside each while VOICE is on. Numbers four and seven need "number" in front, because "four" sounds like "for" and "seven" like "seven inch".

SayOr pressDoes
captureSPACEforce a shot now
flip · B-sideFphotograph the other side of the open record
back cover · gatefold · disc two · add photoPadd that photo to the last record
one … nine1–9pick from the candidate list
noneNnone of those
undoUremove the last photo, then the record
wrong recordWthumbs-down the last match
skip · doneS · Dskip the shot being asked for · close the record
review · laterRpark it for the Review tab
add anywayRETURNkeep a second copy of a duplicate
forty-fives · twelve inch · albums—switch the session format
pause · resume—stop or start auto-capture
Measured, not promised

How well it reads

The app ships with its own evaluation: the real photos in the library, scored against each record's known catalogue number. Every reader below was run over the same 100 records on 25 October 2026.

97%
Best reader · right first time
Claude Opus 5.5. 98% counting the secondary numbers the Discogs search also tries.
94%
Cheapest rung · right first time
Claude Haiku 5.5, three points behind Opus at a thirty-eighth of the cost. Three photos in a hundred.
$0.0005
Haiku cost per photo
About 50¢ per thousand records. Opus is $20. Nothing at all when the barcode reads cleanly.
49%
OCR alone · right first time
The free on-device pass gets it somewhere in the candidates 91% of the time, but first only half. That is why the model exists.
ReaderRight first timeCounting other numbers$ per photoSeconds
Claude Opus 5.5 · default97%98%0.02004.3
Claude Haiku 5.594%97%0.000522.7
Claude Sonnet 5.5not measured—≈0.010—
GPT-5.6 Luna92%94%0.000843.9
Apple Vision, on device49%91% in its candidatesfree0.65
Honest about the sample: those first 100 records are easier than the rest of the box — local OCR scores 91% on them against 85% over all 347. Haiku across the whole library is 85% first time, 92% counting the other numbers. A three-point gap on a hundred photos is three photos, so the rungs are closer than the table makes them look; the spread in price is not. Gemini 3.8 Flash has not been re-run since September. Still hard: album numbers printed on singles, RCA and Capitol LP references, worn print, and the odd label with nothing legible on it. Those go to Review.
What you need

Three things, two of them free

  • A Mac on macOS 15 or laterApple silicon only for now. Built-in camera, or an iPhone over Continuity Camera for a better lens.
  • A Discogs personal tokenFree, from discogs.com/settings/developers. Without one lookups still work at 25 a minute instead of 60, but nothing can go to your Collection.
  • A Claude, OpenAI or Google key, optionalFrom about a twentieth of a cent per record on Claude Haiku, so the account needs billing on — Claude Max and Team plans include monthly API credits that may already cover it. Without a key the app runs OCR-only: good on labels, poor on artwork.
  • Camera, microphone and speech permissionsmacOS asks once, in the setup wizard. Voice needs Dictation switched on.
Honest limits

Things to know before you download

  • Not notarised by ApplemacOS blocks the first launch with a dialog that only says Done. It takes six steps in System Settings, once — and once only: every update after that installs silently. They are written out here.
  • Version 0.2.3It has been used on one desk, on one collection. Expect rough edges, and the review queue to earn its keep on worn labels. REPORT A PROBLEM in Settings files one straight from the app.
  • Artwork covers are the weak spotLabels carry catalogue numbers; picture sleeves often don't. When the cover isn't enough it asks for the label.
  • Discogs is the source of truthIf a pressing isn't on Discogs, VinylCat can't match it. Save it as a manual entry instead.
Download

Free. Your keys, your Mac.

VinylCat app icon: a black record with a burnt-orange label and two whiskers a side

VinylCat 0.2.3

macOS 15 Sequoia or later · Apple silicon · zip
Unzip, drag to Applications · setup wizard on first run · about five minutes
Read this before you double-click

macOS will refuse to open VinylCat the first time. It is signed, but with the project's own certificate rather than an Apple Developer ID, and it is not notarised — so Gatekeeper shows "Apple could not verify VinylCat is free of malware" with only a Done button. Right-click → Open no longer works on macOS 15. The way in is System Settings → Privacy & Security → scroll to the bottom → Open Anyway. Six steps, once, written out here. Only the first install: updates the app makes itself never go near Gatekeeper.

☕ Buy me a coffee

Free, and it runs on your own keys

There is no licence, no subscription, and nothing phoning home beyond the launch counter above. If it saves you an afternoon with a box of singles, buy the developer a coffee. The app will ask politely after 25 records and get ruder from there.

ko-fi.com/woody438