Farsight console
A local web console and the single entry point: set the game folder, start and stop services and game instances, set up the next game, see what the AI is thinking, issue manual commands, direct the camera, and review match history.
Farsight is a web console that runs on your machine and listens only on 127.0.0.1. It’s also the single entry point to the whole system: starting games, switching AIs, the gateway, speech bubbles and the local LLM are all controlled here, with no other scripts to hunt down.
start.bat # deployment check, then open Farsight at http://127.0.0.1:8866
start.bat 5 6 # also start tests on instances 5 and 6 (game + reference brain)
start.bat restart # restart only the Farsight backend (after changing server code; games and services are unaffected)
stop.bat # stop everything completely
Change the port in ports.console in openwar3.json (default 8866).
Control Center
Farsight’s home page.
- Game folder: find it automatically or pick it yourself; Farsight checks the game version and extracts data from your own game.
- Local services: Gateway, Chat bubbles, Local LLM (LM Studio) and Website preview. Every card can start, stop and restart its service and show its logs; the section also shows whether a client has attached the MCP server.
- Environment check: whether Python, the runtime files, game data, AMAI data and the other parts are installed.
- Stop all (top right): stops game instances, AIs, the gateway, bubbles, the local model this system uses and the Farsight backend, in that order; the same as double-clicking
stop.bat. The MCP server is managed by clients such as Claude and is not stopped; the LM Studio app itself isn’t closed either.
Pages
| Group | Page | What it does |
|---|---|---|
| Hub | Control Center | See the previous section |
| Game | Overview | Summary of the current instance’s game |
| Battlefield | Map view; you can issue manual commands (manual commands have the highest priority in the claim table: 95) | |
| Unit data | Each unit’s order, task target, mana, hero level and XP, ability cooldowns, inventory | |
| AI decisions / Combat decisions | What the reference brain is thinking this tick, and the details of every combat decision | |
| Strategy coach | Status of the LLM strategy coach: whether the model server is up, whether each instance is connected, the latest advice and the input it saw | |
| Director | Auto camera, overhead health bars | |
| Chat Bubbles | Make units speak, chat with the local model, peasant break room, camera dialogue, battle triggers, model settings. See Speech bubbles and local models | |
| Command rate | APM and command throughput | |
| Events & input | What happened in this game: spell casts, chat and screen messages, button clicks, hotkeys, ground clicks, selection, players leaving, filterable by category; alongside are the cursor position, the hovered item and the local selection. See UI & input | |
| Records | Logs / Match history | Log sources for each instance; each game’s result, duration and peak army size |
| Issue notes | Press Pause/Break in the game to pause and mark the timestamp, then add a description here later | |
| System | Instances & Setup | Start and stop instances; set the next game’s map (a melee map, or an RPG / custom map), both races, difficulty and game speed; pick an AI scheme for each instance; Start test launches the game + AI in one click |
| AI schemes | Import, export, copy, trust and delete schemes; switch an instance’s scheme (even the game in progress can be handed over right away); see each scheme’s results. See AI schemes | |
| JASS console | Write a JASS script and hit Run; on the right, browse 1291 functions by category and click one to insert it into the script. Variables persist for the whole game. See JASS channel | |
| Connect & extend | Gateway status and one-click start; connection URLs generated per role (dev / player / observer), MCP setup commands and config; JS and Python examples. See Gateway and MCP | |
| Data & disk | How much disk space recordings, match history, logs and other run data take, how much was added in the last day, and what can be deleted (Farsight never deletes anything automatically) | |
| Settings | Game folder, interface language, appearance (dark / light, modern / Warcraft style) and more | |
| Feedback | Report a problem or make a suggestion straight to us; diagnostic information is attached only if you tick the box, and you can preview it before sending |
Press Ctrl + K to open the command palette: jump to a page, switch instances, end the current game, or start a new brain.
What’s new at the bottom of the sidebar lists what was recently added to Farsight and the platform. At startup (and every 6 hours after that), Farsight asks War3AI.com whether there’s a new version and lets you know if there is. When Farsight is updated, a banner appears at the top of the page; save whatever you’re typing, then click Refresh.
Multiple instances
runtime/farm.py handles running multiple copies (Farsight calls it for you when starting and stopping instances): it copies the original War3.exe launcher to War3-<N>.exe (without modifying any game file), and each instance gets its own number and directory (bin/inst<N>/). When a game ends, the next one starts automatically according to next_game.json (which is exactly what the console’s Instances & Setup page edits).
Your bot connects to a specific instance with --inst N. The console’s Instances & Setup page shows which numbers are in use, so you don’t collide with the reference brain.
Live page
http://127.0.0.1:8866/live is a scrolling log page designed to drop into an OBS Browser Source, showing the AI’s decisions and how the battle is going.
API
The console’s server is a set of local REST + WebSocket APIs (instance status, next-game settings, unit details, manual commands, logs, match history, director, AI schemes, JASS calls, canvas…), and the web page is just one of its clients — programs in any language can call them directly. The API list is in the header comment of console/server/app.py; for how to use the scheme, JASS and canvas groups, see AI schemes, JASS channel and Canvas.