Native macOS orchestrator for running Claude Code, Codex, Cursor, Gemini, and plain shells in parallel across git worktrees and remote hosts with live agent status tracking.
At a Glance
About diri
diri is a native macOS desktop application built by Cristi Crețu that lets developers run multiple AI coding agents simultaneously — Claude Code, Codex, Cursor, Gemini, and plain shells — each in its own real terminal with a real PTY. It is open-source under the Apache 2.0 license and available via Homebrew or a signed/notarized DMG download. The latest release is v0.4.5, published in August 2026.
What It Is
diri is a multi-agent orchestration layer for the macOS desktop. Rather than switching between terminal windows to check on individual AI coding sessions, diri groups them into a single interface and surfaces a live status for each — working, needs-you, or done — by reading what each agent actually painted on its screen. This means a developer can supervise ten concurrent agent sessions without reading ten terminals.
Architecture: Two Processes, One Wire Protocol
diri separates concerns cleanly between a visible app and a headless daemon:
diri— the desktop app, written in Rust using the GPUI framework from Zed. Owns the window, sidebar, terminal renderer, command palette, and usage accounting.dirijord— a headless Swift daemon launched by the app but outliving it. Owns PTYs, child agent processes, an offset-addressed output log per session for detach and replay, a headless terminal emulator for status detection, the session registry, worktrees, and the control socket.
A Rust port of the engine (diri/crates/diri-engine) is in progress to enable Linux and Windows support, but the released app currently runs the Swift daemon.
Session Persistence and Agent Orchestration
A key design principle is that sessions outlive the app. The background daemon owns the PTYs, so quitting and reopening diri leaves all sessions intact — similar to tmux persistence. Additionally, an MCP server built into diri lets a running agent spawn another agent, watch it, read its output, and answer its prompts, enabling agent-to-agent orchestration workflows.
Agent Support and Extensibility
First-class status detection and resume are supported for Claude Code and Codex. Cursor and Gemini run with partial support, and any other tool runs as a plain terminal with running/exited status. Agent support is defined as data, not code: each agent is a single JSON manifest file describing how to spawn it, how to resume, which keys approve or deny a prompt, and the screen rules that determine its status. Adding a new agent requires copying the closest manifest and adjusting it — no Swift or Rust required.
Update: v0.4.5
The latest release, diri 0.4.5, was published on August 6, 2026. The project was created in early August 2026 and has moved quickly through several releases. The repository is written primarily in Rust with Swift for the daemon layer, and the project roadmap includes a full Rust engine port to bring Linux and Windows support. The app is a universal build supporting both Apple Silicon and Intel Macs, requires macOS 15 or newer, and self-updates from GitHub Releases.
Community Discussions
Be the first to start a conversation about diri
Share your experience with diri, ask questions, or help others learn from your insights.
Pricing
Open Source
Fully free and open-source under the Apache 2.0 license. Download via Homebrew or DMG.
- Run Claude Code, Codex, Cursor, Gemini, and plain shells in parallel
- Live agent status detection
- Session persistence via background daemon
- Git worktree support
- Remote host support via SSH + tmux
Capabilities
Key Features
- Run Claude Code, Codex, Cursor, Gemini, and plain shells in parallel
- Live agent status: working, needs-you, or done
- Sessions outlive the app via background PTY daemon (dirijord)
- tmux-like session persistence across app restarts
- Git worktree support for project isolation
- Remote host support via SSH + tmux
- MCP server for agent-to-agent orchestration
- Real PTY per session with full terminal emulation
- Agent manifests as JSON — no code required to add new agents
- Universal build for Apple Silicon and Intel Macs
- Self-updating via GitHub Releases
- Signed and notarized macOS app
- Homebrew cask installation
