infiniterm
The infiniterm app icon: four cards in a grid, bordered violet, yellow, red and green.

See which agent needs you without opening a single tab.

infiniterm puts every terminal on one zoomable canvas. Each card keeps its place, and its border says what the agent inside is doing: working, waiting on you, failed, or done.

Works with
  • Claude Code
  • Codex
  • OpenCode
  • Pi
  • Cursor
curl -fsSL https://infiniterm.app/install.sh | sh

macOS 13 or later on Apple Silicon. Free for personal use, $29 for work.

An infiniterm window at 66% zoom with six cards: code open in vim, an editor with a file tree, and four agent sessions. Claude Code asking which rate limit to use has a yellow border, a second Claude Code session at work is violet, a finished Pi session is green, and a failed Codex session is red.
A real canvas: four agents in one workspace, each card's border saying whether it is waiting on you, working, done or failed. The workspace tab carries a dot per card.

Six things it does.

See which agent needs you

Claude Code, Codex, OpenCode, Pi and Cursor report through hooks, any zsh command through the shell. The border says working, waiting on you, failed or done.

ift install-claude-hooks

A canvas, not tabs

Zoom out to see every card, zoom in to work in one. A new card takes the next free slot, and nothing moves on its own.

Cmd 2 fits every card

Shells that outlive the app

Each shell runs in its own small daemon. Quit or update the app and the programs keep running; reopen it and the screen comes back as it was.

ssh -t mac ift attach 7

Driven from any shell

ift opens files over the card you are in, lists cards, types into another card and reads what it shows.

ift send 7 "npm test" --enter

Servers in their own window

A second window whose cards run on a Linux server or another Mac over ssh. Close it and the shells stay on the server.

ift connect me@server

The rest of the work beside it

Editor, diff, transcript and browser cards on the same canvas: the files, the changes against HEAD, a session's turns, and Chromium.

ift diff

Every feature →

Four colours, because there are four questions.

Claude Code, Codex, OpenCode and Pi report through hooks. Any other command reports through zsh, so a long build goes violet and then green, and a failing one goes red. A shell doing nothing has no colour at all.

~/Code/api ❯ cargo build --release
   Compiling tokio v1.47.1
   Compiling api v0.3.0
   Building [=====>   ] 212/297
WorkingAn agent is mid-turn, or a command has been running for 5 seconds.
Bash(rm -rf target/)

Do you want to proceed?
❯ 1. Yes
  2. No, and tell Claude what to do
Waiting on youIt asked for permission, or asked you a question.
~/Code/web ❯ npm test

 FAIL  src/cart.test.ts
  ✕ applies the discount

Tests: 1 failed, 41 passed
FailedA command exited non-zero, or the turn ended in an error.
⏺ The migration is in place and the
  three failing tests pass now.

> _
DoneThe turn finished. It stays green until the next one starts.

Nothing flashes. Nothing steals focus.

There are no notifications and no bouncing icons. You look when you are ready, see which cards changed colour, and go there. Other workspaces tell you from their tab: one dot per card, in the order the cards sit, lit in that card's colour.

Cmd is the app's. Everything else is your shell's.

Ctrl, Alt and bare keys go to the terminal untouched, so vim, tmux and your readline habits keep working. Every action is a command, so nothing needs the mouse.

All keys

What it does not have.

No Electron. No account. No telemetry.

A native app in Rust. The only request it makes on its own is the update check, a plain GET with nothing about you in it. Everything it touches is written down.

Free for personal use. $29 for work.

Personal

Free

  • The whole app, every feature, signed and self-updating
  • Side projects, learning, open source in your own time
  • Or build it from the source yourself
Download for Mac

Commercial

$29 per person, one time

  • Any paid work, freelance and client work included
  • One licence per person, on every Mac they own or control
  • Try it at work for 30 days first
Buy a licence