iTerm2

Developer ToolsmacOS

A macOS terminal with split panes and tmux integration.

Latest 3.7.1 · · macOSby George NachmanWebsiteRSS

Release activity

Release activity — 9 releases across 8 days since Jun 2, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Jun 2, 2026. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026No releases on Sep 13, 2026
MondayNo releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 20261 release on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 20261 release on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026No releases on Sep 14, 2026
Tuesday1 release on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 20261 release on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 20261 release on Sep 1, 20261 release on Sep 8, 2026
WednesdayNo releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026No releases on Sep 9, 2026
ThursdayNo releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 20261 release on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 20262 releases on Sep 10, 2026
FridayNo releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026No releases on Sep 11, 2026
SaturdayNo releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026No releases on Sep 12, 2026

9 releases since Jun 2, 2026, busiest day 2

Changelog

3.7.1Latest

Version 3.7.1

Changed 1
  • Newlines embedded in a completion suggestion now show as a return glyph so the entry stays on one line instead of spilling across rows
Fixed 12
  • Fixed a crash on launch when restoring saved sessions that contained right-to-left text written by version 3.6.11
  • Fixed a memory leak where browser panes were never freed, leaking a WebKit process and a system power-management handle on every page load
  • Fixed a bug where navigating between tmux sessions or windows could freeze the UI for several seconds
  • Fixed dragging a file out of a session that failed when the terminal app used kitty's drag-and-drop protocol
  • Fixed cmd-clicking a URL at the end of a line in a full-screen app, which could open the URL with text from the next line appended
  • Fixed AI tool calls failing with Ollama when a tool used a non-string argument such as a number or boolean

From iTerm2

Improvements:

  • Newlines embedded in a completion suggestion (such as a command-history entry or file name) now show as a return glyph so the entry stays on one line instead of spilling across rows. The value inserted when you accept the row is unchanged.

Bug Fixes:

  • Fixed a crash on launch when restoring saved sessions that contained right-to-left text written by version 3.6.11. This could force you to discard all of your restored sessions.
  • Fixed a memory leak where browser panes were never freed, leaking a WebKit process and a system power-management handle on every page load. Over time this could exhaust a system-wide limit and break other apps that manage power (such as OrbStack).
  • Fixed a bug where navigating between tmux sessions or windows could freeze the UI for several seconds.
  • Fixed dragging a file out of a session that failed when the terminal app used kitty's drag-and-drop protocol.
  • Fixed cmd-clicking a URL at the end of a line in a full-screen app (such as irssi or mutt), which could open the URL with text from the next line appended.
  • Fixed AI tool calls failing with Ollama when a tool used a non-string argument such as a number or boolean.
  • Fixed a bug where a Python script that created a window and immediately read its current tab or session got nothing back, which broke scripts that split panes or changed the font of a freshly created window.
  • Fixed Duplicate Tab so a tab duplicated from a tab group stays in that group instead of being left as a stray one-tab group.
  • Fixed a bug where removing a tab from the middle of a tab group left the group discontiguous.
  • Fixed a spurious offer to reset key reporting mode after running a command in shells that use the kitty keyboard protocol, such as Fish 4.
  • Fixed the tab group outline in the Tahoe theme, which was being clipped: the top and bottom lines, the outline around the group chip, and the rounded end caps of the first or last group in the tab bar were partly or fully missing.
  • Fixed a faint vertical line that could appear inside a selected tab in the dark Tahoe theme.
View originalPermalink
How 3.7.1 went
3.7.1beta1Pre-release

Version 3.7.1beta1

Changed 1
  • Newlines embedded in completion suggestions now show as a return glyph to keep entries on one line instead of spilling across rows
Fixed 12
  • Fixed a crash on launch when restoring saved sessions that contained right-to-left text written by version 3.6.11
  • Fixed a memory leak where browser panes were never freed, leaking a WebKit process and a system power-management handle on every page load
  • Fixed a bug where navigating between tmux sessions or windows could freeze the UI for several seconds
  • Fixed dragging a file out of a session that failed when the terminal app used kitty's drag-and-drop protocol
  • Fixed cmd-clicking a URL at the end of a line in a full-screen app that could open the URL with text from the next line appended
  • Fixed AI tool calls failing with Ollama when a tool used a non-string argument such as a number or boolean

From iTerm2

September 10, 2026.

Improvements:

  • Newlines embedded in a completion suggestion (such as a command-history entry or file name) now show as a return glyph so the entry stays on one line instead of spilling across rows. The value inserted when you accept the row is unchanged.

Bug Fixes:

  • Fixed a crash on launch when restoring saved sessions that contained right-to-left text written by version 3.6.11. This could force you to discard all of your restored sessions.
  • Fixed a memory leak where browser panes were never freed, leaking a WebKit process and a system power-management handle on every page load. Over time this could exhaust a system-wide limit and break other apps that manage power (such as OrbStack).
  • Fixed a bug where navigating between tmux sessions or windows could freeze the UI for several seconds.
  • Fixed dragging a file out of a session that failed when the terminal app used kitty's drag-and-drop protocol.
  • Fixed cmd-clicking a URL at the end of a line in a full-screen app (such as irssi or mutt), which could open the URL with text from the next line appended.
  • Fixed AI tool calls failing with Ollama when a tool used a non-string argument such as a number or boolean.
  • Fixed a bug where a Python script that created a window and immediately read its current tab or session got nothing back, which broke scripts that split panes or changed the font of a freshly created window.
  • Fixed Duplicate Tab so a tab duplicated from a tab group stays in that group instead of being left as a stray one-tab group.
  • Fixed a bug where removing a tab from the middle of a tab group left the group discontiguous.
  • Fixed a spurious offer to reset key reporting mode after running a command in shells that use the kitty keyboard protocol, such as Fish 4.
  • Fixed the tab group outline in the Tahoe theme, which was being clipped: the top and bottom lines, the outline around the group chip, and the rounded end caps of the first or last group in the tab bar were partly or fully missing.
  • Fixed a faint vertical line that could appear inside a selected tab in the dark Tahoe theme.
