Repository navigation
Releases: michael-kitchin/agent-wars
Release list
Agent Wars 2.15.0
A turn-based grand strategy game on a real-Earth hex map. Your opponents are large language models you choose through OpenRouter. Coding agents wrote the code; the story is told in the Agent Wars series in Standing Orders.
Downloads
| File | For |
|---|---|
agent-wars-2.15.0-windows-x64.zip |
Windows, x64 |
agent-wars-2.15.0-macos-arm64.zip |
macOS on Apple silicon |
agent-wars-2.15.0-linux-x64.tar.gz |
Linux, x64 |
SHA256SUMS.txt |
SHA-256 checksums for the three archives |
These are unsigned side-load builds, so Windows and macOS warn before the first launch.
- Windows: unzip, then run
Agent Wars v2.15.0.exe. If SmartScreen stops it, choose More info, then Run anyway. - macOS: unzip, then open
Agent Wars v2.15.0.app. If macOS blocks it, open System Settings > Privacy & Security and choose Open Anyway. - Linux: extract the archive, then run
./agent-wars. That launcher handles Chromium's sandbox when the archive can't keepchrome-sandboxowned by root. On Ubuntu 23.10 and later, where AppArmor blocks unprivileged user namespaces, it starts without the sandbox and says so.
To check a download, compare its SHA-256 with the line in SHA256SUMS.txt: Get-FileHash <file> in PowerShell, shasum -a 256 <file> on macOS, or sha256sum -c --ignore-missing SHA256SUMS.txt on Linux.
Before you play
- Bring your own OpenRouter key. Start a match. The console on the right starts collapsed; click Command and open a commander's card. Paste that opponent's key, choose a model, and click Start. Each opponent has its own key. A new game fills only the first opponent from the key you used last. OpenRouter bills your account for the commanders' model calls. Without a key and a model on at least one commander the app still runs, Start stays off, and that opponent makes no model calls. The key stays on your computer and is sent only to OpenRouter (SECURITY.md).
- Map imagery needs an internet connection. Map tiles come from Esri and OpenStreetMap.
- Non-commercial use. The app ships earth data under non-commercial terms, so the application as distributed is for non-commercial use. See THIRD-PARTY-NOTICES.md.
- Saves. A save from 2.14.0, 2.13.0, or 2.12.0 still opens. A save from 2.10.0 or earlier will not load in 2.15.0.
How a match plays is in doc/how-to-play.md.
What's in 2.15.0
- Provider. Each commander's card chooses the OpenRouter host. Highest Throughput is the default. Lowest Price and Lowest Latency prefer a cheaper or a faster host. Priority Service (Nitro) asks for a priority host. The choice stays with that commander and is remembered for the next match. Changing it stops that commander's current plan.
- Longer model calls. One request may run for 3 minutes, and a consultation may run for 10 minutes. Both are twice as long as in 2.14.0. A call that uses up its time is not sent again. Standing orders run instead.
- Think time. The result screen shows how long each commander's settled consults took, beside the consultation count and the cost. A timeout or a failed call counts toward that time and not toward the consultation count.
Known limits
- There is no in-app list of saves, and no turn replay.
- Settings, Help, How to play, the Build and Forces tabs, and Replay on a turn report are placeholders in this version.
- On macOS, Quit closes the window and the app stays in the dock.
- The macOS build is for Apple silicon only, and it hasn't been opened on a Mac yet, so its first-launch steps are untested.
- Model quality varies. A model without tool calls plays without the planning tools.
- This is mostly a personal R&D project. Issues and pull requests are welcome; responses and acceptance are best-effort. Security reports go through the repository's Security tab.
Agent Wars 2.14.0
A turn-based grand strategy game on a real-Earth hex map. Your opponents are large language models you choose through OpenRouter. Coding agents wrote the code; the story is told in the Agent Wars series in Standing Orders.
Downloads
| File | For |
|---|---|
agent-wars-2.14.0-windows-x64.zip |
Windows, x64 |
agent-wars-2.14.0-macos-arm64.zip |
macOS on Apple silicon |
agent-wars-2.14.0-linux-x64.tar.gz |
Linux, x64 |
SHA256SUMS.txt |
SHA-256 checksums for the three archives |
These are unsigned side-load builds, so Windows and macOS warn before the first launch.
- Windows: unzip, then run
Agent Wars v2.14.0.exe. If SmartScreen stops it, choose More info, then Run anyway. - macOS: unzip, then open
Agent Wars v2.14.0.app. If macOS blocks it, open System Settings > Privacy & Security and choose Open Anyway. - Linux: extract the archive, then run
./agent-wars. That launcher handles Chromium's sandbox when the archive can't keepchrome-sandboxowned by root. On Ubuntu 23.10 and later, where AppArmor blocks unprivileged user namespaces, it starts without the sandbox and says so.
To check a download, compare its SHA-256 with the line in SHA256SUMS.txt: Get-FileHash <file> in PowerShell, shasum -a 256 <file> on macOS, or sha256sum -c --ignore-missing SHA256SUMS.txt on Linux.
Before you play
- Bring your own OpenRouter key. Start a match. The console on the right starts collapsed; click Command and open a commander's card. Paste that opponent's key, choose a model, and click Start. Each opponent has its own key. A new game fills only the first opponent from the key you used last. OpenRouter bills your account for the commanders' model calls. Without a key and a model on at least one commander the app still runs, Start stays off, and that opponent makes no model calls. The key stays on your computer and is sent only to OpenRouter (SECURITY.md).
- Map imagery needs an internet connection. Map tiles come from Esri and OpenStreetMap.
- Non-commercial use. The app ships earth data under non-commercial terms, so the application as distributed is for non-commercial use. See THIRD-PARTY-NOTICES.md.
- Saves. A save from 2.13.0 or 2.12.0 still opens. A save from 2.10.0 or earlier will not load in 2.14.0.
How a match plays is in doc/how-to-play.md.
What's in 2.14.0
- Names. Game Options has a Nickname for you. It starts as Human and stays on this computer, so the next match uses it. Each opponent starts as that side's short home name, and you change it on that commander's card. The match shows those names on the top bar, in reports, and on tooltips. The name in Game Options is not in the save file. The names the sides are using in that match are.
- Sight cues. On by default in Game Options. While you are only watching, and fog of war is on, each turn's playback starts with lines from each AI commander's units to the enemy units those units could see when that commander planned. The lines change nothing about the turn.
- Unit counts. Rest the pointer on your side's name in the top bar to see how many units of each type you have, and the total. Fog hides units you cannot see.
- Passing hexes. Enemy units ordered into each other's hexes don't slip past each other. A roll picks one of the two hexes. The units there stay put, the units heading in arrive, and they fight in melee. Battles work the same way. Paths that only cross partway, and rings of three or more hexes, still move as ordered.
Known limits
- There is no in-app list of saves, and no turn replay.
- Settings, Help, How to play, the Build and Forces tabs, and Replay on a turn report are placeholders in this version.
- On macOS, Quit closes the window and the app stays in the dock.
- The macOS build is for Apple silicon only, and it hasn't been opened on a Mac yet, so its first-launch steps are untested.
- Model quality varies. A model without tool calls plays without the planning tools.
- This is mostly a personal R&D project. Issues and pull requests are welcome; responses and acceptance are best-effort. Security reports go through the repository's Security tab.
Agent Wars 2.13.0
A turn-based grand strategy game on a real-Earth hex map. Your opponents are large language models you choose through OpenRouter. Coding agents wrote the code; the story is told in the Agent Wars series in Standing Orders.
Downloads
| File | For |
|---|---|
agent-wars-2.13.0-windows-x64.zip |
Windows, x64 |
agent-wars-2.13.0-macos-arm64.zip |
macOS on Apple silicon |
agent-wars-2.13.0-linux-x64.tar.gz |
Linux, x64 |
SHA256SUMS.txt |
SHA-256 checksums for the three archives |
These are unsigned side-load builds, so Windows and macOS warn before the first launch.
- Windows: unzip, then run
Agent Wars v2.13.0.exe. If SmartScreen stops it, choose More info, then Run anyway. - macOS: unzip, then open
Agent Wars v2.13.0.app. If macOS blocks it, open System Settings > Privacy & Security and choose Open Anyway. - Linux: extract the archive, then run
./agent-wars. That launcher handles Chromium's sandbox when the archive can't keepchrome-sandboxowned by root. On Ubuntu 23.10 and later, where AppArmor blocks unprivileged user namespaces, it starts without the sandbox and says so.
To check a download, compare its SHA-256 with the line in SHA256SUMS.txt: Get-FileHash <file> in PowerShell, shasum -a 256 <file> on macOS, or sha256sum -c --ignore-missing SHA256SUMS.txt on Linux.
Before you play
- Bring your own OpenRouter key. Start a match. The console on the right starts collapsed; click Command and open a commander's card. Paste that opponent's key, choose a model, and click Start. Each opponent has its own key. A new game fills only the first opponent from the key you used last. OpenRouter bills your account for the commanders' model calls. Without a key and a model on at least one commander the app still runs, Start stays off, and that opponent makes no model calls. The key stays on your computer and is sent only to OpenRouter (SECURITY.md).
- Map imagery needs an internet connection. Map tiles come from Esri and OpenStreetMap.
- Non-commercial use. The app ships earth data under non-commercial terms, so the application as distributed is for non-commercial use. See THIRD-PARTY-NOTICES.md.
- Saves. A save from 2.12.0 still opens. A save from 2.10.0 or earlier will not load in 2.13.0.
How a match plays is in doc/how-to-play.md.
What's in 2.13.0
- AI-only battles. Game Options on the setup screen has AI-Only Battles. Balanced, the default, fights the closest battle while you are only watching. Unbalanced fights the least equal one, Random picks one, and None leaves those battles on the world map. The commanders play the battle. You see each beat, and the world-map update for the turn that opened the battle waits until the battle ends and the next turn has resolved.
- Watching. Watch the rest, and an Observe-only match once "Start the next turn when every commander is ready" is checked, frames the units you can see at the start of each turn, with a little room on one side. An automatic battle frames the living units the same way, and you can still zoom out to the whole battle. The checkbox starts cleared on a new Observe-only match, so the map stays where you left it until you check it. A match with a human player keeps today's camera.
- Battle losses. A strategic unit destroyed in a battle is named in that side's loss section, after the other causes, ending with "destroyed in battle." Several of one type are counted, such as "6 Armored", and the line keeps the origin flag and the type icon. When Ready opened the battle, that turn's popup is the one left on the map. A battle you open from the map puts the line on the next turn's report.
- OpenRouter listing. Chat and model-list requests name this app to OpenRouter, so Agent Wars can appear in OpenRouter's public listings. The key is still sent only to OpenRouter.
Known limits
- There is no in-app list of saves, and no turn replay.
- Settings, Help, How to play, the Build and Forces tabs, and Replay on a turn report are placeholders in this version.
- On macOS, Quit closes the window and the app stays in the dock.
- The macOS build is for Apple silicon only, and it hasn't been opened on a Mac yet, so its first-launch steps are untested.
- Model quality varies. A model without tool calls plays without the planning tools.
- This is mostly a personal R&D project. Issues and pull requests are welcome; responses and acceptance are best-effort. Security reports go through the repository's Security tab.
Agent Wars 2.12.0
A turn-based grand strategy game on a real-Earth hex map. Your opponents are large language models you choose through OpenRouter. Coding agents wrote the code; the story is told in the Agent Wars series in Standing Orders.
Downloads
| File | For |
|---|---|
agent-wars-2.12.0-windows-x64.zip |
Windows, x64 |
agent-wars-2.12.0-macos-arm64.zip |
macOS on Apple silicon |
agent-wars-2.12.0-linux-x64.tar.gz |
Linux, x64 |
SHA256SUMS.txt |
SHA-256 checksums for the three archives |
These are unsigned side-load builds, so Windows and macOS warn before the first launch.
- Windows: unzip, then run
Agent Wars v2.12.0.exe. If SmartScreen stops it, choose More info, then Run anyway. - macOS: unzip, then open
Agent Wars v2.12.0.app. If macOS blocks it, open System Settings > Privacy & Security and choose Open Anyway. - Linux: extract the archive, then run
./agent-wars. That launcher handles Chromium's sandbox when the archive can't keepchrome-sandboxowned by root. On Ubuntu 23.10 and later, where AppArmor blocks unprivileged user namespaces, it starts without the sandbox and says so.
To check a download, compare its SHA-256 with the line in SHA256SUMS.txt: Get-FileHash <file> in PowerShell, shasum -a 256 <file> on macOS, or sha256sum -c --ignore-missing SHA256SUMS.txt on Linux.
Before you play
- Bring your own OpenRouter key. Start a match. The console on the right starts collapsed; click Command and open a commander's card. Paste that opponent's key, choose a model, and click Start. Each opponent has its own key. A new game fills only the first opponent from the key you used last. OpenRouter bills your account for the commanders' model calls. Without a key and a model on at least one commander the app still runs, Start stays off, and that opponent makes no model calls. The key stays on your computer and is sent only to OpenRouter (SECURITY.md).
- Map imagery needs an internet connection. Map tiles come from Esri and OpenStreetMap.
- Non-commercial use. The app ships earth data under non-commercial terms, so the application as distributed is for non-commercial use. See THIRD-PARTY-NOTICES.md.
- Saves. A file from another version of Agent Wars cannot be opened. A save from 2.10.0 or earlier will not load in 2.12.0.
How a match plays is in doc/how-to-play.md.
What's in 2.12.0
- Fortifications. Queue one on an intact city cell, at the same production cost as infantry on that map. A hit on the holder's units removes a fortification instead, until none remain, and the hex cannot change hands while any remain. After a turn with no melee, units of exactly one other side besiege it. Ticks along the hex's edges show how much of it is fortified. In a battle, the controller's units start on those cells, and the other side cannot enter them.
- Credits and hiring. Each side has a treasury that starts at 0. A Credits item in a build queue costs that map's infantry price and adds ¤20. On a city's Hire tab, or a Hire marker where you can hire and cannot build, you can raise units with production and credits, or rehire a Neutral unit you can see. The fee is paid when you place the order. Mercenaries show ¤ on their token. If upkeep at Ready is more than the treasury, mercenaries desert to Neutral.
- Missiles. A city, airport, or seaport cell is destroyed on a roll of 10 or less, the same chance as an air strike before cover and bonuses. A fortified cell that rolls 10 or less loses the fortification and keeps the cell. In 2.10.0 only a roll of 20 saved the cell.
- Coastal hexes. Open sea inside a coastal hex stays water. Infantry and armor cannot enter it, and ships can. The hex still plays as coastal on the strategic map. A battle that is already open keeps the terrain it started with.
- Attack lines. While a turn plays, a ranged shot, an air strike's flight to the target, and a missile launch use the same crimson arrows as the orders you queued: solid, dashed, and dotted. An air unit's flight home stays that side's color.
Known limits
- There is no in-app list of saves, and no turn replay.
- Settings, Help, How to play, the Build and Forces tabs, and Replay on a turn report are placeholders in this version.
- On macOS, Quit closes the window and the app stays in the dock.
- The macOS build is for Apple silicon only, and it hasn't been opened on a Mac yet, so its first-launch steps are untested.
- Model quality varies. A model without tool calls plays without the planning tools.
- This is mostly a personal R&D project. Issues and pull requests are welcome; responses and acceptance are best-effort. Security reports go through the repository's Security tab.
Agent Wars 2.10.0
A turn-based grand strategy game on a real-Earth hex map. Your opponents are large language models you choose through OpenRouter. Coding agents wrote the code; the story is told in the Agent Wars series in Standing Orders.
Downloads
| File | For |
|---|---|
agent-wars-2.10.0-windows-x64.zip |
Windows, x64 |
agent-wars-2.10.0-macos-arm64.zip |
macOS on Apple silicon |
agent-wars-2.10.0-linux-x64.tar.gz |
Linux, x64 |
SHA256SUMS.txt |
SHA-256 checksums for the three archives |
These are unsigned side-load builds, so Windows and macOS warn before the first launch.
- Windows: unzip, then run
Agent Wars v2.10.0.exe. If SmartScreen stops it, choose More info, then Run anyway. - macOS: unzip, then open
Agent Wars v2.10.0.app. If macOS blocks it, open System Settings > Privacy & Security and choose Open Anyway. - Linux: extract the archive, then run
./agent-wars. That launcher handles Chromium's sandbox when the archive can't keepchrome-sandboxowned by root. On Ubuntu 23.10 and later, where AppArmor blocks unprivileged user namespaces, it starts without the sandbox and says so.
To check a download, compare its SHA-256 with the line in SHA256SUMS.txt: Get-FileHash <file> in PowerShell, shasum -a 256 <file> on macOS, or sha256sum -c --ignore-missing SHA256SUMS.txt on Linux.
Before you play
- Bring your own OpenRouter key. Start a match. The console on the right starts collapsed; click Command and open a commander's card. Paste that opponent's key, choose a model, and click Start. Each opponent has its own key. A new game fills only the first opponent from the key you used last. OpenRouter bills your account for the commanders' model calls. Without a key and a model on at least one commander the app still runs, Start stays off, and that opponent makes no model calls. The key stays on your computer and is sent only to OpenRouter (SECURITY.md).
- Map imagery needs an internet connection. Map tiles come from Esri and OpenStreetMap.
- Non-commercial use. The app ships earth data under non-commercial terms, so the application as distributed is for non-commercial use. See THIRD-PARTY-NOTICES.md.
- Saves. A file from another version of Agent Wars cannot be opened. A save from 2.9.0 or earlier will not load in 2.10.0.
How a match plays is in doc/how-to-play.md.
What's in 2.10.0
- Missiles. A fifth unit type. On the global map one costs $200, ten times an infantry, and it can be built once that map has 21 urban cells, the Advanced tech cutoff. A regional map uses that region's infantry price times ten, and that region's own urban threshold and range. The global range is 12 hexes. Small games allow 2, Medium 4, and Large 6.
- One launch. A missile does not move. On the world map, select only missiles, click the reticle, and double-click an explored hex in range, including the missile's own hex. It launches once and is then gone. That removal is not a combat loss. There is no reach outline.
- What a launch hits. Each city, airport, and seaport cell in the target hex is destroyed unless that cell's own twenty-sided roll is a 20. If an airport cell is destroyed, every air unit based at that hex is destroyed. Other units in the hex are unharmed. Launches resolve before air strikes.
- Not in a battle. A missile cannot launch, move, or fire during a battle.
- Commanders. A commander that has a missile can order one launch per missile on the strategic map. It cannot launch during a battle.
Known limits
- There is no in-app list of saves, and no turn replay.
- Settings, Help, How to play, the Build and Forces tabs, and Replay on a turn report are placeholders in this version.
- On macOS, Quit closes the window and the app stays in the dock.
- The macOS build is for Apple silicon only, and it hasn't been opened on a Mac yet, so its first-launch steps are untested.
- Model quality varies. A model without tool calls plays without the planning tools.
- This is mostly a personal R&D project. Issues and pull requests are welcome; responses and acceptance are best-effort. Security reports go through the repository's Security tab.
Agent Wars 2.9.0
A turn-based grand strategy game on a real-Earth hex map. Your opponents are large language models you choose through OpenRouter. Coding agents wrote the code; the story is told in the Agent Wars series in Standing Orders.
Downloads
| File | For |
|---|---|
agent-wars-2.9.0-windows-x64.zip |
Windows, x64 |
agent-wars-2.9.0-macos-arm64.zip |
macOS on Apple silicon |
agent-wars-2.9.0-linux-x64.tar.gz |
Linux, x64 |
SHA256SUMS.txt |
SHA-256 checksums for the three archives |
These are unsigned side-load builds, so Windows and macOS warn before the first launch.
- Windows: unzip, then run
Agent Wars v2.9.0.exe. If SmartScreen stops it, choose More info, then Run anyway. - macOS: unzip, then open
Agent Wars v2.9.0.app. If macOS blocks it, open System Settings > Privacy & Security and choose Open Anyway. - Linux: extract the archive, then run
./agent-wars. That launcher handles Chromium's sandbox when the archive can't keepchrome-sandboxowned by root. On Ubuntu 23.10 and later, where AppArmor blocks unprivileged user namespaces, it starts without the sandbox and says so.
To check a download, compare its SHA-256 with the line in SHA256SUMS.txt: Get-FileHash <file> in PowerShell, shasum -a 256 <file> on macOS, or sha256sum -c --ignore-missing SHA256SUMS.txt on Linux.
Before you play
- Bring your own OpenRouter key. Start a match. The console on the right starts collapsed; click Command and open a commander's card. Paste that opponent's key, choose a model, and click Start. Each opponent has its own key. A new game fills only the first opponent from the key you used last. OpenRouter bills your account for the commanders' model calls. Without a key and a model on at least one commander the app still runs, Start stays off, and that opponent makes no model calls. The key stays on your computer and is sent only to OpenRouter (SECURITY.md).
- Map imagery needs an internet connection. Map tiles come from Esri and OpenStreetMap.
- Non-commercial use. The app ships earth data under non-commercial terms, so the application as distributed is for non-commercial use. See THIRD-PARTY-NOTICES.md.
How a match plays is in doc/how-to-play.md.
What's in 2.9.0
- Save. Save game… in the game menu writes the match to an
.agentwarsfile while you are giving orders, including during a battle. You cannot save while a turn or battle beat is still resolving, or after the match is over. The last five turn starts are kept automatically. - Load. Load game… is in that menu and on the New game bar. If a match is still going, the game asks before it replaces that match. A file from another version of Agent Wars cannot be opened.
- What stays on this computer. The file does not include API keys, remembered commanders, or the app-wide model and reasoning choices. Each side's model, reasoning effort, and doctrine stay in the file.
Known limits
- There is no in-app list of saves, and no turn replay.
- Settings, Help, How to play, the Build and Forces tabs, and Replay on a turn report are placeholders in this version.
- On macOS, Quit closes the window and the app stays in the dock.
- The macOS build is for Apple silicon only, and it hasn't been opened on a Mac yet, so its first-launch steps are untested.
- Model quality varies. A model without tool calls plays without the planning tools.
- This is mostly a personal R&D project. Issues and pull requests are welcome; responses and acceptance are best-effort. Security reports go through the repository's Security tab.
Agent Wars 2.8.5
A turn-based grand strategy game on a real-Earth hex map. Your opponents are large language models you choose through OpenRouter. Coding agents wrote the code; the story is told in the Agent Wars series in Standing Orders.
Downloads
| File | For |
|---|---|
agent-wars-2.8.5-windows-x64.zip |
Windows, x64 |
agent-wars-2.8.5-macos-arm64.zip |
macOS on Apple silicon |
agent-wars-2.8.5-linux-x64.tar.gz |
Linux, x64 |
SHA256SUMS.txt |
SHA-256 checksums for the three archives |
These are unsigned side-load builds, so Windows and macOS warn before the first launch.
- Windows: unzip, then run
Agent Wars v2.8.5.exe. If SmartScreen stops it, choose More info, then Run anyway. - macOS: unzip, then open
Agent Wars v2.8.5.app. If macOS blocks it, open System Settings > Privacy & Security and choose Open Anyway. - Linux: extract the archive, then run
./agent-wars. That launcher handles Chromium's sandbox when the archive can't keepchrome-sandboxowned by root. On Ubuntu 23.10 and later, where AppArmor blocks unprivileged user namespaces, it starts without the sandbox and says so.
To check a download, compare its SHA-256 with the line in SHA256SUMS.txt: Get-FileHash <file> in PowerShell, shasum -a 256 <file> on macOS, or sha256sum -c --ignore-missing SHA256SUMS.txt on Linux.
Before you play
- Bring your own OpenRouter key. Start a match. The console on the right starts collapsed; click Command and open a commander's card. Paste that opponent's key, choose a model, and click Start. Each opponent has its own key. A new game fills only the first opponent from the key you used last. OpenRouter bills your account for the commanders' model calls. Without a key and a model on at least one commander the app still runs, Start stays off, and that opponent makes no model calls. The key stays on your computer and is sent only to OpenRouter (SECURITY.md).
- Map imagery needs an internet connection. Map tiles come from Esri and OpenStreetMap.
- Non-commercial use. The app ships earth data under non-commercial terms, so the application as distributed is for non-commercial use. See THIRD-PARTY-NOTICES.md.
How a match plays is in doc/how-to-play.md.
What's in 2.8.5
This build carries the 2.8 line. The sections below are the changes from 2.8.0 through 2.8.5.
2.8.5
- Hex control. The line names the controller with that side's short name. A side holding its own home reads Iraq (home). Another side's home reads Iraq (W. Turkey home). Overlapping homes list every short name in seat order, such as W. Turkey (Iraq & W. Turkey homes). A hex that is not a home names only the controller. Neutral stays Neutral.
2.8.4
- Side names. A short name that would otherwise be a single initial, or a cut that leaves an unclosed parenthesis, is now a letter form of the full home name. South & east China, Taiwan reads SECT. Tasman (Victoria, Tasmania, NZ) reads TVTNZ. East stays East. The full name of such a home ends with that letter form in parentheses, such as South & east China, Taiwan (SECT). A match saved before the abbreviation was added still shows the name it saved, and the short names stay the letter form.
- Runtime. The packaged app runs on Electron 40.10.6.
2.8.3
- Turn report. After Ready, each side's section says how many hexes that side lost this turn, and to whom. The number is the total for the turn. The other sides are named once, in alphabetical order, and you come first when you are one of them. An opponent's short name keeps its numbered flag in front of the name. A side that only captured hexes has no section of its own. Updates does not list those hex changes. Deployments, and a battle outside your vision, stay under Updates.
2.8.2
- Turn report. After Ready, each side's section says how many hexes that side lost this turn, and to whom, and how many it took, and from whom. The number is the total for the turn. The other sides are named once, in alphabetical order, and you come first when you are one of them. An opponent's short name keeps its numbered flag in front of the name. Updates no longer lists those hex changes again. Deployments, and a battle outside your vision, stay under Updates. The 2.8.3 section above is the report this build uses: it keeps the losses and drops the lines about hexes taken.
- New game and game over. The setup list scrolls to the top whenever that screen opens, and when a match ends while it is already open, so the result is in view. If the choices were hidden, that scroll happens when they are shown. Opening New game during a match clears the previous result.
2.8.1
- Commander popover. The API key field and the model list start at the same left edge as the reasoning list. Every label is right-aligned. Reasoning and Doctrine, labels and lists, share the line under the model. When a model has no reasoning levels, that list stays on the line, disabled, and reads "Model default".
- Starting a match. Start game and New game collapse the console. The tab you had selected stays selected, so the next click on that tab opens it. Planning still follows Auto-start AI: it turns on when that box is checked and at least one commander has a key and a model, and stays off otherwise. Choosing No on the no-model question leaves the console as it was.
- Observe. If Orders was selected, the console moves to Commanders. A collapsed console stays collapsed.
2.8.0
- One commander per AI side. Each card has its own API key, model, reasoning effort, and doctrine. Adding an opponent copies the previous opponent's commander settings, not its home. Observe only gives every side to a commander.
- Start and Stop. They sit at the top of the Command tab and apply to every commander. Start stays off until at least one commander has both a key and a model. Starting a match with no model selected asks first: "Start the game with no models set?"
- Ready while commanders plan. The button reads
AI: MM:SS (xN). N is how many commanders are still planning. - Messages. Opponent messages share one dialog, with a tab per AI side. A tab starts disabled and turns on when that side sends a message.
- Turn update. Losses are listed by side, with each unit's origin flag, then the hex lines and the other updates. The hex lines in this build are the 2.8.3 report above.
- How the match ends. Both maps offer Deathmatch, the default, which has no turn limit, and Most city hexes at turn limit, which lasts 20, 30, 40, or 50 turns.
Known limits
- There is no player-facing save slot or load list yet. SQLite keeps the match in progress on disk.
- Settings, Help, Save game, Load game, How to play, the Build and Forces tabs, and Replay on a turn report are placeholders in this version.
- On macOS, Quit closes the window and the app stays in the dock.
- The macOS build is for Apple silicon only, and it hasn't been opened on a Mac yet, so its first-launch steps are untested.
- Model quality varies. A model without tool calls plays without the planning tools.
- This is mostly a personal R&D project. Issues and pull requests are welcome; responses and acceptance are best-effort. Security reports go through the repository's Security tab.
Agent Wars 2.6.0
A turn-based grand strategy game on a real-Earth hex map. Your opponent is a large language model you choose through OpenRouter. Coding agents wrote the code; the story is told in the Agent Wars series in Standing Orders.
Downloads
| File | For |
|---|---|
agent-wars-2.6.0-windows-x64.zip |
Windows, x64 |
agent-wars-2.6.0-macos-arm64.zip |
macOS on Apple silicon |
agent-wars-2.6.0-linux-x64.tar.gz |
Linux, x64 |
SHA256SUMS.txt |
SHA-256 checksums for the three archives |
These are unsigned side-load builds, so Windows and macOS warn before the first launch.
- Windows: unzip, then run
Agent Wars v2.6.0.exe. If SmartScreen stops it, choose More info, then Run anyway. - macOS: unzip, then open
Agent Wars v2.6.0.app. If macOS blocks it, open System Settings > Privacy & Security and choose Open Anyway. - Linux: extract the archive, then run
./agent-wars. That launcher handles Chromium's sandbox when the archive can't keepchrome-sandboxowned by root. On Ubuntu 23.10 and later, where AppArmor blocks unprivileged user namespaces, it starts without the sandbox and says so.
To check a download, compare its SHA-256 with the line in SHA256SUMS.txt: Get-FileHash <file> in PowerShell, shasum -a 256 <file> on macOS, or sha256sum -c --ignore-missing SHA256SUMS.txt on Linux.
Before you play
- Bring your own OpenRouter key. Start a match, click Opponent on the console's tab rail, paste the key under Commander, choose a model, and click Run. OpenRouter bills your account for the opponent's model calls. Without a key the app still runs, but the opponent makes no model calls. The key stays on your computer and is sent only to OpenRouter (SECURITY.md).
- Map imagery needs an internet connection. Map tiles come from Esri and OpenStreetMap.
- Non-commercial use. The app ships earth data under non-commercial terms, so the application as distributed is for non-commercial use. See THIRD-PARTY-NOTICES.md.
How a match plays is in doc/how-to-play.md.
What's in 2.6.0
A new layout. The rules and saved matches are unchanged.
- The map takes the window. A top bar runs across the top, and a console docks on the right. On Windows and Linux, the app's menu bar (File, Edit, View, and so on) stays hidden until you press Alt.
- Top bar. The two sides, then Production, Forces, Your home, and Enemy home, then the date and the turn. In a battle it becomes the battle header: the battle's hex and beat, a bar comparing each side's sub-units, and Exit Battle.
- Game menu. New game, Offer tactical battles, and Quit are in a menu under the top bar's menu button.
- Console. Orders, Reports, and Opponent tabs, with Ready at the bottom. Opening the app onto a match that is still going expands the console on Opponent. Click the selected tab to fold the console to its rail and widen the map. Queued orders name their target hex, such as "→ E5 · 1h".
- Reports tab. Turn updates and the opponent's messages stay there after their toasts close.
- Opponent tab. Run, the API key, the model, and the reasoning effort, then the tool groups and the AI activity log, all on one tab. The line above Ready shows whether the opponent is planning, its model, and the match's cost.
- Selection panel. A bar at the map's bottom left names the selected hex and units and says what a double-click does next. Expand it to see the hex and each unit's orders. One reticle button there aims a ranged attack or an air strike: it stays pressed, in amber or purple, while you aim, and a second click stops aiming. It stays on screen, greyed out with the reason in its tip, when the selection can't use it.
- Map. + and − buttons at the bottom-right zoom the map. A toggle on the minimap's corner shows Weather, Tech, Control, Production, and Legend under it. Weather turns the weather icons on and off, and Tech turns on the view that holding T shows; with both on, a hex shows its tech and weather icons side by side. Selected units get a gold ring. Ranged and strike lines get arrowheads, and every order line gets a pale edge that keeps it readable on any terrain.
- New-game screen. The choices sit in a panel docked at the left, in Map, Forces, and Rules sections, beside a preview you can pan and zoom. Hide them to widen the map.
Known limits
- There is no player-facing save slot or load list yet. SQLite keeps the match in progress on disk.
- Settings, Help, Save game, Load game, How to play, the Build and Forces tabs, Replay on a turn report, and Add another opponent are placeholders in this version.
- On macOS, Quit closes the window and the app stays in the dock.
- The macOS build is for Apple silicon only, and it hasn't been opened on a Mac yet, so its first-launch steps are untested.
- Model quality varies. A model without tool calls plays without the planning tools.
- This is a personal R&D project. It doesn't take issues or pull requests; security reports go through the repository's Security tab.
Agent Wars 2.5.2
A turn-based grand strategy game on a real-Earth hex map. Your opponent is a large language model you choose through OpenRouter. Coding agents wrote the code; the story is told in the Agent Wars series in Standing Orders.
Downloads
| File | For |
|---|---|
agent-wars-2.5.2-windows-x64.zip |
Windows, x64 |
agent-wars-2.5.2-macos-arm64.zip |
macOS on Apple silicon |
agent-wars-2.5.2-linux-x64.tar.gz |
Linux, x64 |
SHA256SUMS.txt |
SHA-256 checksums for the three archives |
These are unsigned side-load builds, so Windows and macOS warn before the first launch.
- Windows: unzip, then run
Agent Wars v2.5.2.exe. If SmartScreen stops it, choose More info, then Run anyway. - macOS: unzip, then open
Agent Wars v2.5.2.app. If macOS blocks it, open System Settings > Privacy & Security and choose Open Anyway. - Linux: extract the archive, then run
./agent-wars. That launcher handles Chromium's sandbox when the archive can't keepchrome-sandboxowned by root. On Ubuntu 23.10 and later, where AppArmor blocks unprivileged user namespaces, it starts without the sandbox and says so.
To check a download, compare its SHA-256 with the line in SHA256SUMS.txt: Get-FileHash <file> in PowerShell, shasum -a 256 <file> on macOS, or sha256sum -c --ignore-missing SHA256SUMS.txt on Linux.
Before you play
- Bring your own OpenRouter key. Paste it on the Model tab, choose a model, and click Run. OpenRouter bills your account for the opponent's model calls. Without a key the app still runs, but the opponent makes no model calls. The key stays on your computer and is sent only to OpenRouter (SECURITY.md).
- Map imagery needs an internet connection. Map tiles come from Esri and OpenStreetMap.
- Non-commercial use. The app ships earth data under non-commercial terms, so the application as distributed is for non-commercial use. See THIRD-PARTY-NOTICES.md.
How a match plays is in doc/how-to-play.md.
What's in 2.5.2
- Armor stops. A world hex that is rugged, arctic, or city leads its Effects line with a double-down arrow and the words Armored Movement. A legal armor march lists Urban, Mountain, and Arctic on the Slower line for each of those kinds the route enters after the start, including the destination. One hex can add more than one of those words. Weather stays on that line. A legal march does not also say Blocked.
- Blocked terrain. When the hovered cell is terrain this unit cannot enter, the preview says Blocked and names that terrain. Every other illegal march, including a cell that is merely out of reach, says Blocked: Unreachable.
- The loaded map. The strategic prompt says Global Earth map at H3 resolution 1 on the global map. On a regional map it names that map at that map's strategic resolution.
Known limits
- There is no player-facing save slot or load list yet. SQLite keeps the match in progress on disk.
- The macOS build is for Apple silicon only, and it hasn't been opened on a Mac before this release, so its first-launch steps are untested.
- Model quality varies. A model without tool calls plays without the planning tools.
- This is a personal R&D project. It doesn't take issues or pull requests; security reports go through the repository's Security tab.
Agent Wars 2.5.1
The first public release of Agent Wars, a turn-based grand strategy game on a real-Earth hex map. Your opponent is a large language model you choose through OpenRouter. Coding agents wrote the code; the story is told in the Agent Wars series in Standing Orders.
Downloads
| File | For |
|---|---|
agent-wars-2.5.1-windows-x64.zip |
Windows, x64 |
agent-wars-2.5.1-macos-arm64.zip |
macOS on Apple silicon |
agent-wars-2.5.1-linux-x64.tar.gz |
Linux, x64 |
SHA256SUMS.txt |
SHA-256 checksums for the three archives |
These are unsigned side-load builds, so Windows and macOS warn before the first launch.
- Windows: unzip, then run
Agent Wars v2.5.1.exe. If SmartScreen stops it, choose More info, then Run anyway. - macOS: unzip, then open
Agent Wars v2.5.1.app. If macOS blocks it, open System Settings > Privacy & Security and choose Open Anyway. - Linux: extract the archive, then run
./agent-wars. That launcher handles Chromium's sandbox when the archive can't keepchrome-sandboxowned by root. On Ubuntu 23.10 and later, where AppArmor blocks unprivileged user namespaces, it starts without the sandbox and says so.
To check a download, compare its SHA-256 with the line in SHA256SUMS.txt: Get-FileHash <file> in PowerShell, shasum -a 256 <file> on macOS, or sha256sum -c --ignore-missing SHA256SUMS.txt on Linux.
Before you play
- Bring your own OpenRouter key. Paste it on the Model tab, choose a model, and click Run. OpenRouter bills your account for the opponent's model calls. Without a key the app still runs, but the opponent makes no model calls. The key stays on your computer and is sent only to OpenRouter (SECURITY.md).
- Map imagery needs an internet connection. Map tiles come from Esri and OpenStreetMap.
- Non-commercial use. The app ships earth data under non-commercial terms, so the application as distributed is for non-commercial use. See THIRD-PARTY-NOTICES.md.
How a match plays is in doc/how-to-play.md.
What's in 2.5.1
- Stop a running opponent plan. Turning Run off aborts an OpenRouter call that is still going. If the turn has not resolved, Ready can resolve it without that plan. If the turn already played back, Ready unlocks and the next turn does not use that plan.
- Change the model. Changing the selected model stops the current plan. If Run is still on and Ready is still waiting, planning starts again with the new model.
- New during a match. New works during strategic planning, tactical planning, and resolution playback. The tactical battles list and the annihilation result still have to be answered first. The banner follows the Global or Regional tab.
- Leave a battle. Exit Battle stops that battle's planning, including a model call. A world-map plan that is already running keeps going.
- Activity log. A retried model call says so, and a stop says why (Run off, model change, new game, or leaving the battle).
Known limits
- There is no player-facing save slot or load list yet. SQLite keeps the match in progress on disk.
- The macOS build is for Apple silicon only, and it hasn't been opened on a Mac before this release, so its first-launch steps are untested.
- Model quality varies. A model without tool calls plays without the planning tools.
- This is a personal R&D project. It doesn't take issues or pull requests; security reports go through the repository's Security tab.