terminal

Product updates

Changelog

What changed in each terminal release: new features, improvements, and fixes.

releases
40
contributors
11
latest
v0.9.1
v0.9.1
Latest01
  • Selected text in an Alacritty pane stays selected, and copies with ⌘C, while a program such as Claude Code keeps redrawing the rows under it. The selection used to vanish on the next spinner tick, so there was nothing to copy
v0.9.0
02
  • Coding agents can coordinate through Terminal. From any shell, `terminal +pane` splits a pane without taking focus, runs a command in it, and reads or waits for its output; `terminal +agent` starts Claude Code, Codex, Gemini, Grok Build, OpenCode, Cursor Agent, Aider, Amp, or Pi in a pane, sends it a prompt, and waits for its result. Reach is limited to the project the calling shell belongs to. Turn on **Let coding agents coordinate panes** in Settings → Agents to link the skill that teaches agents this into Claude Code, Codex, and the others, plus lifecycle hooks for OpenCode, Pi, and Grok Build
  • Panes, tabs, and projects show a badge for each agent in them: starting, working, needing attention, or finished. A finished or blocked agent in a pane you are not looking at posts a notification, and Agents → Next Agent Needing Attention (⇧⌘A) jumps to it
  • Fixed Alacritty panes showing the same rows twice, and sometimes jumping, after scrolling back while a program such as Claude Code or Codex kept redrawing below the transcript. The viewport was being moved by rows that never entered the scrollback, so it walked past the oldest line
v0.8.0
03
  • Text being composed with an input method (Bopomofo, Pinyin, Japanese) shows every character as it is typed in Alacritty panes. The last one was hidden until Enter confirmed it
  • Shift-click extends the selection in Alacritty panes to the clicked cell, including after scrolling away from where the selection began.
  • Choose the terminal cursor in Settings → Terminal: block, bar, or underline, blinking or steady. It reaches terminals that are already open, and steps aside for programs that ask for a cursor of their own
  • Dictation and other assistive tools can enter text in a terminal pane. Panes are text areas to VoiceOver now, and only the focused, visible one accepts what is typed into it
  • Cmd+V pastes straight into the terminal, multi-line commands included, instead of stopping at a confirmation sheet. Turn on **Warn before pasting a command** in Settings → Terminal to be asked first. A program reading the clipboard over OSC 52 is still asked about every time
  • Fixed a crash on every Git refresh once a file had been removed from the index but left on disk, as `git rm --cached` leaves it
  • Fixed new panes failing to start a shell after a long session on the Ghostty backend. Every tab switch exported the screen, and each export leaked two file descriptors, so a day's work could exhaust the process's table
  • Fixed **cd Here** in the Files panel doing nothing on the Ghostty backend: the command was typed at the prompt but never ran until you pressed Return yourself
  • **Never read protected folders** in Settings → Privacy keeps Terminal's own file, Git, and search panels out of Desktop, Documents, Downloads, your media folders, iCloud Drive, and mounted volumes, so macOS stops asking for access on their behalf when a terminal cd's into one. Those folders show as locked in the file panel until you turn it back off. Commands you run in a terminal are unaffected — macOS asks about those itself
v0.7.0
04
  • The command palette can put a frames-per-second badge in the sidebar header, for seeing how fast a window is really redrawing. It counts the frames the display presented rather than the time that passed, and stops counting while Terminal is in the background so a window you switched away from does not read as slow
  • Panes no longer freeze on the last frame before a TUI stops to ask you something — Claude Code's selection menus being the everyday case. The Alacritty backend misread multibyte characters such as ❯ as control codes, lost track of the frame the program was drawing atomically, and kept holding presentation until the next keystroke produced output
