Version 3.7.0
- 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
- Tab groups allowing Chrome/Firefox-style tab organization with named and colored chips
- Make Screenshot menu item to create screenshots with highlights and redactions
- Session archives with Save Archive and Restore Archive commands and automatic archival on session close
- Right-to-left script support with bidi reordering and Arabic and Persian cursive joining enabled by default
- Support for double-width and double-height lines via DECDWL, DECDHL, DECSWL escape sequences
- Custom in-terminal buttons with SF Symbol icons that emit user-defined escape codes via OSC 1337
- Control sequence to programmatically fold and unfold blocks of output via OSC 1337 UpdateBlock
- SetProfileProperty control sequence to change profile properties at runtime via OSC 1337
- OSC 52 clipboard query responses working with tmux 3.6+ in tmux integration
- OSC 21337 control sequence for session status with indicator, status text, and status color
- Smooth-typing animation for underscore and vertical-bar cursors in Settings
- Relative timestamps with Go-style unit suffixes such as +1m23s and +2h5m for sub-minute precision
- Fold All menu item to fold everything except folds at very top of history
- Support for Kitty drag-and-drop protocol allowing programs to accept dropped files, text, and images
- Clippings side panel for storing temporarily needed text formatted as markdown
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 …