agents.mp4
A terminal built for multi-agent AI coding workflows. Run Claude Code, Codex, or Gemini in parallel and see at a glance which agents need your attention. See more in my article.
Built on ghostty-vt for terminal emulation and SDL3 for rendering.
Running multiple AI coding agents is the new normal. But existing terminals weren't built for this:
- Agents sit idle waiting for approval while you're focused elsewhere
- Context switching between tmux panes or tabs kills your flow
- No visibility into which agent needs attention right now
Architect solves this with a grid view that keeps all your agents visible, with status-aware highlighting that shows you instantly when an agent is awaiting approval or has completed its task.
Warning
This project is in the early stages of development. Use at your own risk.
The application is experimental and may have bugs, stability issues, or unexpected behavior.
- Status highlights β agents glow when awaiting approval or done, so you never miss a prompt
- Named sessions β app bundles run as Stable or Scratch channels; each launch gets a named session such as
Stable / 𦦠Happy Otter; reopen that session by name to restore terminal working directories and pre-fill saved agent resume commands for manual restart - Dynamic grid β starts with a single terminal in full view; press βN to add a terminal after the current one, and closing terminals compacts the grid forward
- Grid view β keep all agents visible simultaneously, expand any one to full screen
- Story viewer β inside an Architect terminal, run
architect story <filename>to open a scrollable overlay that renders PR story files with prose text and diff-colored code blocks - MCP session spawning β run
architect-mcpfrom an MCP client to ask the running Architect app to create a terminal session in a requested working directory - Reader mode (βR) β open a centered markdown reader for the selected terminal's history (works in full view and grid) with live updates, bottom pinning, incremental search (βF, Enter/Shift+Enter), markdown tables with inline cell styling (bold/italic/code/links/strikethrough), task checkboxes (emoji), clickable links, shared draggable scrollbar, and left-to-right gradient separators before command prompts (OSC 133 + fallback heuristics)
- Smooth animated transitions for grid expansion, contraction, and reflow (cells and borders move/resize together)
- Wakeable idle input handling keeps typing responsive after short idle periods instead of waiting on a fixed sleep window
- Keyboard navigation: βG toggles between full and grid view, Enter expands the focused grid tile, arrow keys move focus in grid view (with a brief wave animation on the destination terminal), βArrow moves between slots from full view, βN adds, βW closes a terminal (restarts if it's the only terminal), βR opens reader mode, β/ opens shortcuts; quit with βQ or the window close button
- Per-cell cwd bar in grid view reserves space, and terminal dimensions track grid/full mode so content wraps inside the visible area
- Scrollback with trackpad/wheel support and an auto-hiding draggable scrollbar in terminal views
- OSC 8 hyperlink support (Cmd+Click to open)
- Replies to OSC 4/10/11 color queries using the live terminal palette/default colors so Codex and similar CLIs do not stall on startup probes
- Kitty keyboard protocol for enhanced key handling
- Persistent window state and font size within each named session
Download the latest release from the releases page.
For Apple Silicon (M1/M2/M3/M4):
curl -LO https://github.com/forketyfork/architect/releases/latest/download/architect-macos-arm64.tar.gz
tar -xzf architect-macos-arm64.tar.gz
xattr -dr com.apple.quarantine "Architect (Stable).app" "Architect (Scratch).app"
open "Architect (Stable).app"For Intel Macs:
curl -LO https://github.com/forketyfork/architect/releases/latest/download/architect-macos-x86_64.tar.gz
tar -xzf architect-macos-x86_64.tar.gz
xattr -dr com.apple.quarantine "Architect (Stable).app" "Architect (Scratch).app"
open "Architect (Stable).app"Note:
- These GitHub release archives are ad-hoc signed so macOS can launch them locally, but they are not Developer ID signed or notarized.
- Clear the quarantine attribute before first launch, or macOS may block the app.
- The archive contains
Architect (Stable).appandArchitect (Scratch).app. You can launch them withopenor runContents/MacOS/architectfrom inside either bundle. Thearchitect-mcphelper is built from source but omitted from release app bundles unless the bundle script is called with--with-mcp. - Not sure which architecture? Run
uname -m- if it showsarm64, use the ARM64 version; if it showsx86_64, use the Intel version.
Prerequisites: Xcode Command Line Tools must be installed:
xcode-select --installInstall via Homebrew (builds from source):
# Tap the repository (note: requires full repo URL since the formula is in the main repo)
brew tap forketyfork/architect https://github.com/forketyfork/architect
# Install architect
brew install architect
# Copy the apps to your Applications folder
cp -r "$(brew --prefix)/opt/architect/Architect (Stable).app" /Applications/
cp -r "$(brew --prefix)/opt/architect/Architect (Scratch).app" /Applications/
# MCP clients can use the helper on PATH
architect-mcpOr install directly without tapping:
brew install https://raw.githubusercontent.com/forketyfork/architect/main/Formula/architect.rb
cp -r "$(brew --prefix)/opt/architect/Architect (Stable).app" /Applications/
cp -r "$(brew --prefix)/opt/architect/Architect (Scratch).app" /Applications/See docs/development.md for the full development setup. Quick start:
nix develop
just buildSource builds install both executables under zig-out/bin/: architect and architect-mcp.
For local macOS app bundle launches from this checkout:
make apps # rebuild .tmp/current-apps/Architect (Stable|Scratch).app
make stable # new Stable session
make stable SESSION=HappyOtter
make scratch # new Scratch session
make sessions # list saved named sessionsTo add hooks for Claude Code, Codex or Gemini, use the injected architect helper available inside Architect terminals:
architect hook claude
architect hook codex
architect hook geminiThe built architect app binary accepts launch flags such as --instance and --session. It does not provide the hook, notify, or story helper subcommands unless you are inside an Architect-managed terminal where the injected helper is first on PATH.
architect-mcp is a stdio MCP server for local clients. It exposes one tool, spawn_session, which forwards the request to the running Architect app. It does not launch Architect by itself.
spawn_session arguments:
{
"cwd": "/absolute/path/to/worktree",
"command": "codex",
"display_name": "Issue 291"
}cwd is required. command and display_name are optional. On success, the tool returns structured content with status, session_id, and slot_index. If Architect is not running, the grid is full, cwd is invalid, or spawning fails, the tool returns an MCP tool error with a stable code and message.
Source builds place the helper at zig-out/bin/architect-mcp. Release app bundles omit it by default. For Homebrew installs, architect-mcp is installed on PATH.
Architect stores configuration in ~/.config/architect/:
config.toml: read-only user preferences (edit viaβ,).instances/<channel>/<session>/persistence.toml: runtime state (window position/size, font size, terminal cwds), managed automatically.instances/<channel>/<session>/instance.toml: display metadata for named sessions.
Common settings include font family, theme colors, grid font scale, and logging minimum severity ([logging].min_level). On macOS, structured app logs are written to ~/Library/Logs/Architect/ with size-based rotation at 10 MiB, including startup/shutdown markers and grid/full view transition events at INFO. The grid size is dynamic and adapts to the number of terminals. Remove the files to reset to the default values.
- App won't open (Gatekeeper): run
xattr -dr com.apple.quarantine "Architect (Stable).app" "Architect (Scratch).app"after extracting the release. - Font not found: ensure the font is installed and set
font.familyinconfig.toml. The app falls back toSFNSMonoon macOS. - Missing symbol glyphs: fallbacks try the bundled Symbols Nerd Font, then
Arial Unicode MS, thenSTIXTwoMath(if available) before emoji. - Emoji alignment: single-codepoint emoji are centered using glyph metrics; if they appear off, try a different primary font or font size.
- Reset configuration: delete
~/.config/architect/config.tomland~/.config/architect/instances/. - Crash after closing a terminal: update to the latest build; older builds could crash after terminal close events on macOS.
- Known limitations: emoji fallback is macOS-only; keybindings are currently fixed.
docs/ai-integration.md: set up Claude Code, Codex, and Gemini CLI hooks for status notifications, plus thearchitect-mcpspawn_sessioninterface.docs/ARCHITECTURE.md: architecture overview and system boundaries.docs/configuration.md: detailed configuration reference forconfig.tomlandpersistence.toml.docs/development.md: build, test, and release process.CLAUDE.md: agent guidelines for code assistants.
Architect is part of a suite of tools I'm building for AI-assisted development:
- Stepcat β Multi-step agent orchestration with Claude Code and Codex
- Marx β Run Claude, Codex, and Gemini in parallel for PR code review
- Claude Nein β macOS menu bar app to monitor Claude Code spending
MIT