1 · Install and get past the first-launch warning
Grab your platform's build from the releases page. The builds are unsigned, so every OS challenges the first launch. That's the operating system talking, and it happens once.
- Windows: SmartScreen shows “Windows protected your PC.” Click More info, then Run anyway.
- macOS: the first open is blocked because the app is not notarized. Open System Settings → Privacy & Security, scroll to the message about the blocked app, and click Open Anyway. If macOS claims the app is “damaged,” clear the quarantine flag in Terminal:
xattr -dr com.apple.quarantine "/Applications/Hexes on Automatic.app". - Linux: mark the AppImage executable (
chmod +xor Properties → Permissions), then run it. Some distributions need the FUSE 2 library (libfuse2).
2 · Generate
The app opens with a seed already rolled and a region already surveyed, so there is a map on screen before you touch anything.
- Type a seed, or hit the die to roll one. The same seed and knobs always rebuild the same region.
- Set Columns and Rows for the map size (the default is 18×14 at six miles per hex).
- Slide Water, Rugged and Moisture to shape the geography, and Settlements and Sites to set how peopled it is.
- Click Generate. Terrain, rivers, settlements, dungeon sites, landmarks, roads and faction stubs land in one pass.
3 · Read the region
- Click any hex for its biome, features, obstacles and a short field description.
- The gazetteer panel lists settlements with their size and hex, dungeon sites, and every road with distance in miles and walking days.
- Use − / + / Fit to zoom, and the legend toggle in the corner when you need the color key.
4 · Polish, if you want the directors
This step is optional. Skip it and every place keeps its deterministic name.
- Open the Local AI panel. The app looks for Ollama, LM Studio or a llama.cpp server you already run; if there is nothing to find, one click downloads a small model onto the app's own llama.cpp runtime after you approve the size and license.
- Click Polish Region. Aldrith Vane renames the region and its places and writes gazetteer notes; Bram Half-Ear names the roads, flags the hazards and stages encounters from a shortlist matched to the terrain.
- Every pick is validated against the map. A rejected pass falls back to the deterministic result and tells you so.
5 · Export to Vault
The vault is the point: an open folder of markdown, specified publicly, readable in Obsidian with zero apps installed.
- Click Export to Vault and pick a folder — a new one, or an existing Campaign Vault.
- Hexes writes
regions/<region>/region.mdwith the travel table, one note per interesting hex, stubs for settlements, sites and factions, its machine state understate/, and acommissions/<site>.request.jsonwork order for every dungeon site. - Open the folder in Obsidian. Anything you write outside the generated fences is yours and survives every re-export.
- Later, Open from Vault lists the regions saved in a vault and reopens one; Save JSON / Open JSON carry a region as a single file.
Desktop vs. browser: only the desktop app writes to your folders, so Export to Vault and Open from Vault live there. In a plain browser you can still generate, polish and use Save JSON / Open JSON.
Something broke? Report it on the public issue tracker, say it is Hexes, and include the seed.