A production-used AI tooling stack built around Claude Code, Telegram, and autonomous agents, made to keep AI-assisted software work reliable enough to run a real one-person studio.
One idea runs through most of these. Prompting an agent to behave gets you a good chance; it does not get you a guarantee. So the reliable pieces here move the rule out of the prompt and into something mechanical that cannot drift. Inline Relay enforces review-thread format in a deterministic CLI because careful prompting kept corrupting it. Model Output Protocol gates every outbound message through a filter instead of trusting a system prompt to hold. Patchbay Voice treats spoken audio as best effort and puts the guarantee in a fallback chain, not in hoping the first synthesis call succeeds. Prompting for a chance, enforcement for the guarantee.
What building these involved
- The messy parts of AI-assisted development that do not show up in demos: context routing, failure recovery, tool boundaries, evaluation, memory, and human review surfaces.
- Thin, durable interfaces around fast-moving model capabilities, instead of treating models as magic.
- Turning personal workflow pain into reusable software: plugins, skills, bridges, hooks, logs, and protocols.
Plugins for Claude Code
Pink Lady Apple /Apple Release Toolchain
The Apple shipping toolchain, extracted from Synodic Kit once it outgrew a shared home. Five skills take an iOS or macOS app from an unregistered bundle ID to a build on a tester’s phone, encoding the fastlane version cliffs, App Store Connect API quirks, and TestFlight traps that each cost an afternoon the first time. Shipped with placeholder values, so it is meant to be lifted, not just read. Read more →
Inline Relay /Code Review Plugin
A Claude Code plugin for code review conversations that live inside the source files themselves. AUTHOR comments, AGENT responses, threads versioned with git, mechanical formatting enforced by a deterministic CLI. Read more →
Output filtering
Model Output Protocol /Output Filter
A filtering layer that sits between an agent and its human and enforces communication rules before any message ships. The name, Model Output Protocol, is a wink at MCP and nothing more. Voice and behavior rules move out of the system prompt, where they decay, into a gate every message passes through on its way to me. Built for Patchbay Relay’s cc-sdk-mop harness. Read more →
Bridges and Interfaces
Patchbay Relay /Telegram Bridge
The Telegram bridge that puts AI coding agents on a phone. Multi-project routing, agent identity loading, crash recovery, and a pluggable harness layer (cc-sdk, cc-sdk-mop, pi). Alpha, and active again: I paused it for Hermes but I’m reviving it as a messaging-only bridge, and the writeup is the clearest tour of the headless-first design. Read more →
Patchbay Voice /iOS Voice Client

Hold-to-talk iOS client for Patchbay Relay. Record a voice request, get a spoken reply — sessions are scoped to repos so each project keeps its own context. A single write directory limits where Claude can save files. Read more →
Patchbay Go /Cloudflare Pages
A tiny Cloudflare Pages worker that wraps custom URL schemes (obsidian://, things://, calshow:) in plain https:// links, so an agent can send a one-tap link straight into a native app from a chat message. Built for the headless Telegram workflow, useful anywhere a chat app refuses to render a custom scheme. Read more →
Code Quality
SwiftSkim /SwiftLint Toolkit
Sixteen custom Swift lint rules built on SwiftSyntax AST analysis, plus three smart CLI wrappers that find their config automatically — every rule defined once in a registry the enforcer reads at runtime. Architectural constraints that text-pattern linters cannot express. Read more →
Personal Agents
Fanta /Multi-Agent System
A fleet of specialized Claude Code agents with their own identity, memory, and heartbeat, talking to each other through a local message bus and reporting through Telegram and Cobalt (my Obsidian vault). It ran my studio and personal life for months; the same role-separation-by-chat idea now runs on Hermes, and Fanta is dormant while I consider bringing it back messaging-only. Read more →
The whole stack lives mostly on one always-on Mac in another room of the house, run headlessly. Every interaction with it goes through Telegram. The system is opinionated to a specific person, but the patterns are portable.
For the system-level writeup of how all these pieces compose into a working studio, see Running a software studio from a phone.