// the agent IDE for parallel work

Prompt. Review. Ship.

Prompt a fleet of coding agents, each in its own git worktree. Review every change in one queue. Ship what's good, from a native app that stays light.

brew install --cask shubham-1994/tern/tern-desktop

macOS 12+ · Apple Silicon and Intel · CLI for macOS, Linux and FreeBSD

Tern · acme-web · fix-login
Tern's window: the sidebar lists acme-web's worktrees, each with its agents (one running, one waiting for approval, one ready for review), and Claude Code fixing a login bug in front.
Each project's worktrees in the sidebar, each with its agents. Running, waiting for you, done: at a glance.

// small on purpose

No Electron. Nothing to slow you down.

~30MB
DAEMON

holds every session, survives the window

20MB
DOWNLOAD

the whole Mac app, Apple Silicon and Intel

12MB
CLI

one static binary, terminal UI included

0
RUNTIME DEPS

no Electron, no Node; just git

Measured on an Apple Silicon Mac with v0.7.1. How we measure →

// workflows

Built for many agents at once.

01WORKTREES

Every task isolated.

Each task gets its own worktree and branch, named by you or by your prompt. No stashing, no branch juggling.

02REVIEW

One queue for every change.

Full diffs, comments sent back to the agent, merge or PR, and a radar for tasks that collide.

03RUNS

Plans that run themselves.

Steps start as soon as the steps they need are done. Each can have a check, a retry limit and an approval.

04TUI + APP

One daemon, many windows.

The Mac app and the terminal UI show the same live sessions. Close either; the agents keep going.

05PHONE

Your agents in your pocket.

Pair a phone over Tailscale, your LAN, or a Tern Relay you run (end-to-end encrypted). There are no Tern servers.

06SSH

Run on the big machine.

tern ssh devbox runs Tern there and drives it from here.

// agents

Bring your own agent.

16 agent CLIs work out of the box, with the subscriptions you already have. Claude Code and Codex report their state through hooks; the others are read from their terminal.

Claude CodeCodexGemini CLICursor AgentGitHub Copilot CLIOpenCodeAiderGooseAmpAuggieCrushFactory DroidGrok CLIKimi CLIKiro CLIQwen Codeany CLI agent

// worktrees

Worktrees are your workspaces.

  • Every project lists its main checkout and its worktrees. Each has its own tabs, files and git view, with its agents under it.
  • Give a worktree a status, pin it, nest it under the one it came from, or leave it a note.
  • The board shows them all by status. Drag a card to move it.
  • Delete one and its branch goes too if it's merged. If it isn't, Tern keeps it and tells you.

// review

Review is a queue, not a hunt.

  • Every task's changes, measured from where it started, in one list with the full diff.
  • Send a comment and it lands in the agent's prompt.
  • Merge with one key, or push and open a pull request.
  • When two tasks change the same file, the conflict radar says so before you merge.
  • tern <PR URL> checks out any pull request in its own worktree to review.

// your phone

Leave the desk.

  • Turn on remote access and pair your phone with a QR code.
  • See every session and its live screen. Get a notification when an agent finishes or needs you.
  • If you allow it, approve, answer and type from there.
  • Over Tailscale, your LAN, or Tern Relay on a server you run: your phone and your Mac talk end-to-end encrypted, so the relay can't read the traffic. (The relay also serves the phone's page, so use one you run or trust.)
Tern on an iPhone: an agent asks to run a command, with Deny, Always and Allow.

// compared

Built light, not wrapped.

CapabilityTernElectron agent IDEsA terminal and tmux
Native app, no Electronyesnon/a
A terminal UI for the same sessionsyesnoyes
Agents survive closing the windowyes (a daemon)variesyes
A worktree per task, made for youyesyesby hand
Review queue, comments back to the agentyesvariesno
Plans of agent steps (runs)yesrareno
Phone access with no vendor serveryesvariesno
Remote machines over SSHyesvariesyes

// questions

Frequently asked.

What is Tern?

A lightweight IDE for running coding agents in parallel. Each task gets its own git worktree. A small native daemon keeps the sessions; the Mac app, the terminal UI and your phone show them.

Which agents does it work with?

16 out of the box: Claude Code, Codex, Gemini CLI, Cursor Agent, GitHub Copilot CLI, OpenCode, Aider, Goose, Amp, Auggie, Crush, Factory Droid, Grok CLI, Kimi CLI, Kiro CLI, Qwen Code, each with your own account. Any other CLI agent runs in a terminal tab too.

How do worktrees work?

⌘N makes a new worktree on its own branch and starts an agent in it. The project's tern.yaml can set it up (install, copy env files, share folders). When you're done, merge it from the review queue or delete it; a merged branch goes with it.

Does it run on Linux or Windows?

The CLI and terminal UI run on macOS, Linux and FreeBSD. The desktop app is macOS only for now. Windows isn't supported.

Is my code sent anywhere?

No. Tern runs on your machine and has no servers. Agents talk to their own providers as they always do. Phone access goes over your Tailscale network, your LAN, a relay you run (end-to-end encrypted), your own reverse proxy, or Tailscale Funnel if you choose to publish it.

Is it free? Is it open source?

Free to use. Tern is closed source; every release's binaries and checksums are public.

How do I update?

brew upgrade shubham-1994/tern/tern and brew upgrade --cask shubham-1994/tern/tern-desktop. The app also tells you when a new version is out.

Why does macOS warn the first time I open it?

The app isn't notarized by Apple yet, so macOS asks once. On macOS 15 and later: open it once, then System Settings ▸ Privacy & Security ▸ Open Anyway (on macOS 12–14, right-click it ▸ Open). Or run xattr -dr com.apple.quarantine /Applications/Tern.app.

Start a fleet in a minute.

brew install --cask shubham-1994/tern/tern-desktop