AI assistant for World of Warcraft that provides boss strategies, class tips, group composition advice, and more - with access to your live game state.
| Version | Interface | WoW Folder |
|---|---|---|
| Retail | 120000 | _retail_ |
| TBC Classic Anniversary | 20505 | _anniversary_ |
| Mists of Pandaria Classic | 50503 | _classic_ |
| Classic Era | 11508 | _classic_era_ |
Switch versions in the app via the settings gear icon in the header. The addon Lua code is identical across all versions - only the TOC interface line differs (it lists all supported versions).
Two components work together:
- WoW Addon (
addon/WoWAgent/) - Minimal Lua addon that exports game state (player, target, zone, party, gear) to SavedVariables and captures screenshots - Electron App (
app/) - Desktop chat UI powered by AI via pi-agent-core. Reads game state from SavedVariables, watches for screenshots, provides an always-on-top chat window. Supports multiple AI providers (Anthropic, OpenAI, GitHub Copilot) with API key or OAuth authentication.
How sync works: WoW addons can't do HTTP or file I/O. The only way to get data out is SavedVariables, written to disk on ReloadUI/logout. Run /agent sync in-game to flush state, then chat freely in the desktop app (zero reloads for conversation).
Screenshots: Run /agent ss in-game to capture a screenshot. The app watches the Screenshots directory and lets you attach the image to your next message for visual context.
- World of Warcraft (any supported version)
- Node.js 18+
- An AI provider API key or OAuth login (Anthropic, OpenAI, GitHub Copilot)
# Auto-detect all WoW installs and symlink to each
./install.sh
# Install to a specific version only
./install.sh retail
./install.sh tbc
./install.sh mop
./install.sh classic
# Or specify an explicit AddOns path
./install.sh "/path/to/World of Warcraft/_retail_/Interface/AddOns"The addon's TOC file lists all supported interface versions, so the same addon folder works in any WoW version.
cd app
npm installConfigure your AI provider in the app's settings panel (gear icon), or set environment variables in a .env file in the app/ directory:
ANTHROPIC_API_KEY="sk-ant-..." # For Anthropic provider
WOW_WTF_PATH="/path/to/WTF" # Optional: override SavedVariables path
WOW_AGENT_MODEL="claude-sonnet-4-5-..." # Optional: override AI modelThe settings panel supports API key entry and OAuth login for supported providers. Provider and auth settings persist in ~/.wow-agent/settings.json.
cd app
npm start- In WoW: The addon loads automatically. Use
/agent syncto export your current game state (this reloads your UI) - Screenshots: Use
/agent ssto take a screenshot. It appears in the app as a preview you can attach to your next message - In the desktop app: Ask questions about boss strategies, your class, gear, group composition, etc. The AI can look up zones, bosses, items, and quests on Wowhead automatically
- Zone auto-lookup: When you sync after changing zones, the AI automatically looks up the new zone on Wowhead and provides a summary
- Switch versions: Click the gear icon in the header to open settings. Select your WoW version from the dropdown
- Install addon: The settings panel can detect and install the WoW addon directly (no need to run
install.shmanually) - The AI sees: Your character (name, class, level, spec), current target, zone/instance, party members, and average item level
Settings (version, provider, auth) persist across app restarts in ~/.wow-agent/settings.json.
| Command | Description |
|---|---|
/agent sync |
Export game state + reload UI to flush to disk |
/agent ss |
Take a screenshot and send it to the app |
/agent status |
Show when you last synced |
/agent help |
Show available commands |
cd app
# Build and run
npm run dev
# Build only
npm run build
# Package for distribution
npm run distaddon/WoWAgent/ # WoW Addon (Lua)
WoWAgent.toc # Manifest (multi-version: 11508, 20505, 50503, 120000)
Utils.lua # DeepCopy, MergeDefaults helpers
StateCollector.lua # Game state collection via WoW APIs
Core.lua # Init, events, slash commands (/agent sync, ss, status, help)
app/ # Electron Desktop App (ESM)
src/main/ # Main process (Node.js)
index.ts # App entry, window creation, IPC, provider/addon management
agent.ts # AI agent setup, multi-provider support, zone auto-lookup
lua-reader.ts # SavedVariables Lua parser
file-watcher.ts # Watch for SavedVariables changes
screenshot-watcher.ts # Watch for new screenshots in WoW Screenshots dir
config.ts # App configuration, WoW version registry, provider registry
tools/ # Agent tools
game-state.ts # Read game state from SavedVariables
web-fetch.ts # Fetch web pages (Wowhead lookups)
index.ts # Tool registry
src/renderer/ # Renderer (browser context)
index.html # Chat UI with settings (provider, auth, addon install)
app.js # UI logic, IPC, provider/OAuth/screenshot handling
styles.css # WoW-themed styling
.github/workflows/ # CI/CD
build.yml # Build & release on tag push (macOS + Windows)