hoard v0.4.0
Important
Your database migrates on first launch, v33 → v36. It is backed up first,
beside itself as hoard.db.bak-v33-<date>. v36 rebuilds the cards table so
card characteristics are stored rather than recomputed from raw JSON on every
read: expect one slower launch and a larger file, and faster lists, sorts and
filters from then on. --json documents move to schema 1.2.0, which adds
paid to holdings rows.
Record what you paid
The add flow asks, per copy, and the URL form takes it on the command line:
hoard add https://scryfall.com/card/uma/7/ulamog-the-infinite-gyre --paid 12.50Ebon Ante
--format aaa --era builds the Alpha-through-Alliances ante pool played as
Ebon Ante:
thirteen sets, and the five Apocalypse painlands.
hoard compendium --format aaa --era ebon-ante.dbA compendium is priced as it is built
The build records the day's prices as it goes and tells you so when it finishes. Tokens, emblems
and art cards are never seeded now.
Round-trip a ManaBox collection
hoard export --format manabox
hoard export --binder Binder --format manabox -o manabox.csvPurchase price, condition and language survive going out and coming back in.
One fold to know about: ManaBox's excellent lands on near_mint on the way
in, because hoard carries five grades where ManaBox writes six.
In the browser
- One penny filter. Movers, market and dips share a single penny filter
rather than each keeping its own, and its line starts at $1.00 rather than
$0.50. - Cost basis in the movers window, alongside the 7, 30 and 90 day lookbacks.
- Dips and momentum load at startup with the rest of the price data, so
opening the view no longer pauses to compute it. - Comps and rendered art are kept for the session, so coming back to a card
does not fetch or redraw it again.
Faster
- Card characteristics are stored rather than recomputed per row (schema v36),
and set codes are indexed (v35). This is most of the compendium build and
browse speedup, and the reason for the migration above. - Price trends read on their own connection, so a background price read no
longer queues behind whatever the browser is doing.
Docs
- Filtering — the
filter language in one table, the same query/takes in the browser and
hoard export --filtertakes in a script. - Scripting —
--json, and splicing documents through a pipe to sweep what one filter
cannot. - Recipes — a
wantlist built out of an excluded binder.
Also changed
hoard addreads the language out of a Scryfall URL, so a/ja/link adds
the Japanese printing rather than the English one.- A card is completed as it is added, in the browser and in the add flow, rather
than being left thin until the next backfill.
Fixed
- Declining the confirm at the end of an add ends that card, not the session.
- Page up and page down step by the height of the pane you are looking at rather
than the other one's.
Install
curl -sSfL https://tools.aithirne.com/hoard/install.sh | sh -s -- -b "$HOME/.local/bin" v0.4.0Or go install github.com/spiffcs/hoard/cmd/hoard@v0.4.0 (Go 1.26+).
Tip
New here? hoard demo opens the browser on a sample collection without
touching a database of yours.
Verifying this release
$ cosign verify-blob \
--bundle checksums.txt.sigstore.json \
--certificate-identity-regexp "^https://github.com/spiffcs/hoard/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
checksums.txt
Verified OK