Skip to content

iandvt/architect

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

995 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Architect

Build status MIT License Zig

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.

Why Architect?

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.

Features

Agent-Focused

  • 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-mcp from 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)

Terminal Essentials

  • 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

Installation

Download Pre-built Binary (macOS)

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).app and Architect (Scratch).app. You can launch them with open or run Contents/MacOS/architect from inside either bundle. The architect-mcp helper 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 shows arm64, use the ARM64 version; if it shows x86_64, use the Intel version.

Homebrew (macOS)

Prerequisites: Xcode Command Line Tools must be installed:

xcode-select --install

Install 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-mcp

Or 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/

Build from Source

See docs/development.md for the full development setup. Quick start:

nix develop
just build

Source 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 sessions

Hooks

To 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 gemini

The 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.

MCP

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.

Configuration

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.

Troubleshooting

  • 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.family in config.toml. The app falls back to SFNSMono on macOS.
  • Missing symbol glyphs: fallbacks try the bundled Symbols Nerd Font, then Arial Unicode MS, then STIXTwoMath (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.toml and ~/.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.

Documentation

Related Tools

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

License

MIT

About

A flexible terminal grid for multi-agent AI workflows

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Zig 97.8%
  • Shell 1.2%
  • Python 0.3%
  • Makefile 0.3%
  • Nix 0.2%
  • Ruby 0.1%
  • Just 0.1%