iTerm2
macOS terminal with split panes, tmux integration, search, triggers and a Python scripting API.
iTerm2 is a macOS-only terminal emulator and a replacement for Terminal.app, written in Objective-C and licensed under GPL-2.0. It packs in a large number of features aimed at people who spend all day at the shell on a Mac, from window management to automation to a Python API.
Tabs can be split vertically and horizontally into any number of panes, and inactive panes are dimmed. With tmux integration, running tmux -CC turns tmux windows into native iTerm2 windows and tabs. Those sessions survive crashes, SSH disconnects and app upgrades, and two people can attach to the same one. One documented limitation is that a tab holding a tmux window cannot also contain non-tmux split panes. Separately, iTerm2 runs sessions in long-lived server processes, so shells keep running if the app crashes or upgrades and it reconnects to them on restart. A system-wide hotkey can summon a window that slides in from an edge of the screen, even over full-screen apps. A GPU renderer improves drawing performance, and settings control when it is used, such as turning it off on battery power.
Shell integration tracks commands, directories, hostnames and usernames. It enables marks at each prompt, per-host command history, recent directories ranked by frecency, downloading files over SCP with a click, and drag-and-drop uploads. Triggers are regex patterns that fire actions on matching output: highlighting text, running commands, sending notifications, opening the password manager or calling Python scripts. Profiles can switch automatically by hostname, username, directory or running command, for example a red background when connected to production. Other tools include inline images and animated GIFs through imgcat, a vim-like copy mode, smart selection of URLs and file paths, regex search, autocomplete of any word already on screen (Cmd-;), paste history, Instant Replay to scrub back through earlier screen states, a configurable status bar, Open Quickly (Cmd-Shift-O) across sessions, a built-in browser profile type, and an optional AI chat window that can work with terminal contents.
Most configuration is done in the Settings window rather than a text file. Profiles can be exported as JSON, and Dynamic Profiles in JSON or XML property lists are picked up as soon as they change, which suits version-controlled setups. The Python scripting API can add status bar components, triggers, menu items and new features. The font documentation warns that ligatures are rendered through CoreText, which is significantly slower. There is no build for Linux or Windows.
iTerm2 alternatives
Windows Terminal
Microsoft's terminal for Windows that hosts PowerShell, cmd and WSL shells in tabs and panes, with GPU text rendering and JSON settings.
gpu · mux · ligatures · images
Tabby
Cross-platform Electron terminal with a built-in SSH, Telnet and serial client, saved connection profiles and a plugin system.
mux · ligatures · images
Alacritty
Cross-platform OpenGL terminal emulator written in Rust, configured with a TOML file and leaving tabs and splits to a multiplexer like tmux.
gpu
Warp
Terminal written in Rust with an IDE-style command editor, command output grouped into blocks, and built-in AI agents.
gpu · ligatures
Termux
Android terminal emulator and Linux environment that installs packages through its own apt repository, no root required.
Ghostty
Terminal emulator written in Zig with GPU rendering and a native UI on each platform: Swift/AppKit on macOS, GTK on Linux.
gpu · mux · ligatures · images
add a badge to your README
Maintain iTerm2? Show that it's featured on trmn. The badge links back to this page.
[](https://www.trmn.sh/terminals/iterm2?utm_source=badge)<a href="https://www.trmn.sh/terminals/iterm2?utm_source=badge"><img src="https://www.trmn.sh/badge/terminals/iterm2.svg" alt="Featured on trmn" height="20"></a>