Claude Orchestra banner
emmanuellion emmanuellion

Claude Orchestra

AI community

Description

Run multiple Claude Code instances in parallel from one web interface. Terminal multiplexer for AI coding agents. 100% local, zero telemetry.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Claude Orchestra

**The control plane for a swarm of [Claude Code](https://docs.anthropic.com/en/docs/claude-code) agents.**

Orchestra runs N Claude Code agents at once and gives you the layer a terminal cannot provide: sessions that outlive the browser tab, agent state that comes from Claude Code's own hooks instead of guesswork on the ANSI stream, permission prompts you can answer from a phone, and a Race Mode that runs the same task in isolated git worktrees so you can compare the diffs and adopt a winner.

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Node.js](https://img.shields.io/badge/Node.js-20+-339933?logo=node.js&logoColor=white)](https://nodejs.org/) [![Tests](https://img.shields.io/badge/tests-88%20passing-brightgreen)]()


Why not just several terminals?

A tmux window or four terminal tabs will happily run four `claude` processes. Four things stay out of reach when you do, and they are the reason this project exists.

**1. A tty carries bytes, not events.** Watching the output stream, "is this agent working or waiting?" is a guess made by pattern-matching escape sequences, and it is wrong often enough to be useless. Claude Code emits structured hook events (`PreToolUse`, `Notification`, `Stop`, ...) that say exactly which tool is running, which model, what it cost, and when the turn ended. Orchestra installs a hook that posts those events back over HTTP, so status is reported, never inferred. The v1 heuristics are gone entirely.

**2. A tty dies with its client.** Close the tab, lose the shell. Orchestra owns the PTY; a browser is only an attached viewer. Closing a tab detaches, and by default a Claude session detached with nobody watching survives forever (`ORCHESTRA_DETACH_TTL=0`). Reattaching replays only the scrollback you missed, addressed by byte offset, not the whole screen.

A PTY still dies with the server that owns it, and no amount of design changes that. What Orches