Repolode
gnachman

gnachman/iTerm2

A macOS terminal emulator that replaces the built-in Terminal app with tmux integration, shell awareness, inline images and session restoration.

Open-source alternative to:Terminal.app

Stars
18,200
Forks
1,528
Open issues
76
Last commit
10 hours ago

What is it?

iTerm2 is a terminal emulator for macOS intended as a replacement for the built-in Terminal app. It adds window, tab and pane management, along with features aimed at day-to-day shell work such as profiles, triggers, smart selection and a searchable session list.

A notable feature is tmux integration: running tmux in control mode turns tmux windows into native macOS windows and tabs. Sessions run in long-lived server processes, so shells survive iTerm2 crashes or upgrades and reconnect when the app restarts. Shell integration tracks commands, directories and hostnames, enabling per-host history, file transfer via SCP and drag-and-drop uploads.

Other capabilities include inline image display (including animated GIFs), automatic profile switching based on host or directory, a hotkey window that drops down from a screen edge, an instant replay of terminal history, a configurable status bar, and a Python scripting API for automation and customization. The project is written in Swift and licensed under GPL-2.0.

Key features

  • 01Native macOS windows and tabs for tmux sessions via tmux -CC
  • 02Shell integration with click-to-download via SCP and per-host command history
  • 03Inline image display, including animated GIFs, through imgcat
  • 04Automatic profile switching based on hostname, directory or running command
  • 05Hotkey window that slides in from a screen edge
  • 06Instant replay of terminal history with timestamps
  • 07Python scripting API for custom status bar components and triggers

Use cases

  • Managing remote servers over SSH with per-host profiles and history
  • Keeping long-running tmux sessions visible as native macOS windows
  • Quickly summoning a terminal from anywhere with a global hotkey
  • Scripting custom terminal automation with Python

Quick start

  1. 1

    Download the latest version from the downloads page

  2. 2

    Clone the repository

    git clone https://github.com/gnachman/iTerm2.git
  3. 3

    Run first-time setup (interactive)

    make setup
  4. 4

    Build and run iTerm2

    make run

Things to know

  • macOS only.
  • Building from source requires a lengthy setup that installs Xcode, Homebrew and Rust.
  • Development builds may be less stable than official releases.
  • Licensed under GPL, which carries copyleft obligations.

Topics

FAQ

What is iTerm2?
A macOS terminal emulator that replaces the built-in Terminal app with tmux integration, shell awareness, inline images and session restoration. iTerm2 is a terminal emulator for macOS intended as a replacement for the built-in Terminal app. It adds window, tab and pane management, along with features aimed at day-to-day shell work such as profiles, triggers, smart selection and a searchable session list.
Is iTerm2 free to use? What license does it have?
iTerm2 is open source under the GPL-2.0 license. Check the license terms before using it in commercial products.
Is iTerm2 still maintained?
Actively maintained. The last commit to iTerm2 was on Oct 20, 2026.
What can I use iTerm2 for?
Managing remote servers over SSH with per-host profiles and history Keeping long-running tmux sessions visible as native macOS windows Quickly summoning a terminal from anywhere with a global hotkey Scripting custom terminal automation with Python
How do I install iTerm2?
Download the latest version from the downloads page Clone the repository: git clone https://github.com/gnachman/iTerm2.git Run first-time setup (interactive): make setup Build and run iTerm2: make run
Where can I get iTerm2?
The source code and installation instructions are on GitHub: https://github.com/gnachman/iTerm2

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects