Case studies — macOS APP

Run dozens of Claude Code sessions on one canvas.

Free-form 2D workspace for multi-session AI development. Tauri, Rust, and raw PTY control.

AT A GLANCE

Platform Native macOS

Code-signed .app binary. Tauri v2, Rust backend, React frontend.

Terminal Engine xterm.js + PTY

Real PTY spawned per tile via Rust. Full Claude Code session in every terminal.

Spatial Model Infinite 2D Canvas

Pan, zoom, drag terminal tiles freely. Spatial layout for parallel work.

The system.

CodeGrid is a native macOS desktop app that turns multi-agent AI development from a linear, tab-switching chore into a spatial, parallel workflow.

Canvas Infinite 2D workspace

A free-form canvas where terminal tiles can be placed, moved, resized, and grouped spatially. Pan with middle-click or trackpad. Zoom in and out. Organize sessions by project, by task type, or by anything that makes sense to the developer, the canvas has no imposed structure.

PTY Control Real sessions, real control

Each terminal tile spawns a real PTY via the portable-pty Rust crate. Resize events, signal forwarding, exit detection, and clean teardown are all handled on the Rust side. xterm.js renders the terminal in the React layer with full VT100 compatibility.

Git Worktrees Sessions that don't collide

Each new session starts in an isolated git worktree, automatically created, named, and tracked. Multiple sessions on the same repository work in parallel branches without file conflicts or HEAD collisions. Worktrees are cleaned up automatically when sessions close.

Broadcast Fan-out to all agents

Cross-session broadcast sends a command or context snippet to every running session simultaneously via raw PTY injection. One instruction fans out to all running Claude Code agents. Critical for coordinating shared context updates or stopping all sessions at once.

Persistence Survives restarts

SQLite persistence layer stores canvas layout, session history, worktree mappings, and tile positions. Close the app, reopen it, sessions restore to their last known state. Worktree context is preserved.

Keyboard-first No mouse required

Global keyboard shortcuts to spawn new sessions, focus a tile by index, kill a session, and rearrange the layout, without touching the mouse. Designed for developers who live in the terminal and don't want to break flow to navigate a UI.

Rust-side PTY management.

The backend, written in Rust using the Tauri v2 command API, manages the full PTY lifecycle for every terminal tile. This is what makes CodeGrid feel native rather than like a web wrapper. → PTY spawn with shell inheritance and env passthrough → Resize events forwarded from xterm.js to PTY on canvas resize → SIGWINCH, SIGTERM, SIGINT forwarding per tile → Exit detection triggers worktree teardown and UI update → Output streams piped to xterm.js via Tauri event system

Why Tauri v2.

Electron was ruled out immediately, the memory footprint for an app spawning dozens of terminals would be untenable. Tauri v2 ships a code-signed native macOS binary, shares one WebView instance for the React UI, and gives direct access to system APIs from Rust without a Node.js process in between.

Binary characteristics

Distributed as — .app + .dmg Code signed — Yes, Apple Developer ID State storage — SQLite (local) Network dependency — None (fully offline-capable)

Technology.

Desktop Runtime Tauri v2

Backend Language Rust

UI Framework React

Terminal Renderer xterm.js

PTY Crate portable-pty

State Persistence SQLite

Isolation Git Worktrees

Platform macOS (native)

On the bench.

  • Tauri v2
  • Rust
  • React
  • xterm.js
  • portable-pty
  • SQLite
  • Git Worktrees
  • macOS (native)