View originalPermalink
How 3.7.1beta1 went
3.7.0

Version 3.7.0

Added 21
  • New iOS companion app iTerm2 Buddy that pairs with Mac via QR code for AI chat interaction over encrypted connection
  • Orchestration feature allowing AI chat to view all sessions and operate iTerm2 programmatically
  • Session Status system with custom subtitles, colors, and dot icons controllable via control sequence, it2 command, or triggers
  • Claude Code integration with Session Status support and Workflows feature for code review and diffs
  • Session Notes as floating, draggable, resizable, collapsible multiline text notes that persist across restarts
  • Workgroups feature to define transformations of sessions into clusters with split panes, tabs, or peers

From iTerm2

Major New Features:

  • Companion App: a new iOS app, iTerm2 Buddy, pairs with your Mac by scanning a QR code (iTerm2 > Companion Device Settings) and connects over an encrypted Noise channel so you can interact with iTerm2 via AI chat from your phone. Devices connect through an encrypted relay, so they work even when the Mac and phone are on different networks, and end-to-end encryption ensures that your data is only visible to you. First-time setup is now a guided wizard: it installs the AI and companion plugins, turns on both features with a single password prompt, takes your API key, and walks you through pairing your phone.

  • There's a new kind of AI chat called "orchestration" which can view all your sessions and operate iTerm2 for you.

  • A new Session Status system was added. Sessions can now report status that appears on their tab with a custom subtitle, color, and dot icon. Status can be set by a control sequence, the it2 command, or by triggers. The Session Status tool lets you view the status of all sessions in a window at a glance and the new Cockpit window lets you browse status across windows.

  • Claude Code integration was added. It enables the new Session Status feature for claude code sessions so you can see at a glance which instance is waiting for you. It also ties in with the new Workflows feature to facilitate viewing diffs and performing code reviews. It ties in with clippings so that AI-authored code review comments can easily be sent back to Claude code.

  • Session Notes were added: floating, draggable, resizable, collapsible multiline text notes attached to a session that persist across restarts.

  • The new Workgroups feature let you define how to transform a session into a cluster of related sessions. When a session enters a Workgroup, the cluster of related sessions is created. They can be in split panes, separate tabs, or "peers" which are like tabs within a split pane. Sessions in a workgroup have a unique name, a custom command, a customizable toolbar, and can even have custom behavior such as to drive AI code review or perform in-terminal diffs of a git repo. When a Workgroup spawns extra tabs, they are now collected into a tab group together with the session you entered from, and each spawned split or tab takes the name you gave it in the Workgroup so its tab title is recognizable.

  • Added tab groups: right-click a tab and choose Add Tab to Group to group Chrome/Firefox-style tabs. A named, colored chip heads each group; right-click it to rename, recolor, duplicate, move to a new window, ungroup, or close the group. Drag the chip to move the whole group, within a window or into another one; drag single tabs into, around, or out of a group. Groups persist their name and color with the member tabs.

  • You can now create screenshots including highlights and redactions using the Make Screenshot menu item.

  • Session archives were added. The new Session > Archives menu has “Save Archive of Current Session…” and “Restore Archive…” commands, and remembers your ten most recent archives. A per-profile setting can automatically archive a session to a configured directory when it closes. Restoring an archive reopens the session’s scrollback in a new window.

New Features in Terminal Sessions:

  • Right-to-left script support (bidi reordering plus Arabic and Persian cursive joining) is now enabled by default. You can turn it off in Settings > General > Experimental.
  • Double-width and double-height lines (DECDWL, DECDHL, DECSWL) are now supported via ESC #3, #4, #5, and #6.
  • Custom in-terminal buttons with SF Symbol icons that emit a user-defined escape code when clicked. To add one, send OSC 1337 ; Button=type=custom;code=N; icon= ST. The code must be positive. To invalidate all custom buttons, send OSC 1337 ; Button=type=custom ST.
  • A control sequence to programmatically fold and unfold blocks of output. Send OSC 1337 ; UpdateBlock=id=; action=fold ST (or action=unfold) where blockID matches a previously declared block ID (see custom escape sequence docs "Blocks" section for details).
  • A new SetProfileProperty control sequence lets you change profile properties at runtime. Send OSC 1337 ; SetProfileProperty== [;=...] ST, e.g. set “Cursor Type” to 2 by encoding the JSON value 2 as base64.
  • OSC 52 clipboard query responses now work with tmux 3.6+ in tmux integration.
  • Added OSC 21337 for session status. Send OSC 21337 ; indicator=<#rrggbb> ; status= ; status-color=<#rrggbb> ST to set the tab’s dot indicator, subtitle, and subtitle color. Send the same sequence with empty values to clear.
  • Smooth-typing animation for underscore and vertical-bar cursors can be enabled in Settings > Profiles > Text.
  • Relative timestamps (set via the Set Baseline for Relative Timestamps menu) now use Go-style unit suffixes such as +1m23s and +2h5m, giving sub-minute precision in the 1m–1h range that was previously rounded to whole minutes.
  • The new Fold All menu item folds everything (aside from folds at the very top of history). This makes it easy to keep history around without it getting in the way.
  • Added support for the Kitty drag-and-drop protocol (OSC 72). A program running in the terminal can accept files, text, and images dropped onto the window, and (when it has mouse reporting on, e.g. a full-screen TUI) can offer its own data to be dragged out to other apps. For a program on a remote host, dropped files are transferred to it over the connection. Hold Option while dropping to use the old paste/upload behavior instead.
  • Clippings is a new side panel that contains a list of items formatted as markdown. They're a useful place to store text that you need temporarily. The Claude Code integration uses Clippings to store code review comments so they can be shared between related sessions in a Workgroup.

New Features in Tabs, Windows, and UI:

  • Left and right tabs in the Minimal theme are now as tall as top tabs, giving subtitles room to render legibly. The height follows the existing Minimal tab bar height advanced setting.
  • Most window types support initial size as a percentage of the screen (used to be only number of rows and columns).
  • Tabs can be pinned so they stay put and are protected from reordering.
  • New Lock Size menu item and per-profile preference to prevent window resizing.
  • New Lock Layout menu item (in the Window menu, next to Lock Size) that freezes a window’s layout: it prevents splitting, adding or closing tabs, reordering tabs, closing or dragging panes, and moving panes or tabs to other windows. Resizing panes, opening new windows, and closing the window still work.
  • Panes can be locked to prevent accidental drag and drop.
  • Tabs can now be placed on the right side of the window.
  • The control-sequence-controlled progress indicator is now shown in the tab bar.
  • An active pane border can be displayed to highlight the focused pane.
  • You can now choose to show a Proxy icon in Compact and Minimal themes.
  • The tab color menu now has a color picker, recent colors, and an eyedropper tool.
  • Asymmetrical broadcasting via a per-session broadcast-source flag lets you prevent accidental typing in non-designated sessions from being broadcast.
  • New key binding action to send text without broadcasting.
  • Nerd Font glyphs are now rendered in pane title bars and tabs.
  • A unified dock badge combines bell count and tab status, and the old 999 cap on the bell count was removed.
  • Split pane icons were added to the context menu.
  • Hold Option when clicking a Split button in the Profiles panel to open the selected profiles as splits in a new window instead of the current one.
  • Background images can now rotate through a folder of images at a configurable interval. Pick a folder instead of a file in Settings > Profiles > Window > Background.
  • In the Jobs view (toolbelt and status bar popover) hovering on a row shows the full command as a tooltip, and pressing space opens a popover with the full command, process ID, start time, working directory, environment variables, and a list of open files and network connections.
  • The status bar can now draw a separator line between itself and the terminal content. Enable it in the status bar layout’s advanced settings.
  • Improve tab dragging: keep Metal enabled for normal tab drags, switch reorder slots near tab midpoints, and stabilize split-pane target highlights.

Triggers Improvements:

  • Event-based triggers can fire on events such as a session ending or a hostname change.
  • A trigger can now match when a session variable changes to a value matching a regex.
  • Triggers can be imported and exported as .it2triggers files.
  • A regex can now be used to define word characters for a trigger.
  • Nulls are now treated as spaces in trigger regex matching.
  • You can now assign a "job" to a trigger, which ensures the trigger is only active when that job is running. This makes it possible, for example, to write triggers that are only active while Claude Code is running.

AI Improvements:

  • The AI chat “View History” permission is now “View Contents”. When it is set to provide contents automatically, a session-bound chat includes the terminal’s visible screen with each message, not just on-request history tools.
  • An AI chat linked to a terminal session now stays linked when the session's shell restarts (which happens often with the Claude Code integration). Previously the link, its command permissions, and orchestrator @-mentions of the session were lost on every restart.
  • Chats in the AI chat list now get an icon drawn by your AI model from the chat title. Chats without one show a default icon. The prompt can be edited in Settings > General > AI > Prompts.
  • The AI command safety check now uses your configured AI model. It runs deterministic terminal rules first and only asks the model when those rules cannot decide. It can send commands to your (possibly cloud) provider, so it is opt-in. Users who already enabled it keep using free on-device Apple Intelligence and are asked once whether to switch to their model.
  • AI chat can connect to LAN-hosted models over HTTP.
  • Anthropic prompt caching now also covers the conversation history, not just the system prompt and tools. A rolling cache breakpoint on the latest message lets long chats reread the prior turns from cache instead of paying full input price every turn.
  • AI models updated.
  • The built-in AI model list is now data-driven and refreshes in the background, so new models appear without updating iTerm2.
  • DeepSeek v4 thinking mode is now supported. Toggle the lightbulb in the chat toolbar to enable. Reasoning summaries appear live in the conversation and round-trip correctly on multi-turn tool calls (fixes a 400 from the API when reasoning_content was missing).
  • The “Configure AI Model Manually…” popover now has a section for custom HTTP headers that are appended to every AI request (chat, vector store, and file upload). Useful for proxy auth or routing tags. Custom headers override built-in headers with the same name. Values are stored unencrypted in iTerm2’s preferences.
  • PDF chat attachments now work on Anthropic.
  • When AI chat types into a terminal, a newline is now sent as Return (carriage return) so it submits the line in programs like Claude Code instead of inserting a literal newline. The tool also reports how many characters were inserted.
  • Added a Zero Data Retention setting under Settings > General > AI. Turn it on if your …
View originalPermalink
How 3.7.0 went
3.7.0beta12Pre-release

Version 3.7.0beta12

Added 5
  • A new tab opened next to a tab that belongs to a tab group now joins that group
  • Tab group menu gained a New Tab in Group command
  • Tab Groups gained Window menu commands Select Next Tab Group and Select Previous Tab Group, plus Add Tab to New Group and Remove Tab from Group
  • You can now create and edit 1Password entries from the Password Manager, with the password sent securely and never appearing on the command line, requiring 1Password command-line tool version 2.23 or later
  • Added new Allow HDR effects advanced setting to gate the selected tab's bright HDR outline on macOS Tahoe, which is off by default to prevent display hangs on some systems
