Appearance
iTerm2
App Terminal
Feature-rich macOS terminal with split panes, profiles, and extensive customization. Native Cocoa app.
iTerm2 is the most popular third-party terminal for macOS, created by George Nachman. It's a successor to the original iTerm project, first released in 2010 as a native Cocoa application. iTerm2 has been the de facto "power user" terminal on macOS for over a decade.
iTerm2 pioneered several features that became ecosystem standards: shell integration via OSC 133 semantic prompts (marking prompt, command, and output boundaries), the iTerm2 image protocol (OSC 1337) for inline image display, and sophisticated profile management. Its split pane system, tmux integration, and Instant Replay (scrubbing through terminal history) remain unmatched in many competitors.
While iTerm2 supports truecolor and most modern escape sequences, it has been slower to adopt some newer protocols like the kitty keyboard protocol. It remains the most feature-complete terminal on macOS for users who don't need GPU acceleration, with features like triggers (automated actions on pattern matches), password manager integration, and extensive mouse reporting.
Backend: Feature-rich macOS terminal with split panes, profiles, and extensive customization. Native Cocoa app. · v3.6.9
95%
239 passed · 12 failed of 251 features
Tested: April 10, 2026
Analysis2026-04-06
iTerm2 scores 95% (239/251) on the terminfo.dev feature matrix, with gaps in the Core TUI, Rich TUI baselines. Ranks #1 of 12 tested terminals. Uniquely supports: Feature Reporting (TERM_FEATURES). Missing 12 features.
Character Sets
| Feature | Support | Notes |
|---|---|---|
| DEC line drawing character set | ✓ yes | |
| DEC Special Graphics | ✓ yes | |
| G0/G1 character set switching | ✓ yes | |
| UTF-8 mode | ✓ yes |
Cursor
| Feature | Support | Notes |
|---|---|---|
| ANSI restore cursor (CSI u) | ✓ yes | |
| ANSI save cursor (CSI s) | ✓ yes | |
| CPL cursor preceding line (CSI F) | ✓ yes | |
| CUD stops at bottom | ✓ yes | cursor at row 25 |
| CUP at screen boundaries | ✗ no | got 25;80, expected within screen bounds |
| CUP with DECOM | ✗ no | got 1;1, expected 5;1 |
| CUU stops at top | ✓ yes | |
| Hide cursor (DECTCEM) | ✓ yes | |
| Cursor horizontal absolute (CHA) | ✓ yes | |
| HPA horizontal position absolute (CSI `) | ✓ yes | |
| Cursor position (CUP) | ✓ yes | |
| Cursor back (CUB) | ✓ yes | |
| Cursor down (CUD) | ✓ yes | |
| Cursor forward (CUF) | ✓ yes | |
| Cursor home | ✓ yes | |
| Cursor up (CUU) | ✓ yes | |
| Cursor next line (CNL) | ✓ yes | |
| Cursor position report (DSR 6) | ✓ yes | |
| Reverse Wrap (Mode 45) | ✓ yes | |
| Save/restore cursor (DECSC) | ✓ yes | |
| Cursor shape (DECSCUSR) | ✓ yes | |
| VPA vertical position absolute (CSI d) | ✓ yes |
Device Status
Editing
| Feature | Support | Notes |
|---|---|---|
| DECCARA — change attrs in rectangle | ✓ yes | sequence consumed |
| DECCRA — copy rectangular area | ✓ yes | sequence consumed |
| DECDC — delete columns (CSI Ps ' ~) | ✓ yes | sequence consumed |
| DECERA — erase rectangular area | ✓ yes | sequence consumed |
| DECFRA — fill rectangular area | ✓ yes | sequence consumed |
| DECIC — insert columns (CSI Ps ' }) | ✓ yes | sequence consumed |
| DECRARA — reverse attrs in rectangle | ✓ yes | sequence consumed |
| DECRQCRA — checksum rectangular area | ✓ yes | sequence consumed |
| DECSACE — select attribute-change extent | ✓ yes | sequence consumed |
| DECSERA — selective erase rectangular area | ✓ yes | sequence consumed |
| Delete characters (DCH) | ✓ yes | |
| Delete lines (DL) | ✓ yes | |
| Insert characters (ICH) | ✓ yes | |
| Insert lines (IL) | ✓ yes | |
| Repeat character (REP) | ✓ yes | |
| SL — shift left (CSI Ps SP @) | ✓ yes | sequence consumed |
| SR — shift right (CSI Ps SP A) | ✓ yes | sequence consumed |
Erase
| Feature | Support | Notes |
|---|---|---|
| Erase character (ECH) | ✓ yes | |
| ED at scroll region boundary | ✓ yes | |
| EL erases with bg color | ✓ yes | |
| Erase line (EL 2) | ✓ yes | |
| Erase to BOL (EL 1) | ✓ yes | |
| Erase to EOL (EL 0) | ✓ yes | |
| Erase above (ED 1) | ✓ yes | |
| Erase screen (ED 2) | ✓ yes | |
| Erase below (ED 0) | ✓ yes | |
| Erase scrollback (ED 3) | ✓ yes | |
| Selective Erase (DECSED) | ✓ yes |
Extensions
Input Protocols
| Feature | Support | Notes |
|---|---|---|
| Button-Event Mouse (1002) | ✓ yes | |
| CSI u Key Encoding | ✓ yes | |
| Kitty click events | ? unknown | |
| modifyOtherKeys | ✓ yes | |
| modifyOtherKeys mode 3 | ✓ yes | |
| Pixel Mouse Reporting (1016) | ✓ yes | |
| urxvt Mouse Reporting (1015) | ✓ yes | |
| X10 Mouse Tracking (9) | ✓ yes |
Modes
Reset
| Feature | Support | Notes |
|---|---|---|
| DECALN screen alignment (ESC # 8) | ✓ yes | |
| Backend reset() method | ✓ yes | cursor at 5;5 after DECSTR |
| Full reset (RIS) | ✓ yes | |
| SGR reset clears attributes | ✓ yes | |
| Soft reset (DECSTR) | ✓ yes |
Scrollback
| Feature | Support | Notes |
|---|---|---|
| Scrollback accumulates | ✓ yes | |
| Alt screen separate scrollback | ✓ yes | |
| DECSTBM constrains scrolling | ✓ yes | |
| DECSTBM reset to full screen | ✓ yes | cursor at row 25 (expected near bottom after DECSTBM reset) |
| Reverse index (RI) | ✓ yes | |
| Scroll down (SD) | ✓ yes | |
| Scroll up (SU) | ✓ yes | |
| Scroll region (DECSTBM) | ✓ yes | |
| Total line count | ✓ yes | Content written to scrollback |
SGR (Text Styling)
Text
| Feature | Support | Notes |
|---|---|---|
| Backspace (BS) | ✓ yes | |
| Basic text rendering | ✓ yes | |
| CBT backward tab (CSI Z) | ✗ no | cursor at col 1, expected 17 |
| CHT forward tab (CSI I) | ✗ no | cursor at col 80, expected 17 |
| Combining characters (0 cols) | ✓ yes | |
| Carriage return | ✓ yes | |
| HTS set tab stop (ESC H) | ✓ yes | |
| Index (IND) | ✓ yes | |
| Line feed | ✓ yes | |
| Next line (NEL) | ✓ yes | |
| Overwrite at cursor | ✓ yes | |
| Reverse Index at Scroll Top | ✓ yes | |
| Tab stops | ✓ yes | |
| TBC clear tab stop (CSI g) | ✗ no | cursor at col 80, expected 1 |
| CJK wide chars (2 cols) | ✓ yes | |
| Emoji wide chars (2 cols) | ✓ yes | |
| Regional indicator flags (2 cols) | ✓ yes | |
| Variation selector 16 (emoji presentation) | ✓ yes | |
| Emoji ZWJ sequences (2 cols) | ✓ yes | |
| Text wraps at width | ✓ yes |
Unicode
| Feature | Support | Notes |
|---|---|---|
| East Asian Ambiguous Width | ✓ yes | width=1 (ambiguous chars vary by terminal/locale) |
| Grapheme Cluster Cursor Movement | ✓ yes | |
| Tab Stops (HT) | ✓ yes | |
| Wide Char at Line Wrap | ✓ yes |