A local auction house and crafting ledger for WoW Forever (Classic beta).
It reads the prices that the Auctionator addon saves, keeps every scan as history, and tells you what is worth crafting with the recipes your characters actually know.
Everything runs on your own computer. Nothing is uploaded anywhere.
What it does
- Crafts: for each recipe, the cheapest way to get every reagent (buy it, or craft it from its own reagents), the profit, and the profit for each cast. Skill-up colors come from the game.
- Plan: "I have 3g 43s, what do I buy?" It answers with a batch size, a shopping list with quantities, the crafting steps, what comes from your bags, and the leftovers.
- History: the lowest price and the listed count of any item over all your scans.
- Sell-through: what sold between 2 scans, which shows real demand.
- Disenchanting: values a crafted item by its disenchant materials as well as its sale price, and learns the real yields from the disenchants you do.
Install
You need Auctionator in game. anvilbook's own
addon, AnvilbookExport, ships inside the app, which installs it for you at first run.
Windows: download anvilbook.exe from the
releases page and run it. Your browser
opens on the app.
Anything else, with uv:
uvx anvilbook
From source:
git clone https://github.com/traagel/anvilbook
cd anvilbook
uv run anvilbook
First run
-
Point anvilbook at your game. Paste the path to
Auctionator.lua, or press Look for my game folder and pick one of the results. It only searches your disk when you press that button, and it never sends anything anywhere.The file you want is the saved data, here:
World of Warcraft\_classic_beta_\WTF\Account\<your id>\SavedVariables\Auctionator.luaNot the one inside
Interface\AddOns\Auctionator\, which is Auctionator's own code. If the file is missing, Auctionator has not saved yet: log in, type/reload, and it appears. You can also point anvilbook at theSavedVariablesfolder itself. -
Press Install addon. That copies the small
AnvilbookExportaddon into the game, so you do not have to download or move anything. See below if you would rather install it yourself. -
Start WoW, or log out to the character screen if it was already running, so the game picks up the new addon. Open each profession window for a few seconds, then type
/reload. -
Scan the auction house with Auctionator, then type
/reloadagain.
Step 3 gives anvilbook your recipes and skill levels. Step 4 gives it prices. Repeat step 4
whenever you want fresh prices; the app imports the file within 5 seconds of each /reload.
Installing the addon by hand
The Install addon button does this for you. Do it yourself only if you prefer to:
- Download
AnvilbookExport.zipfrom the releases page. - Unzip it into the game's
Interface/AddOnsfolder, next to your other addons. You should end up with…/Interface/AddOns/AnvilbookExport/AnvilbookExport.toc. - Log out to the character screen, and make sure Anvilbook Export is ticked in the AddOns list.
Why /reload
WoW writes addon data to disk only when you log out, disconnect, or type /reload. No addon
can write files at another time, so /reload is how the data reaches anvilbook.
Settings
The Settings tab holds the auction cut, the cast time, filters, the disenchant table, and the file paths. A small config file also exists for values needed before the app starts:
~/.config/anvilbook/config.toml (Windows: %APPDATA%\anvilbook\config.toml)
savedvariables_path = "/path/to/WTF/Account/12345#1/SavedVariables/Auctionator.lua"
port = 8765
open_browser = true
Data lives in ~/.local/share/anvilbook/ (Windows: %APPDATA%\anvilbook\): the price
history database and a cached copy of the item database.
Known limits
- Built for WoW Forever beta, client 1.60.1, with an English client.
- Prices come from the lowest listing of each item, not the full price ladder, so a large buy costs more than the estimate.
- Disenchant yields start as estimates, and get replaced by your measured results.
- On Forever, Auctionator loses its own price database on each game load. anvilbook imports each save before that happens, which is a good reason to keep it running.
Development
uv run pytest # 98 tests
luajit tests/addon_harness.lua src/anvilbook/addon/AnvilbookExport/AnvilbookExport.lua
luajit tests/addon_harness_modern.lua src/anvilbook/addon/AnvilbookExport/AnvilbookExport.lua
The addon harnesses stub the WoW API, so they need LuaJIT but not the game.
Credits
- Item and recipe data: nexus-devs/wow-classic-items (MIT)
- Charts: uPlot (MIT)
- Prices: the Auctionator addon
anvilbook is not affiliated with Blizzard Entertainment.
Licence
MIT. See LICENSE.
Release files for anvilbook 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| anvilbook-0.1.3.tar.gz | 48.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| anvilbook-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 88.2 kB
Release files / anvilbook-0.1.3.tar.gz
| Download URL | anvilbook-0.1.3.tar.gz |
|---|---|
| Size | 48.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
be9776cabc96ccd11049d797966f15e8d2877b9ee559d794811fc2f5808ab4f6
|
|
BLAKE2b-256 checksum How to use checksums |
0d2cff7cee8ad4d1994e08f14cb3a6a290bc85202008125e391b62197f0ee84b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency logRelease files / anvilbook-0.1.3-py3-none-any.whl
| Download URL | anvilbook-0.1.3-py3-none-any.whl |
|---|---|
| Size | 39.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
77d5db14cabf723e820df9e1853fc5657128a4b0f400047609d89bd6fbcc9545
|
|
BLAKE2b-256 checksum How to use checksums |
1fc9634dccb3f4ae1f2557cdcb94c4c9057b0e24a0335b9b5fc1048dbd1933fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency log