iTerm2
Keep iTerm2 for
Triggers that fire on output, smart selection, the Python API, tmux control mode, and every keybinding you have tuned over the years.
iTerm2 is the more capable emulator, and nothing here argues with that. lpm owns the project instead: one click brings up every service, each service tab carries the ports it is listening on, and a second agent gets a checkout of its own.
Most people should keep iTerm2 and add the project layer.
Facts checked . iTerm2 3.7 shipped on 8 September 2026; the agent-integration row reflects that release.
The short answer
If what you want is a better terminal emulator, the honest answers are Ghostty, Kitty, WezTerm, Alacritty, Warp — or iTerm2 itself, which shipped a major release in September 2026 and is not standing still. lpm is not on that shelf.
lpm is a free macOS app that manages the projects you run inside a terminal. One click starts and stops every service in a project, each service tab is labelled with the port that service's process tree is listening on, those services stay up after you quit the app, and a second agent can be handed its own checkout — a linked worktree that shares the repository, or a standalone copy that carries its own history.
services:
storefront: npm run dev
api: npm run api
profiles:
frontend: [storefront]That file sits in the repo and travels with the branch, so a teammate who opens the project gets the same services, alongside whatever lpm detected when they added it; if it is only for you, the same lines can live in your own project file instead. iTerm2 has no equivalent object — its profiles set the shell and the appearance, not which services a project runs. Every field a project file accepts is in the config reference.
iTerm2
Triggers that fire on output, smart selection, the Python API, tmux control mode, and every keybinding you have tuned over the years.
lpm
One click that starts four services, a switcher across repos, and a separate checkout per agent.
Both
lpm starts ordinary processes through your login shell — no container, no wrapper — and the Open in iTerm action drops you into the project directory in your own window whenever you want it.
The day you stop opening iTerm2 first, here is the exact trade.
Which is why the recommendation on this page is “both”, not “switch”. lpm owns the project; iTerm2 stays the scratch shell.
Twelve rows. Three of them go to iTerm2 — scrollback, emulator scripting, control mode — and one of those three is the reason to keep it.
| Capability | lpm | iTerm2 |
|---|---|---|
| Start every service in a project with one command | one click, or lpm start from any shell with the app open | you run each command yourself |
| Listening ports on each service tab | the ports that service's process tree owns | No |
| Dev servers keep running once the window is gone | its own session layer — tmux is neither used nor needed | only if you started them under tmux |
| Bring up the frontend only, and leave the rest down | a named profile in the project file | its profiles set the shell and the appearance, not a set of services |
| Lint, migrate or seed without retyping the command | action buttons in the project, or lpm run | shell history and aliases |
| Copy a repo for a parallel agent | up to 50 linked worktrees or standalone copies | No |
| Seeing what an agent is doing without switching to it | working, needs you, done or error on the terminal tab — Claude Code and Codex | working, waiting or idle in the Session Status panel — Claude Code only, since 3.7 |
| Project control from any shell or agent | the lpm command, with --json for whatever reads it | Python API |
| Emulator scripting: triggers, smart selection, output hooks | No | Yes |
| tmux control mode rendered as native tabs | No | Yes |
| Scrollback you can raise, or leave unbounded | 10,000 lines a pane, fixed | as many lines as you set, or unlimited |
| Licence and price | MIT, free | GPLv2, free |
If control mode is the row that decides it, the tmux comparison covers what lpm runs instead of a multiplexer.
lpm is not competing for this slot. Pick whichever one you like: lpm runs beside it in a window of its own, and hands you straight back to it whenever you want a shell.
iTerm2 — free under GPLv2, scriptable from Python, and still moving: 3.7 added a Claude Code integration, groups of tabs and a companion iOS app in September 2026.
Warp — the AI-first one, and open source now: its client is AGPL v3, apart from the UI crates it ships under MIT.
Ghostty, Kitty, WezTerm, Alacritty — four more names worth trying. This page argues with none of them, and does not rank them — lpm is not competing for the slot they are in, so it has no business grading them either.
None of them start your services, none of them know what a project is, and none of them keep your dev servers up after you quit. That is the gap lpm fills — whichever of these you keep open.
lpm does ship a terminal of its own, because the panes have to live somewhere. What it includes is listed here — it is a shell in a tab, not an entry on the shelf above.
Copying a project so a second agent gets its own checkout, its own services, and its own terminals.
Two free, macOS-only, open-source tools. The split is whether your bottleneck is the emulator itself or everything you have to start inside it.
A short video: a profile starts just the services it names.Keep iTerm2 for the shell. Click anything — it runs live.
lpm is a macOS app with a multi-pane terminal workspace. Open this page on your computer to try the interactive demo.
Get lpm for MacOr check your Macs from your iPhoneClick a step to run it in the window.
Done poking around? Get lpm for Mac and point it at your own projects.
lpm start, lpm stop, lpm service web restart, lpm run and lpm duplicate hand the work to the app, so lpm has to be open; with it closed they stop and say so. lpm list and lpm logs read your running services themselves, so those two answer from a cold shell. lpm status reports what your agents are doing, which only the app knows, so it needs lpm open too.Every repo in one list, with what each one is running — the switcher a profile menu is not.
Where the control-mode row leads: a live pane per service, with no multiplexer underneath.
The other Mac terminal built around coding agents, compared row by row.
How many checkouts you can run at once, and what each one quietly leaves behind.
Every key a project file takes: services, dependsOn, profiles, actions, and declared ports.
The lpm Link app mirrors a tab running on the Mac, takes typing, and pings you when Claude Code or Codex needs an answer.
lpm is free, macOS-native, MIT-licensed, and starts your services as ordinary processes — the same commands you would type by hand. Install it beside iTerm2 and see whether the project layer earns its place. Read it first on GitHub if you would rather.