Skip to main content
Harmony docs

Orchestrate coding agents across providers, on your machine

Harmony is a free desktop app (plus CLI and TUI) that opens coding-agent CLIs in side-by-side tabs on your machine. Shared tasks and messages, scrollback that can survive reboot, on-device voice, and MCP tools; using the providers and subscriptions you already pay for.

Harmony is the product. The desktop app, the harmony command, and this website use that name. The terminal surface is the Harmony TUI; it still launches as nala, and some installer files still start with NALA-, because that is the original binary name; renaming them would break existing installs. Both talk to the same local workspace.

Preview channel

The download page reads the release channel live and lists only builds that exist right now. This page could not read the channel just now, so it is not claiming anything about which platforms are published. Try the download page, which reads the channel directly. See platform support for exactly what exists, and the download page for the current version.

Start here

How it fits together

Harmony is not one program. Clients talk to a local daemon that owns the durable state; the session host owns the processes. Understanding this split explains most of the product.

Harmony runtime topologyFour clients — Harmony Desktop, the Harmony TUI agent, the nala CLI, and external MCP hosts — connect over Electron IPC, pipe RPC, and daemon RPC to a single local daemon. The daemon owns sessions, orchestration state, tasks and artifacts, agent-to-agent messaging, and channels. Below it, the session host owns provider processes and PTYs, which in turn drive coding agent providers, terminals, the browser surface, and git worktrees. Everything runs on the local machine; no cloud host sits in the path.CLIENTSHarmony DesktopElectron rendererHarmony TUInala tuinala CLIscriptableMCP hostsClaude, Codex…Client protocolElectron IPC · pipe RPC (~410 nala.* methods) · daemon RPC · Native Capability BusLOCAL DAEMONDaemon — survives app closeSessionsOrchestrationTasks + artifactsA2AChannelsSession hostOwns provider processes and PTYs · principal registration · launch reservationsRESOURCESProvidersClaude · Codex · Pi…PTYsterminal sessionsBrowserChromium · CDPWorktreesgit isolation
Every box runs on your machine. The daemon is the single durable writer for sessions, tasks, artifacts, and messages, which is why closing the desktop app does not end your work.

The surfaces

Harmony desktop, the nala TUI, and the nala CLI are three peers attached to one shared daemon on your machine. State can move between those three while that daemon is running.

SurfaceWhat it isBest for
Harmony desktopThe full Mission Control app: panes, tasks, messages, approvals, fleet supervisionMulti-agent control, voice-heavy sessions, many terminals
nala TUIThe resident terminal agent, in any terminalA focused coding session in the folder you are in
nala CLIScriptable, noninteractive commands on the same daemonOne-shot tasks, automation, CI, diagnostics
This website / optional web appSign-in, billing, and Harmony Cloud supervision in a browserWatching hosted jobs away from the development machine

The website is the same Harmony account and backend as Cloud on desktop. It is not a fourth daemon peer and it does not run local terminals. Use Harmony in a browser covers install-where-the-browser-allows, offline limits, and native apps (in development — not a store download, not full parity).

Choose your setup if you need the local vs Cloud vs phone split in one place.

Start in a terminal with nala, then open the desktop attached to the same session with harmony desktop. Or start in the desktop and attach a terminal later. Closing a client detaches; it does not by itself end the local session. A reboot is a restore from disk, not the same OS process — see durable sessions.

What Harmony does

Harmony works with the agents and subscriptions you already have. Recognised launch targets include Claude Code, Codex CLI, Cursor, Grok, Gemini, Kimi, Devin, OpenCode, and custom CLI agents you define. Detection is not a promise that every listed CLI is installed or authenticated on your machine. See providers.

A local session host, not an immortal terminal. Sessions live in a detached daemon on your computer. Close the window or quit the UI and the same local PTYs can keep running; reopen to reattach with scrollback. Sleep pauses every local process. After a reboot, Harmony restores pane layout, terminal history, tasks, and checkpoints from disk. An agent conversation resumes only when that provider's CLI still has a valid resume binding; otherwise you get the restored shell and the recovery path Harmony can actually prove. Suspended sessions persist on disk with a 7-day TTL. This is not a guarantee that every conversation returns exactly, or that nothing is ever lost.

Orchestration, locally. Durable tasks with modes and verification gates, Markdown artifacts, approval-gated agent spawning, and department-level git worktrees. The daemon is the single durable writer for all of it. Agents propose changes; you review the diff and tests before you treat work as done.

Agents that talk to each other. A durable agent-to-agent protocol (send, ask, reply, inbox) with three policy modes: Off, Connect, and Orchestrate. Loop prevention watches every conversation.

Voice, on-device. Hold the push-to-talk key (Control+Shift by default, rebindable in Settings) and speak; Whisper transcribes into the active terminal. Read Aloud speaks text back with Kokoro-82M, fully on-device, in 15 curated English voices. Enable it once, and one shortcut dictates system-wide, even when Harmony sits in the tray. Voice needs the documented local prerequisites (feature status).

Your terminal as an agent tool. Harmony can register itself as an MCP server with Claude, Codex, and Gemini so those CLIs can drive workspace, terminal, and browser tools Harmony publishes. The tool list is the surface the current preview actually registers — confirm with harmony mcp check (or wmux mcp check) after harmony mcp register. Registration is surgical: it only edits agent config files that already exist.

A firm of agents, not a chatbot. Company mode is experimental. It can provision a CEO/department template from presets, each department in its own worktree. Do not treat it as a proven automatic cross-provider demo.

Free Core, optional Cloud

Harmony Core is free, local, and useful without an account: the desktop app, the terminal agent, the CLI, provider launch, on-device voice, and updates. Not a trial, not crippleware. Core work runs on your machine. The only product reporting is optional lifecycle telemetry (an installation UUID, not an account id), which you can switch off with harmony telemetry or NALA_TELEMETRY=0.

Harmony Cloud is an optional paid add-on for hosted compute (Agent Hours). Current prices live on the pricing page and are not repeated here. Cloud is strictly additive. Your own subscriptions, API keys and local models keep working without it. Starting Harmony, opening a repository, using an agent, or running a terminal does not require a Harmony account.

Cloud does not include model access. There is no public Harmony Pro plan, and Harmony-routed Plus / Pro / Max inference credits are not a current offer.

When you use Cloud, selected files leave your machine only after you send a repository and confirm the transfer list. Known credential-looking paths are refused; that is not a guarantee that every secret is blocked. See data handling.