iTerm2 is a terminal emulator for macOS that replaces the native Terminal application with a modern interface offering advanced features for command-line work.
iTerm2 addresses the limitations of macOS's built-in terminal by adding capabilities that integrate deeply with the shell environment and the operating system. It tracks command history, directories, hostnames, and usernames through shell integration, enabling features like click-to-download files via SCP and drag-and-drop uploads. The tool provides tmux integration where tmux sessions become native macOS windows with persistence across crashes and disconnects. It includes an inline image viewer for displaying photos and charts directly in the terminal, a built-in web browser that inherits terminal features like copy mode and triggers, and a system-wide hotkey window that slides down from screen edges even over fullscreen applications. An AI chat feature can interact with terminal contents when linked to sessions. Additional capabilities include automatic profile switching based on hostname or environment, session restoration through long-lived server processes, regex-based triggers for text highlighting and command execution, vim-like copy mode for keyboard-driven selection, instant replay to scrub through terminal history with timestamps, and a Python scripting API for full automation.
Developers who spend significant time in the terminal on macOS should consider iTerm2 if they want productivity features beyond basic terminal emulation. The tool suits workflows involving frequent SSH connections, multiple concurrent sessions, or environments where visual context switching helps prevent mistakes. The built-in AI chat and Python API make it particularly valuable for those seeking to automate or customize their terminal environment. The web browser integration is unusual among terminal emulators and may appeal to developers who want to keep browsing within their terminal window hierarchy.
The project maintains active development with regular updates addressing both new features and stability. The codebase shows ongoing refinement of existing functionality alongside introduction of modern capabilities like AI integration. Development appears focused on expanding the tool's automation surface and deepening shell awareness rather than pursuing architectural rewrites.