v0.6.0
05
  • Recent Commits in the Git panel opens: each commit shows the files it touched, and clicking one shows that file as it changed in that commit. Branch and tag names appear beside the commits they point at, and history loads 30 at a time instead of stopping at eight
  • Git operations now show their progress on the control you used — the branch menu, Commit, Sync — instead of a banner at the top of the panel, and only failures interrupt you. Creating a branch asks in a dialog rather than a row that pushed the file list down
  • The Git panel can no longer be left spinning by a repository that never answers — a disconnected volume, or a credential helper waiting on a prompt. It gives up and offers a retry instead
  • Clicking a changed file in the Git panel now opens it in the same side-by-side view Compare uses. An unstaged change sits beside your live file, so you can read it and fix it in the same place and press ⌘S — and it follows a terminal over ssh the way the panels do. A staged change shows what you staged against the last commit, without folding in edits you have made since. Diffs are ordinary panes now: split them, or drag one into a split. The separate diff layout is gone, so diffs no longer offer a unified view
  • A toolbar under the active tab shows the repository the terminal is working in: its branch, and the lines added and deleted so far — or a green Clean when there is nothing pending. The branch opens a searchable switcher that floats the current branch to the top and marks the remote's default; the counts open the Git panel, and include untracked files the way `git diff` does not. Right-click the toolbar to hide it, or choose in Settings → Appearance → Toolbar whether it appears in every project, only in Git repositories, or never. It follows a terminal onto a host it has `ssh`'d into, like the panels do, and it starts out hidden
  • File names carry their own icons — 300 of them, from the Material Icon Theme — in the file tree, the Git panel, tab labels, pane headers, the pane switcher, and ⌘P results
  • Drag a tab down onto the current tab's content to turn it into a split pane. A tab that is already split keeps its panes and their proportions
  • Command-click a file path in a terminal to reveal it in Finder, or Command-right-click a path or URL to open it as a file or browser tab or pane. Paths are resolved against the terminal's own directory, and the `file:12:5` suffixes compilers print are understood
  • Terminal notifications play the system sound, and clicking one brings Terminal forward and jumps to the session that posted it. Notifications from Grok and other OSC 777 programs now arrive in Alacritty panes too
  • Alacritty panes take modified keys the way Ghostty panes do: Shift-Return inserts a newline in Claude Code instead of submitting, Ctrl with the number row sends the right control codes, and the numeric keypad works in application mode. Programs can also set the mouse pointer's shape, and mouse-reporting apps show the arrow
  • Close Files and Close Diffs in the tab context menu clear those panes everywhere without touching terminals
  • With the left sidebar hidden, its toggle stays reachable in the header, and a strip beside the tabs is always free to drag the window by
  • Selecting a tab now scrolls it clear of the strip's fade instead of leaving it half-covered
  • Fix a rare crash while using the Ctrl-Tab switcher
  • Fix browser panes reporting an outdated browser to sites such as Bilibili
  • Fix the app hanging when a terminal sat in a directory outside any repository
  • A new terminal opens in the project's pinned directory when it has one, rather than following the current session
v0.5.0
06
  • Holding a key down in a terminal repeats it. Hold j or k to run through `git log`, a file in `less`, or anything else that scrolls a line at a time, instead of tapping the key
  • Git and Compare follow a terminal onto the host it has connected to, the way the Files panel already did: `ssh` somewhere and they describe that machine's repository — its branch, tracking, history, changed files, and every diff and comparison, opened over the same connection. ⌘P searches that machine's files too. They are read-only there, so committing, staging, discarding, and reverting stay with the checkout on your Mac. All three panels follow the directory you `cd` to on that host with nothing to install or configure there, including on hosts that were previously stuck at your home directory because their shell reports nothing to terminals it doesn't recognize. Where the directory genuinely can't be established — a shell inside `screen` or `tmux` — the panel says so instead of claiming there is no repository
v0.4.0
07
  • Cmd+Plus, Cmd+Minus, and Cmd+0 now resize whatever you last clicked into: the sidebars and panels when you are working there, the terminal text when you are in a pane, a web page in a browser pane. The interface and terminal sizes are remembered separately, and the interface now goes up to 24 pt
