Jeffrey JohnsonRSS

GBuild: One Orchestrator, Many Agents

By Jeffrey Michael JohnsonPublished: May 8, 20269 min read

I wrote a post a few days ago about wanting to switch between models depending on the task. That post was intentionally vague. This one is less so.

GBuild is a macOS desktop app, internal codename "Mother," that orchestrates a fleet of AI coding agents across an org from a single interface. Claude Code, OpenClaw, Hermes, others. The tagline is "Build anything. Smarter." The premise is the same thing I wrote about before: each frontier model is the best at something, and once you've had the best at a task you have to have it every time for that task until the model is dethroned. GBuild lets you assign Claude, ChatGPT, Gemini, Nano Banana Pro to different tasks and run many of them at once.

It's pre-release. The marketing site is live. The desktop app stays private until the core loop works. The waitlist is open.

GBuild mascot, G, in hearts mode

Two surfaces

The app has two modes.

Lattice is the default. Think of it as a browser shell: tabs, an omnibar that takes a prompt or a URL, and a Jarvis-style voice sidebar. Say "G, open three Claude Code sessions on PrayerMap" and hear status back. It's meant to feel calm. One surface, voice-first, everything reachable from a single bar.

Batcave was the power surface, hidden behind a puzzle icon. A responsive animated grid of 12+ live agent terminals rendered via xterm.js and WebGL. An org-level mission control dashboard tracking PRD-phase progress, agent activity, doc drift. A project dashboard. An "MD Heaven" document surface. The surface you opened when you were running a fleet and needed to see everything at once. (It didn't survive — see the update at the end of this post.)

The actual hard UI problem, which I haven't fully solved, is keeping 12 live agents legible at the same time. The grid scales. The information density does not scale gracefully. That's the work.

The stack

Electron 33 with a Rust sidecar ("mother-sidecar," roughly 150 Rust source files) communicating over JSON-RPC 2.0 on NDJSON stdio. Pluggable agent drivers. portable-pty for terminals.

Note

The build completed a full Tauri-to-Electron migration partway through development. Tauri's webview constraints were limiting the terminal rendering and WebGL pipeline. The migration was a real cost: weeks of replumbing IPC, build scripts, signing, packaging. I'd make the same call again, but I'd make it earlier.

The LLM router supports fallback tiers. Eight specialized agents run across lanes: an orchestrator, a code reviewer, a security reviewer, a tech lead, a health monitor, a test generator, a code simplifier, a Rust/Tauri specialist. The lanes are code, content, test, refactor, watcher, audience, and doc_drift.

Voice pipeline: whisper.cpp for STT (Metal-accelerated on Apple Silicon), Piper TTS with an AVSpeechSynthesizer fallback, turn detection, an OpenAI Realtime WebRTC path, and a cost ledger that tracks spend per voice interaction.

RAG layer: vector store, behavior graph, org graph, conversation history, query analyst, crawler, distiller. Bidirectional Obsidian sync (the vault is the shared state surface) plus Notion sync with OAuth, conflict resolution, redaction, and rate limiting.

MCP gateway with registry, sandbox, and scaffold. macOS Keychain for secrets. Append-only JSONL audit logging with daily rotation. Structured logging across all three layers (Electron, Rust sidecar, agent fleet).

The mascot

"G" is a chibi robot with a dark head and a rainbow G-shaped arc ring for a face frame. The arc eyes change state: hearts, sparkles, neutral, thinking, others. Seven behavioral states total, rendered live in 3D with custom shaders. You can play with G at gbuild.app/play.

GBuild app icon

The aesthetic target for the whole app is "video-game alive" with a reduced-motion toggle. The values ticker on the marketing site makes it explicit: calm by design, anti-bullying, anti-hate, inclusive by default, no weapons, no drugs, no discrimination, made for everyone.

Two SKUs

The build produces two packages: "full" at roughly 22 GB (bundled local models) and "lean" at roughly 250 MB (BYO API keys). The full SKU is a hard sell. A 22 GB download for a dev tool is a commitment. The lean SKU is the one most people will use, and that means the local-model features, which include the voice pipeline's offline mode, become gated behind a download that most users won't want.

I haven't resolved that tension. It might mean progressive download. It might mean the full SKU is enterprise-only. It's an open question.

Where it stands

Update: the numbers below are a May 2026 snapshot, kept as written. The SKU tension resolved itself the good way: a de-bundle pipeline now pulls the heavy models out of the app and rehydrates them at runtime, cutting the full download from 22 GB to under 4 GB. The commit count has passed 5,800. And the two-surface architecture described above did not survive contact with reality: a June audit retired the Batcave and the whole legacy shell in a 26,000-line deletion, so GBuild now ships one shell, Lattice, with the power surfaces returning as native Apps inside it. Current figures live in the case study.

~698 commits. Signed DMG builds exist. The marketing site (gbuild.app) runs Next.js 16 with React Three Fiber, GSAP, a Supabase waitlist, and the 3D mascot. The desktop app is in private development. Target is a public macOS release, but I'm not setting a date.

The GBuild case study has more on the architecture and the mascot design system. The mascot design page shows the full behavioral state machine.

What I keep coming back to

The conventional wisdom in AI tooling right now is that model capability is the bottleneck. Build a better model, get a better result. That's true at the frontier. But in practice, once you have access to several frontier models, the bottleneck shifts. It's not "which model is best?" It's "how do I coordinate six good models on one project without losing my mind?"

The orchestration layer, the legibility layer, the "show me what all my agents are doing right now in a way I can act on" layer: that's the thing that's missing. Not a better model. A better way to see and steer the models you already have.

That's what GBuild is trying to be. I don't know if it'll get there. But the shape of the problem is clear, and I'd rather be building the tool I keep wishing existed than waiting for someone else to ship it.

Occasional updates when I publish. No spam.