A native macOS app that feels and works like a TUI, with vim-inspired modes and key bindings. heed runs Claude, Codex, Cursor, pi, opencode and gemini in real terminals, watches what each one is up to, and taps your shoulder only when one needs you.

Every agent reports what it is up to: working, idle, blocked on a permission, asking you a question, done, rate limited. heed gives each its own shape, not only a color, and ga jumps to the next session that needs you. Everything else stays quiet.

Press o and type the task. heed guesses the repo (or several), names the worktree after the task, picks the agent, and starts it in a real terminal with your prompt. You see the exact command before it runs.

Claude, Codex, Cursor, pi, opencode, or any command you can type. Each one is wired up the way it actually works, and anything heed cannot be told it reads from the screen.

NORMAL mode drives heed. INSERT hands every key to the terminal. Counts work, relative line numbers show how far you are jumping, f puts a hint on everything and : runs commands. If you have ever :wq’d your way out of something, you are home.
Move through sessions. 3j goes three down.
Jump to the next agent that needs you.
Start work. Type the task, press enter.
PR overlay for this session, and back.
Diff overlay: committed, staged, unstaged.
Jump straight to pinned session 1.
Split the pane right. Vim muscle memory works.
Hint badges on every pane, tab and session.
Command line: :start, :pr 2841, :wt sweep.
Every key and every agent state, in any mode.

heed watches your open PRs for review comments and failing checks, queues the feedback, and hands it to the session that wrote the code, but only when that agent is idle. Preview it, send it now, or let it run.

Create, list and remove worktrees across repos. Cleanup starts with one honest rule: remove what has been quiet for N days.

Quit heed, restart the Mac, come back tomorrow. Active sessions reopen with their agent session id, in the same worktrees, tabs and splits. Claude, for example, comes back with --resume.


gd opens committed, staged or unstaged changes over your session. Per file, per commit, or all of it. Ask the agent about a hunk with one key.

Pick several issues or notifications, press s, and they become one session with one prompt. Read them in the app first.
Up to nine pinned sessions, one key each: '1 … '9. Pinned sessions are never cleaned up and always come back after a restart.
A few things we would rather you hear from us.
Claude, Codex, Cursor, pi, opencode and gemini are built in. Anything else you can run in a terminal works as a custom agent, with its states read from output patterns.
Through each agent's hooks, where it has them, using a small helper command the agent calls. Where it has none, heed watches the terminal and marks that state as a guess.
Cleanup removes only worktrees that were quiet for N days, never dirty or unpushed work and never pinned sessions, and it can ask before every sweep.
No, but you will want to. Everything is a key, there is a help overlay on ? in every mode, and the mouse works too.
Start the agents, close the lid on worrying. heed will tap you when it matters.