v0.3.0
08
  • Scrolling the scrollback with a trackpad follows your fingers by the pixel instead of jumping a whole row at a time, and comes to rest wherever you let go. Scrolling inside a full-screen program is unchanged — those still read whole rows
  • Terminal panes now use the Alacritty emulator core by default, drawn by Terminal's own renderer. That is what makes the scrolling above possible, and it uses less memory. If you prefer Ghostty's, Settings → Terminal → Backend switches back and remembers the choice. Sessions you have already opened keep their scrollback; the backend applies to panes opened after the switch
v0.2.0
09
  • Terminal is now a download: every release attaches a `.dmg` you can drag to Applications instead of building from source. It is unsigned, so macOS quarantines it until you run `xattr -dr com.apple.quarantine /Applications/Terminal.app` once
  • The Files panel follows a terminal onto the host it has connected to: `ssh` somewhere and the file tree shows that machine's files, browsable and openable read-only over the same connection you are already using. Git and Compare still describe your Mac, which is where the checkout is
  • Compare your working tree against any branch or commit and keep editing: the target sits read-only beside your live file, a Compare panel lists every file that differs, each line shows who last changed it, and any file can be reverted to the target
  • Opening files is much faster: switching back to an open file is now instant (keeping its undo history), and large files no longer stall while scrolled away from the top
  • Add per-pane live titles and split controls in split layouts, where splitting divides only the focused pane and leaves its neighbors at the size you gave them
  • The Files panel now shows repository status with colored filenames and badges, including dimmed Git-ignored files
  • Zoom the terminal text with Cmd+Plus (or Cmd+=) and Cmd+Minus, or Cmd+0 for the default size, without opening Settings — in a browser pane the same keys zoom the page
  • Switch directly to tabs with Ctrl+1–9, without also holding Shift
  • The Ctrl-Tab switcher now lists tabs in the order you last used them and opens already pointing at the previous tab, so a quick Ctrl-Tab flips between the two tabs you're working in
  • Opening a folder no longer lets that repository's own Git configuration run commands on your machine
  • Terminal links that would leave your browser and launch an application now ask first, showing where the link really leads
  • Editing a symlinked file writes through the link instead of replacing it
  • Saving a file that changed on disk since you opened it now offers to overwrite or reload instead of silently discarding the other change
  • Saved terminal history is now readable only by your user account
v0.1.34
10
  • Show terminal titles verbatim while keeping sidebar project rows stable as titles update or hover controls appear
  • Follow the terminal's foreground job into another checkout: when an agent switches to its own git worktree, Files, Git and Info re-root to it
  • Settings font preview now reflects “Thicken font strokes”
  • Prevent terminal tabs from crashing after switching sessions or resizing during a partial redraw
  • Files created in a terminal now use your system's default permissions instead of being made private to your user
v0.1.33
11
  • Fix: never set `LANG` env for the terminal session
v0.1.32
12
  • Add native English, Simplified Chinese, and Japanese localization throughout the app, with a language picker in Settings
  • Search and open files from the project directory in the command palette
  • Open native browser tabs and split panes from the command palette or terminal/editor context menus, with a combined address/search field, navigation controls, page sharing, and restored URLs
v0.1.31
13
  • File previews now refresh after files are changed outside Terminal
  • Option-key characters from macOS input sources such as Polish Pro now work in terminals; users who prefer terminal Meta bindings can opt in under Settings → Terminal
v0.1.30
14
  • Fix Chinese IME under Alacritty backend
  • Reduce hidden Ghostty tab renderer memory
v0.1.29
15
  • Add `terminal` command: run `terminal` in any Terminal terminal to create a project in the current directory, optionally with an argv to run directly (`terminal vim ~/foo.js`); `terminal +themes` browses themes with a live app-wide preview and saves the selection on Return
  • The Git panel now refreshes after commands and when Terminal regains focus instead of polling continuously in the background

…plus 25 earlier releases not shown here.