A native desktop app for managing D&D 5e characters, running campaigns, and playing sessions — with real-time multiplayer, a 2,000+ article encyclopedia, and full 5e ruleset support. No account, no internet, no subscriptions.
Built with Claude Code
| Player + DM Modes | Full character sheets for players, complete campaign engine for DMs |
| Real-Time Multiplayer | WebSocket-based sessions — DM and players sync combat, rolls, loot, and conditions live over LAN |
| 154 Recipes of D&D | 2,000+ article wiki with full-text search, monster stat blocks, spells, items, and more |
| Everything Offline | All data stored locally in SQLite. Optional AI assistant via Ollama runs on your machine too |
| Two Rulesets | Supports both 5e-2014 and 5e-2024 rules |
git clone https://github.com/nisakson2000/dnd-tracker.git
cd dnd-tracker
npm install
cd frontend && npm install && cd ..
npm run tauri devRequirements: Node.js 18+, Rust (stable). See full setup instructions below for platform-specific dependencies.
Player Mode
- Character Sheet — ability scores, saves, skills, HP, AC, proficiency, conditions, inspiration, exhaustion, multiclass
- Dice Rolling — animated dice with crit effects, saved macros, advantage/disadvantage, custom expressions
- Spellbook — slot tracking, prepared spells, concentration, ritual casting, cantrip scaling, third-caster and pact magic support
- Combat Tracker — initiative, action economy (action/bonus/reaction), attack rolls with full modifier math, flanking, conditions with auto-applied effects
- Inventory — 40+ preloaded items, magic item properties (+1/+2/+3, extra dice, save bonuses), currency, encumbrance, attunement
- Features & Traits — uses/charges with recharge tracking, rest-based restore, low-charge warnings
- Journal — markdown editor, session tagging, NPC mentions, pinned entries, export
- Backstory — portrait upload, personality traits, bonds, flaws, ideals, goals, allies
- Level-Up System — animated overlay with class-specific gains and auto-detection
- D&D Beyond Import — multi-step wizard for importing character JSON exports
DM Mode & Campaign Engine
- Campaign Builder — create Homebrew or Premade campaigns with scenes, encounters, and handouts
- Live Session Runner — initiative tracker, round manager, action log, chat, timer, scene management
- NPC Intelligence — 8 personality archetypes, 34 traits, trust system (-100 to +100), memory with decay, behavior prediction
- Combat AI — intelligence-tiered tactics (Mindless to Genius), 7 monster behavior profiles, boss phase system
- Story Engine — story threads with branching outcomes, villain profiles, campaign arcs, secrets with reveal conditions
- World Systems — factions, weather, economy, investigation clues, rumor propagation, world crises, artifact evolution
- Session Tools — quest generator, session recap, world state manager, travel calculator, random encounters, mood/music sync
- Monster Panel — SRD monster search, HP/condition tracking, legendary and lair actions
- Handouts — create and reveal handouts to players with visibility toggle
- Cover System — half/three-quarter/full cover with AC modifiers synced to players
Multiplayer (DM↔Player Sync)
- WebSocket Sessions — real-time sync over LAN with room codes and auto-reconnect
- 22+ Synced Event Types — conditions, HP, rest, loot, XP, spell slots, combat state, and more
- Player Combat HUD — tabbed interface (Attack, Spell, Items, Features) during combat turns
- Turn Notifications — audio chime, window flash, gold banner when it's your turn
- Death Saves — dramatic d20 roll overlay with nat 1/nat 20 handling
- Concentration Tracking — auto-sends CON save on damage, auto-drops on fail
- Shared Combat Log — all players see attacks, damage, kills, and spell casts live
- Equipment Selection — players choose weapons/armor before combat starts
- Mood & Music Sync — DM sets scene mood with ambient audio and visual overlays for all players
- Offline Queue — actions queue when disconnected and replay on reconnect
- Crash Recovery — periodic snapshots with recovery banner on reconnect
Encyclopedia & Reference
- 2,000+ Articles — searchable wiki with FTS5 full-text search
- Grid & List Views — browse by category or search
- Cross-Reference Previews — hover links to preview related articles
- Keyboard Navigation — arrow keys, Enter to open, Escape to close
Additional Tools
- Encounter Builder — design balanced encounters by CR, party level, and difficulty
- Homebrew Builder — create custom monsters, spells, and magic items
- Party Analyzer — composition analysis, role coverage, encounter difficulty recommendations
- Party Loot — shared treasure tracking with distribution and audit log
- Soundboard — procedural ambient audio (tavern, combat, forest, dungeon, storm, ocean, camp, city)
- Calendar — Forgotten Realms Harptos calendar with festivals and seasons
- Downtime Activities — crafting, training, research, business, carousing
- PDF Export — print-ready character sheets
- In-Character Chat — IC/OOC modes with
/rollcommands and class-colored names - Keyboard Shortcuts — Ctrl+1–9 section navigation, Ctrl+R quick roll,
?for help
AI Assistant (Optional)
An optional D&D companion that runs entirely on your machine via Ollama.
- Searches the 2,000+ article wiki before every query for accurate 5e answers
- Brief responses (1–3 sentences) with low temperature for accuracy
- Floating widget available on all sections
- Uses phi3.5 (~2.2GB) — auto-downloads when enabled
- Requires: Ollama installed, 4GB free RAM
- Privacy: All data stays local. Nothing leaves your machine.
To enable: Settings → AI Assistant → Enable
Dev Tools (Ctrl+Shift+D)
- DB Inspector with raw SQL queries
- Git panel (status, commit, push, pull, diff, stash)
- LAN dev chat via UDP broadcast
- IPC logger for Tauri invokes
- Performance overlay (FPS, render timing)
- Feature flags, schema migration runner
- Test character generator
- Bug report generator
| Dependency | Version | |
|---|---|---|
| Node.js | 18+ LTS | nodejs.org |
| Rust | stable | rustup.rs |
Windows
Linux (Ubuntu / Debian)
sudo apt update && sudo apt install -y \
libwebkit2gtk-4.1-dev build-essential curl wget file \
libssl-dev libayatana-appindicator3-dev librsvg2-dev \
libgtk-3-dev libsoup-3.0-dev libjavascriptcoregtk-4.1-devLinux (Fedora)
sudo dnf install -y \
webkit2gtk4.1-devel openssl-devel curl wget file \
libappindicator-gtk3-devel librsvg2-devel \
gtk3-devel libsoup3-devel javascriptcoregtk4.1-devel# Development (hot reload)
npm run tauri dev
# Production build
npm run tauri build
# Output: src-tauri/target/release/bundle/
# Windows: .msi / .exe Linux: .deb / .AppImage macOS: .dmgFrontend Backend Storage
───────── ─────── ───────
React 19 + Vite 7 Tauri 2 (Rust) SQLite per-character
TailwindCSS v4 rusqlite via IPC campaigns.db
Framer Motion warp + tokio WebSocket wiki.db (FTS5)
React Router v7 UDP LAN presence Local filesystem
- Multiplayer: WebSocket on port 7878 for real-time DM↔Player sessions
- Dev Sync: UDP broadcast on port 8799 for LAN dev presence
- Rulesets: Pluggable 5e-2014 / 5e-2024 via React Context
- Auto-Save: Debounced 800ms with backup every 5 minutes
Built with Claude Code