← All projects
Projects 02/Open source · Lua, TypeScript, MCP

WoW Companion

From a window inside WoW Forever, you ask Claude or Codex about a quest or an item. The AI sees your character, quests and bags, searches the world database and can suggest a map waypoint.

Open the repository ↗

01What it does

Type /ai and a question in the game and a floating window opens with the answer. The AI can read your character, position, quest log, bags and gear, look up quests, NPCs and items in the world database, and suggest a waypoint. The waypoint is only set when you click a button in the window. It has three parts: a Lua addon, a TypeScript companion that runs on your PC, and an MCP server.

02How the game talks to the AI

A game addon cannot open a network connection or start a program. So the addon draws a thin line of coloured pixels along the edge of the game window, and the companion reads it with a screen capture. Replies come back through 200 small addon folders that the companion fills with Lua files. I set one rule first: no simulated keyboard or mouse input and no reading of the game's memory, to stay within Blizzard's terms of service.

03How the AI stays read-only

The companion starts the AI tool you chose and gives it one MCP server with six tools: game state, find an NPC, a quest or an object, suggest gear upgrades and set a waypoint. No provider gets a shell or file writes. Claude can run a web search limited to three sites, and Codex has web search turned off. A Cursor adapter exists but ships disabled.

04How I built it

I started from a written spec: 18 decisions, 25 acceptance criteria and 14 slices, each reviewed before it merged. The first version took three days. The pixel link is tested with the real Lua encoder run under Lua 5.1.5, the dialect the game uses, and decoded by the TypeScript side. I only tested it on Windows 11.

How it is built

  1. Game

    WoW Forever

  2. Bridge

    No input, no memory reads

  3. Companion

    On your PC

  4. AI tool

    Your own login

  5. Game tools

    Read-only MCP

Select a part of the diagram to see what it does. Each color is one flow through the system.

© 2026 Benoit Ardiet · Quito, Ecuador · UTC−5GitHubLinkedInNo tracking, no cookies.