9 months building an advanced StarCraft reporting tool with Go and Claude
By Dillip Chowdary • Jul 21, 2026 • Source: HN Claude/Codex/Fable
I'll pull the source article so the write-up sticks to real details rather than inventing numbers or claims.Mariano Gappa spent nine months, from a first commit on September 30th 2025 through July 2026, building **screpdb**, an open-source StarCraft: Brood War reporting tool in **Go**, with heavy help from **Claude**. The idea came from weekend Zoom sessions with a longtime friend: ask natural-language questions about a just-played game (opener habits, alliances, when to put up turrets against a given Zerg). Early work used **screp** (András Belicza’s Go replay parser) to turn `.rep` files into a **SQLite** store behind an **MCP** server so Claude could query it. After a few sessions, chatbot-driven charts felt wrong for live play, so the project shifted from Q&A to a full local reporting dashboard.
Replays only store the command stream, not engine state, so resource totals, unit deaths, and whether an order actually completed are not in the file. **screpdb** recovers higher-level meaning with several layers: **scmapanalyzer** carves maps into base polygons (starts, naturals, mineral-only flags, clock positions) so events can be narrated as cannon rushes, manner pylons, proxy gates, offensive nydus, or cliff drops; production noise is reduced by tying units to producers and dropping unused gateways/barracks; a short per-player economy sim over the first minutes drops unaffordable spam and backtracks with Brood War prerequisite rules so openers like “9 Pool” or “10 Hatch” stay honest; and skill proxies go beyond APM into viewport multitasking, production cadence, and first-unit efficiency. Alliance timelines, stage-and-watch into the real client, player fingerprints (no hotkeys, no upgrades), CLI ingest, headless mode, and a documented OpenAPI surface sit on top. Ingestion throughput is benchmarked on every merge so the tool stays usable over thousands of replays.
Advertisement
Tech Pulse Daily
Get tomorrow's pulse first
Join engineers who read Tech Pulse before stand-up. Free, weekday mornings.
For engineers, the useful lesson is how AI-assisted Go work scales past a prototype and then fails in production-shaped ways. Models shipped correct-looking, test-passing code that still full-scanned the commands table without composite indexes, recomputed expert timings on every page load, and re-scanned signals already stored. Semantic detectors that models cannot invent from vibes required hand labels: Gappa watched and labelled 171 replays to train pattern markers. The stack is deliberately boring and inspectable—parser, relational store, HTTP API, optional MCP—so a backend engineer with weak UI skills could still ship a real product surface as model quality improved from late 2025 into 2026.
The Brood War tooling market already has history. **BWChart** (classic since 2003, last update 2017) and **SCRChart** (2019 Java heir, later abandoned) own traditional APM/command charts. Belicza’s **RepMastered** is a large web analyzer on the same **screp** foundation, with bulk upload, filterable search, and in-browser APM/EAPM, build-order, and animated map views over a database reported at over 100 million replays. **vespene.gg** (2026) reverse-engineers SC:R binaries for browser playback, live metrics, AI coaching, and more. Gappa positions **screpdb** as complementary: local, free (MIT), session-oriented reporting with higher-level session semantics rather than another cloud replay archive.
Practical next step is to install it and run the bundled sample pack before wiring your own library—Scoop on Windows, Homebrew on macOS, or the one-line installer on Linux—then use `screpdb ingest` and the OpenAPI dashboard API if you want custom tooling. Watch whether the imperfect detectors (wall-only Gateways dropped, misnamed openers, map-heuristic false positives) improve as more players file issues and share labelled edge cases, and whether the same command-stream-plus-simulation pattern shows up in other deterministic games that lack a headless state API.
Advertisement
🔎 More interesting news
- A global workspace in language models Interpretability Jul 6, 2026 New interpretability…
- Product Jun 30, 2026 Introducing Claude Sonnet 5 Sonnet 5 delivers frontier performance…
- Is OpenCode and Kimi K3 better than Claude Code?
- Show HN: Provena: Open-Source Library for AI Agent Context Governance
- Today's full Tech Pulse briefing →