Kairos (gitlab.com/tek.cat/kairos) is a Flutter app for tracking astronomical time that builds for both Android APK and web WASM. Every change needs testing on both targets β a computation fix, a rendering tweak, a notification check on a physical device. Doing all of it manually gets slow when youβre moving fast.
The release server is a Python FastMCP service running on localhost that exposes the Kairos build and deploy pipeline to Claude Code as a single tool call: request_release. The pipeline runs six stages β GIT_COMMIT β GIT_PUSH β WEB_BUILD β APK_BUILD β ADB_INSTALL β UPLOAD β DONE β with state tracked in SQLite so interrupted builds are never silently treated as complete. Git stages are serialized to avoid partial commits; build and deploy stages restart immediately on a new request, most recent wins. Each feature branch can get its own worktree and preview port, which made screenshot diffing practical: Claude Code builds two branches, takes screenshots via the Playwright MCP, and compares them without any manual switching.
The ADB connection runs wirelessly over WireGuard, kept alive by a background task, installing silently with a notification rather than launching the app directly. A release cycle that used to be five manual steps is now one tool call mid-conversation. The full source is in the Kairos repository (gitlab.com/tek.cat/kairos) under release_server/.