Install and first launch
infiniterm runs on Apple Silicon Macs with macOS 13 or later. It comes two ways: Pro, a signed app you buy, and Lite, which you build from the source yourself.
Pro is the signed and notarized app, so Gatekeeper opens it without a warning, and it updates itself. It adds browser cards and carries the licence for using infiniterm at work.
-
Buy it; the receipt links the
.dmg. -
Open it and drag infiniterm into Applications, then launch it once.
-
In any card, put
ifton your PATH:Terminal window /Applications/infiniterm.app/Contents/MacOS/ift installThis symlinks
iftinto~/.local/binand writes its zsh completion. If either directory is not on yourPATHorfpath, it prints the line to add.
Lite is everything except browser cards, built from the public source, for personal use. You need Rust; the source’s README has the steps. Builds are yours to use, not to hand to anyone else.
Agent hooks
Section titled “Agent hooks”Card borders show what an agent in the card is doing. Claude Code and Pi report through hooks, installed once from any shell:
ift install-claude-hooks # edits ~/.claude/settings.jsonift install-pi-hooks # installs the Pi extension into ~/.pi/agentift install-pi-hooks DIR takes a different agent directory, for a wrapper that runs Pi against its own. Both accept --dry-run.
Other commands need no setup: a zsh started in a card reports each command’s start and exit status to the app. See Card states.
Shell history per card
Section titled “Shell history per card”Each card gets its own zsh history file, so a new card does not open with every other card’s past, and after a reboot a card that ran Claude has claude --resume <id> as its last history entry. macOS sets HISTFILE before your .zshrc runs, so add one line to .zshrc:
HISTFILE="${INFINITERM_HISTFILE:-$HOME/.zsh_history}"Outside infiniterm the variable is unset and your usual history file is used.
Updates
Section titled “Updates”Pro checks for a new build at launch and every six hours. A newer build is downloaded, its signature and notarization are checked, and it is installed the next time the app restarts. The status bar says “update N ready” until then. “Check for Updates…” in the app menu checks now.
The check is a plain GET of latest.json with nothing about you in it.
Your first minute
Section titled “Your first minute”Cmd Topens a terminal card.Cmd Wcloses it.Cmd Shift Pis the command palette: everything the app does is in it.Cmd /lists every shortcut, searchable.Cmd+ scroll zooms,Cmd+ drag pans. Bare scroll and drag belong to the card under the pointer.Cmd 2fits every card in the window,Cmd 1fits the focused one.