Offline card browser, deckbuilder, and campaign tracker for your Arkham
Horror: The Card Game collection. Everything runs from local files — open
index.html in a browser, no server, no accounts.
This repo hosts no card data, images, or rules PDFs (they're Fantasy Flight Games' copyrighted material). Instead it ships the app plus a pipeline that downloads exactly the content for the products you physically own, from public sources: ArkhamDB, the arkham.build assets, the ArkhamCards data project, and FFG's own document CDN.
Give this repo to your AI assistant (Claude Code, Cursor, or any coding
agent), tell it which Arkham products you own, and it does everything else:
records your collection, downloads the card data, images, box art, and rules
PDFs, and verifies the result. The instructions it needs are already here, in
AGENTS.md. Then open index.html in your browser.
Bought something new? Tell your assistant.
Manual setup (no AI assistant)
Requires Python 3.8+ (stdlib only) and a browser.
- Open
collection.html, tick every product you own, hit Export, and save the file ascollection.jsonin this folder (next toindex.html). - Run
python3 scripts/setup.py— it downloads and builds everything else. The images step is the long one; the script is resumable, rerun it if interrupted. - Open
index.html. Done.
Bought something new? Re-export collection.json and rerun setup.py.
For MCP-capable clients, mcp/server.py exposes the same pipeline as an
MCP server with a one-call run_pipeline
tool — see its header for registration.
index.html the whole app: card browser, scenario views, deckbuilder, campaign tracker
collection.html setup page: mark what you own, export collection.json
collection.json your collection (gitignored; created by you)
data/ catalog (committed) + generated card/scenario/campaign databases (gitignored)
scripts/ the pipeline, stdlib-only Python
images/, boxart/, guides/ downloaded content (gitignored)
fonts/, icons/ static assets, included
decks/ your deck exports/backups + the app's autosave (gitignored)
mcp/ MCP server wrapping the pipeline
app/ optional native macOS shell (Tauri) — see app/SETUP-APP.md
- Decks, deck sets, and campaign runs live in your browser's localStorage.
Use the deckbuilder's Export JSON for backups; keep them in
decks/. - Attach a campaign to a deck set and hit Start campaign (each deck must have drawn its random basic weakness): pick a difficulty to build the chaos bag, then track everything in one ledger — the token-grid chaos bag, campaign log, story text, per-scenario results, and purchased side scenarios (1 XP buys a pack; parts insert at your current position with a shared sub-campaign bag) — all driven by the ArkhamCards campaign data.
- Play on any scenario line walks you through its setup and resolution step by step: branches are asked as questions, chaos-bag and campaign-log effects apply automatically with confirmations, and the finished walkthrough stays readable in the ledger.
app/holds a thin native macOS shell (Tauri) that serves your clone to a window and autosaves the builder state todecks/autosave.json— build instructions inapp/SETUP-APP.md.- The deckbuilder enforces your physical pool: two decks in the same deck set can't share more copies of a card than you own.
- Maintenance (new products, data refreshes, special cases): MAINTENANCE.md.
This is an unofficial fan project, not affiliated with Fantasy Flight Games.