Changed 5
  • iTerm2 uses far less memory and CPU when a full-screen program repaints the screen rapidly, such as a TUI or an AI agent that redraws every frame, fixing runaway memory growth that could reach several gigabytes
  • When you enter a Workgroup, its tabs are now gathered into one tab group and given the names from the Workgroup configuration, and leaving the Workgroup restores the tab you started from to its previous name and group
  • The Password Manager now has a single Edit panel that changes an entry's name, user name, and password, available whenever a row is selected
  • The Keeper backend now supports Nested Shared Folders alongside the classic vault, both in one list labeled (Classic) or (Nested), with an Add Account panel offering a Use classic permission model choice
  • In AI chat, a session reference the assistant writes without a leading @ now renders as a clickable session link
Fixed 3
  • Programs that ask whether iTerm2 is in light or dark mode via the DSR 996 query now receive a reply
  • Right-to-left text no longer scrambles when a full-screen program scrolls part of the screen, and wrapped right-to-left lines shown from scrollback keep their correct display order
  • Fixed various crashes

From iTerm2

Changes since 3.7.0beta11:

Improvements:

  • iTerm2 uses far less memory and CPU when a full-screen program repaints the screen rapidly, such as a TUI or an AI agent that redraws every frame. This fixes runaway memory growth that could reach several gigabytes. Issue 12992.
  • When you enter a Workgroup, its tabs are now gathered into one tab group and given the names from the Workgroup configuration, so they are easy to tell apart. Leaving the Workgroup restores the tab you started from to its previous name and group. Issue 12967.
  • A new tab opened next to a tab that belongs to a tab group now joins that group, so it stays with the set you are working in. The tab group menu also gained a New Tab in Group command.
  • Tab Groups gained Window menu commands: Select Tab > Select Next Tab Group (⌃⇧⌘]) and Select Previous Tab Group (⌃⇧⌘[), plus Add Tab to New Group and Remove Tab from Group. The selection commands skip over the rest of a group. For an ungrouped tab they behave like Select Next/Previous Tab.
  • The Password Manager now has a single Edit panel that changes an entry's name, user name, and password, available whenever a row is selected. On backends that support it the edit is made in place, so renaming an entry keeps its other fields, such as one-time passwords, intact.
  • You can now create and edit 1Password entries from the Password Manager. The password you choose is sent securely and never appears on the command line. This needs the 1Password command-line tool version 2.23 or later.
  • The Keeper backend now supports Nested Shared Folders alongside the classic vault, both in one list labeled (Classic) or (Nested), and the Add Account panel offers a “Use classic permission model” choice.
  • In AI chat, a session reference the assistant writes without a leading @ now still renders as a clickable session link.

Bug Fixes:

  • Programs that ask whether iTerm2 is in light or dark mode (the DSR 996 query) now receive a reply. The query was being ignored, so tools that check it before drawing, such as delta, saw no response.
  • Right-to-left text no longer scrambles when a full-screen program scrolls part of the screen, and wrapped right-to-left lines shown from scrollback keep their correct display order.
  • The selected tab's bright HDR outline on macOS Tahoe is now off by default. It is gated behind a new “Allow HDR effects” advanced setting because forcing the display into HDR could hang some systems.
  • Fixed various crashes.
View originalPermalink
How 3.7.0beta12 went
3.7.0beta11Pre-release

Version 3.7.0beta11

Added 3
  • Settings > General > AI now includes an Automatically update available AI models checkbox and an Update Now button to refresh the model catalog from iterm2.com
  • Legacy script Python version upgrade warning now includes an Upgrade Now button to migrate affected scripts immediately
  • Companion Device Settings window shows a Show QR Code button and authenticates only after clicking it
Changed 4
  • Scrollable tab bars are now enabled by default, with tabs that do not fit staying in the bar and reached by scrolling instead of the More tabs overflow menu
  • Built-in AI model list now includes Claude Sonnet 5, GPT-5.6, and Gemini 3.x flash models, with recommended defaults updated to GPT-5.6 for OpenAI and Gemini 3.7 Flash for Gemini
  • The tmux Dashboard's Open in Tabs button now works with a single selected window, matching the Open in Window behavior
  • Dropping a local file on the terminal no longer offers to upload it over scp when the machine answers to multiple names
Fixed 7
  • Fixed several AI chat request bugs on the OpenAI Responses API including bare context delivery and user message dropping on turns after the first
  • Fixed AI tool schemas being rejected with HTTP 400 under strict mode and JSON null values in arrays crashing the response parser
  • Selected tab in a scrollable tab bar no longer paints over the tab bar's rounded border
  • On macOS Tahoe, the tab bar overflow menu no longer drops the first hidden tab
  • Cmd-W now closes the Companion Device Settings window instead of beeping
  • Companion Device Settings window no longer fires the Touch ID or password prompt on its own when opened or after unpairing
  • Fixed various crashes
Removed 1
  • Retired AI models Opus 4.1 and Gemini 2.0 flash are removed from the model list

From iTerm2

Changes since 3.7.0beta10:

Improvements:

  • Scrollable tab bars are now on by default. Tabs that don't fit stay in the bar and are reached by scrolling instead of the "More tabs" overflow menu. You can turn this off in Settings.
  • The built-in AI model list now includes Claude Sonnet 5, GPT-5.6, and the Gemini 3.x flash models, and the recommended defaults move to GPT-5.6 for OpenAI and Gemini 3.7 Flash for Gemini. Retired models (Opus 4.1, Gemini 2.0 flash) are removed.
  • Settings > General > AI has a new "Automatically update available AI models" checkbox and an Update Now button. The model catalog can refresh itself from iterm2.com so new models appear without updating iTerm2; these controls let you turn the automatic check on or off and run a check on demand.
  • The startup warning that a legacy script's pinned Python version will be bumped for the uv runtime now has an Upgrade Now button that migrates the affected scripts immediately, so a script you never launch no longer re-nags every launch.
  • The tmux Dashboard's Open in Tabs button now works with a single selected window, matching Open in Window. Issue 12994.
  • Dropping a local file on the terminal no longer offers to upload it over scp when your machine answers to more than one name (for example a .local name versus a DHCP-assigned name).

Bug Fixes:

  • Fixed several AI chat request bugs on the OpenAI Responses API: every turn after the first could reach the model as bare context with the user's newest message dropped; some tool schemas were rejected with an HTTP 400 under strict mode; and a JSON null inside an array could crash the response parser.
  • A selected tab in a scrollable tab bar no longer paints over the tab bar's rounded border.
  • On macOS Tahoe, the tab bar overflow menu no longer drops the first hidden tab: with one hidden tab the chevron opened an empty menu, and with more the first was missing.
  • Cmd-W now closes the Companion Device Settings window instead of beeping.
  • The Companion Device Settings window no longer fires the Touch ID / password prompt on its own when opened or after unpairing. It shows a "Show QR Code" button and authenticates only after you click it.
  • Fixed various crashes.
View originalPermalink
How 3.7.0beta11 went
3.7.0beta10Pre-release

Version 3.7.0beta10

Added 5
  • Tab groups that can be named, colored, collapsed, expanded, and dragged within or between windows
  • Kitty terminal drag-and-drop (OSC 72) support for accepting dropped files and dragging content to other apps
  • Scrollable left/right (vertical) tab bar that keeps tabs in the bar instead of using an overflow menu
  • Per-profile "Use ANSI colors for marks" setting to draw command-prompt mark indicators using color preset's ANSI colors
  • Keyboard toggle for the Advanced Paste indicator to switch between waiting for shell prompt and sending keystrokes directly
Changed 5
  • Require macOS 13 (Ventura) or later; macOS 12 is no longer supported
  • The uv-based Python runtime is now enabled by default for newly created, imported, and migrated API scripts
  • Key binding matching now offers to enable "Interpret key bindings based on physical key" when a keystroke matches by physical key but not character
  • Confirmation dialog for closing a workgroup session now warns that peers and their tabs will also close
  • ConEmu progress protocol's paused state (OSC 9;4;4) is now honored even when the percentage is omitted
Fixed 10
  • Restoring a session whose saved working directory no longer exists no longer silently closes the tab
  • Decomposed Hangul jamo are now recomposed into a single cell instead of being split into separate cells
  • The 16th parameter of an SGR trigger is no longer dropped
  • Toolbelt list tools (Command History, Recent Directories, Captured Output) no longer draw their rows at zero width when a window opens with the toolbelt showing
  • On macOS Tahoe dark themes, selected left/right tab chrome is drawn at the tab's real height instead of a fixed cap-image height
  • The top-right session indicators no longer smear while swiping between tabs

From iTerm2

This version requires macOS 13 (Ventura) or later. macOS 12 is no longer supported. Sorry for the inconvenience!

New Features:

  • Tab groups. Select tabs and gather them into a named, colored group marked by a chip on the tab bar. Groups stay contiguous, can be collapsed and expanded with an animation, and can be dragged as a unit within a window or out to a new or existing window. A right-click chip menu and a Firefox-style "Add Tab to Group" tab menu let you rename, recolor, close, or ungroup. Works on horizontal and vertical tab bars.
  • Kitty terminal drag-and-drop (OSC 72). Programs that speak the protocol can accept files dropped onto the terminal window and can start a drag of their own content out to other apps, including across an SSH connection when using it2ssh.
  • The left/right (vertical) tab bar can now be made scrollable: turn on the new setting and tabs that don't fit stay in the bar and are reached by scrolling instead of the "More tabs" overflow menu. This also works on horizontal tab bars.
  • The uv-based Python runtime is now on by default. Newly created, imported, and migrated API scripts get a faster, self-managing interpreter instead of the bundled Python runtime. You can still override this in Advanced Settings, and already-provisioned scripts are unaffected.

Improvements:

  • A new per-profile "Use ANSI colors for marks" setting (Profiles > Colors, off by default) draws command-prompt mark indicators using the color preset's ANSI blue, red, and yellow so they harmonize with your theme.
  • The Advanced Paste indicator now has a keyboard toggle so you can switch a running paste between waiting for the shell prompt and sending keystrokes straight through, which lets you answer a password or other non-standard prompt mid-paste. Issue 5749.
  • When a keystroke with a modifier matches no key binding by character but does match one for the same physical key (for example after switching keyboard layout or when an input method changes the character a key reports), iTerm2 now offers to turn on "Interpret key bindings based on physical key".
  • The confirmation for closing a workgroup session now warns that the rest of the workgroup, its peers and their tabs, will close too.
  • The ConEmu progress protocol's paused state (OSC 9;4;4) is now honored even when the percentage is omitted. Issue 723.

Bug Fixes:

  • Restoring a session whose saved working directory no longer exists (for example a network drive that is not mounted at launch) no longer fails to relaunch the shell and silently closes the tab. Issue 12955.
  • Decomposed Hangul jamo are now recomposed into a single cell instead of being split into separate cells. Issue 3063.
  • The 16th parameter of an SGR trigger is no longer dropped by an off-by-one in the parameter store. Issue 722.
  • Toolbelt list tools (Command History, Recent Directories, Captured Output) no longer draw their rows at zero width when a window opens with the toolbelt showing. Issue 12964.
  • On macOS Tahoe dark themes, selected left/right tab chrome is drawn at the tab's real height again instead of a fixed cap-image height, so a custom tab bar height looks right. Issue 715.
  • The top-right session indicators no longer smear while swiping between tabs.
  • Fixed a window leak from the frame canonicalizer.
  • A workgroup no longer shows a blank pane when it tears down while a non-main peer is on screen, and a peer host's toolbar now refreshes after its nested port is wired.
  • Fixed word-boundary punctuation typos in the default settings. Issue 720.
  • Fixed two format-string bugs in logging calls. Issue 712.
  • Fixed various crashes.
View originalPermalink
How 3.7.0beta10 went
3.7.0beta9Pre-release

Version 3.7.0beta9

Added 5
  • Add Suppressed Alerts panel that lists warnings you silenced with "remember my choice" so you can turn them back on
  • Add manual AI model editor with one-tap presets for OpenAI-compatible providers (Ollama, OpenRouter, z.ai, Qwen, MiniMax) and a Test Connection button
  • Add Copy URL option when right-clicking an auto-detected URL to remove hard line breaks from wrapped URLs
  • Add Zero Data Retention setting under Settings > General > AI to stop sending previous_response_id and set store=false
  • Add Clear Terminated button to Script Console that removes stopped script and connection entries
Changed 10
  • Web URLs handed to iTerm2 now open in the built-in web browser instead of launching a terminal, unless you have bound the scheme to a specific profile
  • Enable right-to-left script support (bidi reordering plus Arabic and Persian cursive joining) by default
  • AI chat history is now replayed to the model from the exact bytes previously sent rather than rebuilt each turn to keep the prompt cache valid
  • AI chat linked to a terminal session can now watch that session and tell you when it reaches a described state or condition
  • ⌘-click now linkifies very long URLs in full, scanning to the next separator and handling internationalized (IDN) hostnames
  • When AI chat types into a terminal with the insert-at-cursor tool, a newline is now sent as Return so it submits the line
Fixed 5
  • Fix local privilege issue where the orphaned-session server adopter connected to a socket without checking ownership, allowing man-in-the-middle attacks
  • Fix authenticated Python API client ability to exhaust iTerm2's memory by flooding it with WebSocket ping frames by bounding inbound buffering
  • Fix sixel image whose String Terminator was written as ESC ESC \ instead of ESC \ being discarded with a stray backslash
  • Fix ⌘-click to again open files in JetBrains IDEs by invoking the launcher directly
  • Fix toggling Caps Lock under the Kitty keyboard protocol with "report all keys as escape codes" no longer sending an "A"

From iTerm2

Changes since 3.7.0beta8:

Heads up: future betas will require macOS 13 (Ventura) or later. This is the last version to support macOS 12. Sorry for the inconvenience!

New Features:

  • iTerm2 > Suppressed Alerts is a new panel that lists warnings you silenced with "remember my choice" so you can turn them back on. For example, answering No and checking the box on the prompt that asks before displaying a terminal-initiated image silently disabled all inline images with no obvious way to undo it; now you can find that choice and clear it. The old "Always Show Alerts with Remembered Selections" command moves into this panel. Issue 12963.
  • The manual AI model editor now offers one-tap presets for OpenAI-compatible providers (Ollama, OpenRouter, z.ai, Qwen, MiniMax) that fill in the endpoint for you, plus a Test Connection button that verifies your settings and API key before you save.

Improvements:

  • Web URLs handed to iTerm2 (by the OS as your default browser, by "open -a iTerm2 ", by Velja, or by vim's gx) now open in the built-in web browser instead of launching a terminal, unless you have bound the scheme to a specific profile. If the browser plugin is not installed, iTerm2 offers it once. Issue 12431.
  • Right-clicking an auto-detected URL (the kind ⌘-click opens) now offers Copy URL, which removes the hard line breaks from a wrapped URL so a clean link lands on the clipboard. Issue 12944.
  • Right-to-left script support (bidi reordering plus Arabic and Persian cursive joining) is now enabled by default. You can turn it off in Settings > General > Experimental. Issue 4361.
  • AI chat history is now replayed to the model from the exact bytes previously sent rather than rebuilt each turn, so the prompt cache stays valid across turns (including turns that ran a tool) and long conversations keep getting cheaper and faster.
  • Added a Zero Data Retention setting under Settings > General > AI. Turn it on if your OpenAI organization has Zero Data Retention enabled. iTerm2 then stops sending previous_response_id and sets store=false, so chats no longer fail on the second message. Issue 12521.
  • An AI chat linked to a terminal session can now watch that session and tell you when it reaches a described state or condition, without polling. Previously only orchestration chats could set watches.
  • ⌘-click now linkifies very long URLs in full. Previously only the first couple thousand characters were clickable; the linkifier now scans onward to the next separator, handles internationalized (IDN) hostnames, and no longer joins a URL to unrelated text across a hard line break.
  • When AI chat types into a terminal with the insert-at-cursor tool, a newline is now sent as Return so it submits the line in programs like Claude Code instead of inserting a literal newline.
  • Preferences search now finds several Colors-tab settings that were previously unsearchable, such as Border around active pane, Use custom tab color, and the light/dark color controls.
  • The Script Console has a Clear Terminated button that removes stopped script and connection entries, so it no longer grows without bound (and slows the app) when you repeatedly restart a script. Issue 12942.
  • A new tmux window opened with ⌘T now picks up the profile's custom tab title, if one is set.
  • iTerm2 now probes the local network on every launch so macOS keeps it in the Local Network privacy list. This recovers the permission after a tccutil reset or an OS upgrade, fixing commands like "ping 10.0.0.1" failing with "no route to host". Issue 12956.
  • Faster rendering of text with many colors (such as syntax-highlighted code) by reusing attribute dictionaries across color spans instead of rebuilding one per span. Issue

Bug Fixes:

  • Fixed a local privilege issue where the orphaned-session server adopter connected to a socket in a world-writable directory without checking who owned it. A local attacker could pre-create the socket and man-in-the-middle a restored session, capturing keystrokes and output. The peer's identity is now authenticated before anything it sends is trusted.
  • Fixed a way for an authenticated Python API client to exhaust iTerm2's memory by flooding it with WebSocket ping frames while never reading the replies. Inbound buffering is now bounded and such a client is disconnected. Credit to NSEcho.
  • A sixel image whose String Terminator was written as ESC ESC \ instead of ESC \ is no longer discarded, leaving a stray backslash on screen. The image now renders. Issue 12259.
  • ⌘-click again opens files in JetBrains IDEs (IntelliJ IDEA, WebStorm, Rider). iTerm2 now invokes the IDE's launcher directly so the file opens in the already-running instance instead of silently starting a new one. Issue 12958.
  • Toggling Caps Lock under the Kitty keyboard protocol with "report all keys as escape codes" no longer sends an "A". It now reports the Caps Lock key's own code. Issue 12922.
  • Fixed the Kitty keyboard protocol SET request destroying the whole flag stack instead of modifying only the current frame.
  • The OSC 9;4 progress bar drawn in the tab is no longer hidden by the active-pane border when both are enabled. Issue 12960.
  • In tmux -CC sessions with pane-border-status set to top or bottom, panes are no longer one row too tall (the bottom line went unused and the cursor landed a row high after reattaching). Issue 12925.
  • tmux panes no longer receive stray focus-report escape sequences when the server's focus-events option is on. Focus reporting now turns on only when the pane's own program requests it, so it no longer pollutes the shell prompt or flips bash's vi mode. Issue 12933.
  • Make Screenshot no longer drops ASCII programming ligatures (-> => != and so on) when the profile and font support them.
  • The Centered window style now looks and behaves like a normal window (title bar, the close, minimize, and zoom buttons, and the merged chrome of the Minimal and Compact themes), except that it stays centered. It also no longer changes size when you minimize and restore it. Issue 12918.
  • A left- or right-of-screen window no longer changes width when you add a tab whose profile has a different width. Issue 12917.
  • Split-pane dividers in different rows or columns can now be dragged into alignment: a divider snaps to a matching divider elsewhere in the tab when it comes within half a cell, fixing a sub-cell misalignment that whole-cell drag steps could not correct. Issue 12932.
  • Modified function keys (such as Shift-F5) no longer lose their modifier in a tmux integration (tmux -CC) session, which sent the unmodified sequence instead of the xterm form. Issue 10717.
  • The suggested filename for Save contents no longer contains colons or slashes, which macOS rendered as "/" in the save panel and Finder. Issue 12931.
  • The command info popover's "Started at" time now honors the system 24-Hour Time setting instead of always using a 12-hour clock. Issue 12929.
  • Fixed several VoiceOver problems in the terminal: QuickNav now engages without toggling it off and on, content no longer goes stale when output arrives during an interaction, and the review cursor no longer jumps to the top. Issue 12920.
  • Reshaping a tab through the Python API's apply-layout call no longer leaves the window with no focused pane, so typing works without first clicking a pane.
  • Switching between the main and alternate screen buffers no longer resets a manual key-reporting choice when both screens report the same flags.
  • Pressing Undo Close when the last closed session cannot be revived no longer leaves an invisible empty window behind, which also crashed Python API scripts with a runaway refresh loop.
  • Fixed a black-holed companion relay connection that could leave the Mac believing it was connected for hours over a socket the relay had already dropped. A keepalive ping that gets no response within ten seconds now tears the socket down and reconnects.
  • A three-finger drag over an app with mouse reporting on (tmux with mouse on, or vim with mouse=a) no longer produces both the app's own selection and a native iTerm2 selection at once.
  • Fixed various crashes.
View originalPermalink
How 3.7.0beta9 went
3.7.0beta8Pre-release

Version 3.7.0beta8

Added 1
  • The it2 command-line tool now works on hosts you reach through SSH integration
Changed 12
  • Session-bound AI chats can now include your terminal's visible screen and state with each message automatically, and read the screen on request with the same get_screen_contents tool the orchestrator uses
  • The "View History" permission is now "View Contents" and gates both screen sharing and reading
  • AI chat can now restart a session for you, with the "Type for You" permission renamed to "Control Terminal" and now also gating session restart
  • An AI chat linked to a terminal session now stays linked when the session's shell restarts
  • AI chat orchestration is now much less chatty, reporting one line per real outcome instead of narrating every step
  • Companion push notifications are now coalesced so you get fewer notifications
Fixed 7
  • An AI chat linked only to a web browser now uses a browser-appropriate system prompt instead of one that described a terminal
  • Fixed a memory corruption bug that could crash iTerm2 intermittently when closing a tmux window caused surviving sessions to resize while output was still streaming
  • Fixed a hang where a modal sheet whose parent window was destroyed before it was dismissed left the main thread frozen in the modal run loop
  • Fixed key reporting using stale flags after switching between the main and alternate screen buffers, which could leave modified-key input wrong for some full-screen apps
  • OSC 22 pointer shapes are now honored while mouse reporting is on, with fleur, watch, plus, and minus shapes added and X_cursor mapped to the not-allowed cursor
  • Fixed flag emoji rendering as blank cells or flickering under the GPU renderer by shaping the two regional indicators together
  • Command-clicking links in terminal output no longer crashes when command-mark data is unavailable

From iTerm2

Note: if you are beta testing the iPhone companion app iTerm2 Buddy, you'll need to update it after upgrading iTerm2 to this version.

New Features:

  • The it2 command-line tool now works on hosts you reach through SSH integration.

Improvements:

  • Session-bound AI chats can now include your terminal’s visible screen and state with each message automatically, and read the screen on request with the same get_screen_contents tool the orchestrator uses (in a full-screen app it returns just the current screen, with no scrollback). The “View History” permission is now “View Contents” and gates both. iTerm2 asks once before it starts sharing your screen automatically, so a permission left at “Always” from an earlier version shares nothing until you confirm.
  • AI chat can now restart a session for you. The “Type for You” permission was renamed “Control Terminal” and now also gates this.
  • An AI chat linked to a terminal session now stays linked when the session’s shell restarts (which happens often with the Claude Code integration). Previously the link, its command permissions, and orchestrator @-mentions of the session were lost on every restart.
  • AI chat orchestration is now much less chatty. While it runs a loop (for example, waiting for a Code Review to finish and then telling a session to continue), it reports one line per real outcome instead of narrating every step and asking what to do next each time.
  • Companion push notifications are now coalesced so you get fewer notifications.
  • The keychain permission prompt that appeared after upgrading, for AI API keys and for a paired companion device, no longer recurs on every update. Those secrets now live in an entitlement-scoped keychain group that stays readable across signed builds. Upgrading to this version prompts once more to move them.
  • Tab dragging is smoother: Metal stays enabled for normal drags, reorder slots switch near tab midpoints, and split-pane drop targets are more stable.
  • Performance improvements.
  • The retrospective debug log no longer retains typed characters, command lines, passwords, tokens, or AI chat content. These could previously accumulate in memory even with debug logging off.
  • The screenshot window’s Copy to Clipboard button now flashes a “Copied!” confirmation so you get feedback that the image was copied.
  • The settings search field again uses the system focus ring on macOS 26.5.1 and later, where a workaround for an earlier OS bug otherwise left stray fragments below the capsule.

Bug Fixes:

  • An AI chat linked only to a web browser now uses a browser-appropriate system prompt instead of one that described a terminal it was not attached to.
  • Fixed a memory corruption bug that could crash iTerm2 intermittently, most often when closing a tmux window caused surviving sessions to resize while output was still streaming. Lazily cached line-wrapping info could be written into scrollback storage shared with another thread. Issue 12941.
  • Fixed a hang where a modal sheet (such as an alert) whose parent window was destroyed before it was dismissed left the main thread frozen in the modal run loop forever.
  • Fixed key reporting using stale flags after switching between the main and alternate screen buffers, which could leave modified-key input wrong for some full-screen apps. Issue 704.
  • OSC 22 pointer shapes are now honored while mouse reporting is on, instead of always forcing the I-beam-with-circle cursor. Added the fleur, watch, plus, and minus shapes and mapped X_cursor to the not-allowed cursor. Issue 700.
  • Fixed flag emoji (such as a country flag) rendering as blank cells or flickering under the GPU renderer. The two regional indicators that make up a flag are now shaped together, matching the non-GPU renderer.
  • Command-clicking links in terminal output no longer crashes when command-mark data is unavailable.
  • Hiding a hotkey window on macOS 26 no longer briefly flashes background iTerm2 windows to the front. The window now waits for the previously active app to come forward before ordering out.
  • Global search no longer shows blank snippets for results found on the main screen while an alternate-screen app (such as a full-screen TUI) is running. Snippets are extracted from the same snapshot the search ran against.
  • Fixed a case where a Claude Code workgroup pane (such as Diff or Code Review) could close itself when its command exited and take the whole workgroup down with it. Spawned workgroup panes now pin their end action so the profile’s “Close Sessions On End” setting can no longer flip them to close on their own.
  • Reloading a diff session in a workgroup now re-runs the command matching the file picker’s current selection. Previously, if the file you were viewing stopped having changes and the picker snapped back to “All Files”, reload reran the old per-file diff, found nothing, and exited, closing the session.
  • Fixed a black bar and off-by-a-row click hit-testing when filtering, taking a screenshot, or zooming lines in a session that carries extra chrome such as the workgroup peer-mode toolbar. Instant replay also restores the window to its original size on exit.
  • The built-in web browser now prompts for a user name and password when a site returns an HTTP authentication challenge (Basic, Digest, or NTLM) instead of failing to load.
  • A saved status bar layout whose RPC-provided text component is missing its registration request is now dropped instead of showing up as a blank “ghost” cell.
  • Fixed modified keys such as Ctrl-J and Shift-Enter not reaching some apps (for example Codex) running under tmux integration (tmux -CC). iTerm2 now hands these keys to tmux by name so tmux encodes them just as it does outside control mode.
  • Fixed auto-sending code review results to the main session sometimes failing to submit because the Return arrived too soon after the paste. The Return now waits a moment (see the workgroupAutoSendSubmitDelay advanced setting).
  • If you never paired a companion device, iTerm2 no longer touches the companion keychain items at launch, avoiding a spurious keychain permission prompt for people who alternate differently-signed builds (such as a released build and one built from source).
  • Fixed various crashes.
View originalPermalink
How 3.7.0beta8 went
3.6.11

Version 3.6.11

  • Fix a number of bugs that caused crashes.
  • Update AI models.
View originalPermalink
How 3.6.11 went
View all

Discussion