# iTerm2

> macOS terminal with split panes, tmux integration, search, triggers and a Python scripting API.

Stars: 18.2k · Language: Objective-C · License: GPL-2.0 · Platforms: macOS · Config: GUI/JSON

Features: GPU-accelerated, built-in multiplexer, ligatures, inline images, configurable

- Repository: https://github.com/gnachman/iTerm2
- Page: https://www.trmn.sh/terminals/iterm2

## Overview

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.

## Alternatives

- [Windows Terminal](https://www.trmn.sh/terminals/windows-terminal.md): Microsoft's terminal for Windows that hosts PowerShell, cmd and WSL shells in tabs and panes, with GPU text rendering and JSON settings. (Windows, 105.3k stars)
- [Tabby](https://www.trmn.sh/terminals/tabby.md): Cross-platform Electron terminal with a built-in SSH, Telnet and serial client, saved connection profiles and a plugin system. (Linux/macOS/Windows, 75.3k stars)
- [Alacritty](https://www.trmn.sh/terminals/alacritty.md): Cross-platform OpenGL terminal emulator written in Rust, configured with a TOML file and leaving tabs and splits to a multiplexer like tmux. (Linux/macOS/Windows/BSD, 66.1k stars)
- [Warp](https://www.trmn.sh/terminals/warp.md): Terminal written in Rust with an IDE-style command editor, command output grouped into blocks, and built-in AI agents. (macOS/Linux/Windows, 65.8k stars)
- [Termux](https://www.trmn.sh/terminals/termux.md): Android terminal emulator and Linux environment that installs packages through its own apt repository, no root required. (Android, 64.0k stars)
- [Ghostty](https://www.trmn.sh/terminals/ghostty.md): Terminal emulator written in Zig with GPU rendering and a native UI on each platform: Swift/AppKit on macOS, GTK on Linux. (Linux/macOS, 63.3k stars)
- [Hyper](https://www.trmn.sh/terminals/hyper.md): Electron terminal built on HTML, CSS and JavaScript, themed and extended through npm plugins. (Linux/macOS/Windows, 44.8k stars)
- [Kitty](https://www.trmn.sh/terminals/kitty.md): GPU-rendered terminal written in C and Python, with its own graphics protocol, built-in tabs and splits, and scriptable 'kittens'. (Linux/macOS/BSD, 35.5k stars)

## Guides

- [Alacritty Alternatives](https://www.trmn.sh/alternatives/alacritty): Alacritty alternatives: WezTerm, Kitty and Ghostty add tabs, splits and scripting; Windows Terminal and iTerm2 cover one OS each.
- [Kitty Alternatives](https://www.trmn.sh/alternatives/kitty): Kitty alternatives: WezTerm, Ghostty, and Alacritty compared by platform, multiplexing, scripting and rendering, plus Rio, Contour, iTerm2 and foot.
- [Tabby Alternatives](https://www.trmn.sh/alternatives/tabby): Tabby alternatives: WezTerm, Kitty, Windows Terminal and Wave compared by platform, scripting, SSH handling and plugin support.
- [Best Terminal Emulators for macOS](https://www.trmn.sh/best/terminal-emulators-for-macos): Ranked terminal emulators for macOS: Ghostty, iTerm2, kitty, WezTerm, Alacritty, Warp and more, compared on features, config and trade-offs.
- [Best Terminals with Inline Image Support](https://www.trmn.sh/best/terminals-with-image-support): Terminals that show images inline: kitty, WezTerm and Rio compared by protocol support (kitty graphics, Sixel, iTerm2) and platform.
- [Ghostty vs iTerm2](https://www.trmn.sh/compare/ghostty-vs-iterm2): Ghostty vs iTerm2: Zig terminal for macOS and Linux with a text config, versus a macOS-only Objective-C terminal with tmux integration and Python API.
- [iTerm2 vs Terminal.app](https://www.trmn.sh/compare/iterm2-vs-terminal-app): iTerm2 vs Terminal.app: independent split panes, triggers and a Python API versus the macOS bundled terminal with AppleScript and window groups.
- [Kitty vs iTerm2](https://www.trmn.sh/compare/kitty-vs-iterm2): Kitty vs iTerm2: a cross-platform GPU terminal configured by kitty.conf versus a macOS-only terminal with a Settings window and Python API.

---

Canonical: https://www.trmn.sh/terminals/iterm2
