DustPlanner

Know what to dust before you dust it.

DustPlanner lives inside Hearthstone Deck Tracker. Pick a deck, see exactly which cards you are missing and how much dust that is, and get the least painful list of copies to disenchant to get there — without touching your decks, the meta staples or the cards the game refuses to craft.

Windows · needs Hearthstone Deck Tracker · free, MIT licensed · nothing else to install.

The Deck page: missing cards with their dust cost, the dust gap bar, and the disenchant plan proposing one golden copy

How it works

Three pieces, and none of them ever touches the game client. DustPlanner reads what Hearthstone Deck Tracker already knows and what the game writes on its own; you do the disenchanting, by hand, in the game.

  1. HDT exportsEvery time you leave the game's Collection screen, the plugin writes your collection, decks and rank to JSON files. Nothing else to press.
  2. The service computesMissing cards, craft costs, Standard legality, the cards the game will not craft, and a plan that reaches the dust you need with the least regret.
  3. You disenchant, by handIn the game, if you agree. Go back to the menu: the new export is picked up and your plan is ticked off automatically.

The panel

Opened from HDT's plugin menu (Plugins → DustPlanner → Open DustPlanner), or straight to the deck selected in HDT with What am I missing for the selected deck?. English and Spanish.

Deck — the whole answer on one page

Pick one of your HDT decks from the list or paste a deck code. You get the missing cards with their cost, the dust gap (what you have, what the plan gives, what is still missing), the cards the game will not craft and why, cards that come bundled with another one, and what leaves Standard at the next rotation.

Below it, the plan: each copy with its dust and a why — "golden copy not used in any deck", "Wild-only card and you play Standard" — plus alternatives (without the most painful pick, regular copies only) and the list of what was deliberately not proposed. Save the plan and it is matched against what you actually dust.

The disenchant plan for a deck: one golden copy, why it was picked, and the alternatives

Home — where you stand

Dust and how fresh the export is, your rank, today's and the week's record, the plans waiting for you to disenchant, and a set-up checklist that tells you what is still missing (meta decks, an export, card data).

The Home page with dust, rank, records and the set-up checklist

History — plans that close themselves

A saved plan is proposed. When you disenchant one of its copies and leave the Collection, the next export is imported on its own, the change is detected and matched: the plan becomes partial, then confirmed. Every detected change keeps the dust estimate and the plan it belonged to.

The History page: a confirmed plan and the detected disenchant that closed it

Games — from the game's own logs

Win rate overall and per class for today, the last 7 or 30 days or all time, by mode and format, with the recent games: opponent, result, who went first, turns. Read from the Power.log files Hearthstone writes by itself — the same ones HDT reads.

The Games page with win rate per class and recent games

Settings — your rules, in buttons

What you play (format, classes, Wild), whether golden copies are kept, the guards (no plan without saved decks, no plan on a stale export). Paste a few competitive deck codes as meta decks: cards that appear in many of them are protected — nothing is scraped from the web. And the escape hatch: when the game shows a copy as Uncraftable but the plan still proposes it, block it here and it is never proposed again.

The Settings page: what you play, meta decks, cards the game refuses, card data

And for streamers: an OBS overlay

The same service serves a transparent 1920×1080 page for an OBS Browser Source: rank, session record, today's record, dust, last game — updated within seconds of a game ending. Options for size, side and a light theme.

The OBS overlay bar: rank, session, today, dust

Install

  1. DownloadThe latest DustPlanner-v….zip from GitHub Releases. About 50 MB: the service is bundled, so there is no runtime to install.
  2. CopyClose HDT. Unzip and copy the DustPlanner folder into %AppData%\HearthstoneDeckTracker\Plugins\.
  3. EnableStart HDT → Options → Tracker → Plugins → tick DustPlanner.
  4. Export onceWith the game running, open My Collection and go back to the menu. Visit Play once so your decks are known. Then Plugins → DustPlanner → Open DustPlanner.

Requires Windows and Hearthstone Deck Tracker. The service listens on 127.0.0.1:8765 only (the next free port if that one is taken). Your data stays in %LocalAppData%\DustPlanner. The executable is not code-signed: Windows may ask once whether to run it.

What it never does

DustPlanner never disenchants or crafts anything. It never clicks, types, injects or reads the game's memory on its own. It only consumes what Hearthstone Deck Tracker already holds through HDT's public plugin API, and the log files the game writes by itself. The plan is a recommendation; every disenchant is yours, by hand, in the game.

Conservative by default. Any game fact the tool cannot verify keeps a card out of the plan and says why: reward copies the game marks as Uncraftable, cards in sets the rule data does not know, premium slots whose dust value is unconfirmed. The plan always opens with the one thing no HDT API can tell it: open your pending packs first.

The full policy is in the repository's SECURITY.md. The code is MIT licensed and open: you can read exactly what it reads.

Questions

Why does the plan not propose the golden card I was going to dust?
Three usual reasons, all shown next to the card: it is used in one of your saved decks; the game marks that copy as Uncraftable (event and login rewards, Core, free cards, the golden you got from an adventure) — those cannot be disenchanted at all; or its dust value is not confirmed (signature and diamond copies). If the game does let you disenchant a copy the tool refuses, Settings → Allow overrides it.
The plan proposes a card the game says is Uncraftable.
The rule comes from the game's own card data, which has no formal "uncraftable" flag, so a gap is possible. Block the copy in Settings → Cards the game refuses: it is never proposed again, and an issue with the card name helps everyone else.
I disenchanted, and nothing happened.
HDT re-reads your collection only when you enter or leave the Collection screen. Go back to the main menu; the plugin exports and the service imports within seconds. Plugins → DustPlanner → Export now forces a write.
Where do the "meta decks" come from?
From you. Paste competitive deck codes in Settings → Meta decks, one per line. Cards that appear in many of them get protected. DustPlanner never scrapes deck sites.
Does it need the internet?
Once per game patch, to download the card data from HearthstoneJSON (about 10 MB, cached). Everything else is local. Nothing is uploaded anywhere.
Several accounts?
Each exported account has its own folder and database rows; the panel shows the most recently exported one and lets you pick another.
What about Battlegrounds, Arena, Mercenaries?
Constructed only. Games from other modes are recorded in the history with their mode, nothing more.

For developers

CLI

dustplanner need, plan, sync, history, games, collection block — everything the panel does, with --json for scripts.

JSON API

The panel is a client of http://127.0.0.1:8765/api/*: overview, decks, need, plan, sync, history, games, prefs, meta, card overrides. Same payloads as the CLI.

MCP server

A read-only Model Context Protocol server over stdio, so Claude Desktop or Claude Code can ask "what am I missing for this deck and what would you disenchant?" from your own data.

Source, docs and issues on GitHub.