Building a CLI with go-tool-base, part 4: an AI dungeon master
Build an AI dungeon master in Go: keep the model to prose only by putting the rules in the system prompt and the mechanics in typed tool calls.


Build an AI dungeon master in Go: keep the model to prose only by putting the rules in the system prompt and the mechanics in typed tool calls.

Expose an existing Go CLI to AI agents over MCP without writing any AI code, using built-in commands. The agent reach equals the CLI reach.

Configuration for a Go CLI: precedence of flags over env over files, per-command embedded defaults, layered config merging and a strict mode.

Install gtb, scaffold a releasable Go project, understand the generated and owned file split, then add your first command and run it.

Exporting the latest revision of every MediaWiki page from a PostgreSQL backend, joining through the slots table, and what to do next.
Piping ambient audio into Discord on Linux for a tabletop game: virtual null-sink and loopback modules wired up through pavucontrol.

Encrypting an additional drive on Linux with LUKS: partition it, generate a keyfile, encrypt it and mount it automatically at boot.

Setting up xRDP on Ubuntu 18.04: install it, open port 3389, and suppress the colord password prompt that greets every single login.
A Dell D6000 dock randomly powering down on Ubuntu 18.04, where the real cause turned out to be PulseAudio triggering USB autosuspend.

Sending mail from a Gmail alias in Evolution, which lacks OAuth2 for SMTP-only accounts, without Google refusing the message outright.