Changelog
v1.33.2
· GitHub ↗
What's New
- Settings → General → Opening Text Files has a Make Default… button that makes Macterm the default app of every text file type with one click. (#666)
Fixes
- After you close a second window on a tab, keys such as ⌃C, ⌃D and the arrows reach the program in a new pane again. (#660)
- In Settings, a pane that you scroll no longer shows through its title. (#668)
macterm session infono longer reports a client that does not exist. (#669)- Kitty graphics images are removed with the scrollback that you clear, and a cancelled image transfer leaves no partial data. (#664)
Thanks to @carlocaione and @thdxg for this release.
v1.33.1
· GitHub ↗
What's New
- A new Toggle Toolbar keybind (⌥⌘T) hides or shows the toolbar, so one chord brings back a hidden toolbar. (#656)
Fixes
- On macOS 26, the adaptive Dock icon fills the icon grid again and is no longer smaller than other app icons. (#662)
- The app menu shows one Settings… item again, not two. (#659)
Thanks to @carlocaione, @jcuhnoio and @thdxg for this release.
v1.33.0
· GitHub ↗
What's New
- Copy mode lets you move through the scrollback and select text from the keyboard: press ⌘⇧Space in a pane, and a cursor moves with Vim or Helix keys (choose in Settings → Keymaps → Copy Mode), with counts, search, a click that moves the cursor and page motions that scroll smoothly. (#608, #611, #613, #614, #615, #618, #624)
- Explain Output asks Apple Intelligence on your Mac to explain a selection or the output of the last command in a popover, from the right-click menu, the command palette or ⌘⇧E, and nothing leaves the Mac. (#622)
- Read-Only Mode stops all input to a pane, shows a Read-Only pill on it, and makes
macterm pane runandpane keyreport that the pane refused the input. (#612) - Macterm is available in Korean and Simplified Chinese, and Settings → General → Language selects the app language. (#617, #619, #620)
- A new Liquid Glass app icon, and on macOS 26 and later the Dock icon takes the colors of your terminal theme (Settings → Appearance → App Icon). (#628, #634, #638, #640, #644, #651, #652)
- Files that open with Macterm by default now show a Macterm document icon in Finder. (#638, #645, #653)
- Settings is a command in the command palette, and you can change its ⌘, keybind in Keymaps. (#649)
- Each Ghostty config path in Settings → General is a link that opens the file in your editor. (#646)
- Settings → Keymaps folds each category, and extension keybinds have their own group. (#625)
- Each card in Settings → Extensions shows the screenshots of the extension before you install it. (#635)
Fixes
- Ctrl+L at a prompt in a pane that is not full keeps the cleared screen in the scrollback again. (#610)
Notes
- New defaults: the eyesclosed theme (#627), 12 pt window padding and the sidebar peek turned off (#641), and Snap to whole row turned on (#623). A setting that you changed keeps your value.
- The adaptive Dock icon and Explain Output need macOS 26 or later. Explain Output also needs a Mac that supports Apple Intelligence, with Apple Intelligence turned on.
Thanks to @thdxg for this release.
v1.32.1
· GitHub ↗
What's New
- Move Tab Up and Move Tab Down move the active tab in the sidebar. Move Pane Left, Right, Up and Down swap the focused pane with its neighbor. Each one has a default keybind that you can change in Settings → Keymaps. (#600)
- A tab that runs omp shows the omp logo in the sidebar. (#601)
- A full-screen program such as Helix or vim keeps a translucent window translucent, because painted cell backgrounds now follow the window opacity. (#606)
- On macOS 26, the Zoomed pill is a glass button, and a zoom of any pane slides the other panes out of the window. (#605)
Notes
- To get the opaque cell backgrounds of Ghostty again, set
background-opacity-cells = falsein your config.
Thanks to @thdxg and @davioliveeira for this release.
v1.32.0
· GitHub ↗
What's New
- Extensions: install palettes for Git, SSH, Docker, Kubernetes and Claude Code from Settings → Extensions. Each card shows the screenshots and the icon of its extension. (#527, #528, #531, #541, #547, #550, #555, #594)
- An installed extension gets an Update button when the repository changes it. Update extensions automatically is on by default, and it never replaces a copy that you changed. (#556, #563, #587)
- The command palette has screens that nest, and a Files screen that searches the files of the project by name or part of a path. (#511, #512, #519, #520, #525)
- Extension palettes can show fixed rows above a listing, give a row a ⌥ action, mute a screen that cannot be used, and open a terminal in a directory. Their commands run in the same way in every shell, and a
run:action does not go into the history of your shell. (#518, #521, #522, #526, #564) - The Git extension lists the worktrees of a project, and the SSH extension can add a host as a remote project. (#505, #564, #573)
- The Password Manager screen of the command palette types a saved password into the focused pane, also at prompts that Macterm cannot detect. You can bind it to a keybind. (#500, #502)
- Every search in the app uses one fzf-style ranking, and the palette shows the letters that matched in bold. (#506, #508)
- Capture Pane copies the focused pane to the clipboard as an image, with no window blur and nothing from behind the window. (#554)
- Capture Palette saves the open command palette as a screenshot at the size that extensions use. (#528, #592)
- Macterm can be the default app for text files. It opens them in the editor of
$VISUALor$EDITOR, and ⌘-click on apath:linein a pane opens the file at that line. (#484, #485, #565) - Drag a folder onto the sidebar to add it as a project. (#489)
- Right-click the toolbar to hide it or to move the tab switcher. View → Hide Toolbar does the same. (#482)
macterm tab new --no-focusandmacterm pane split --no-focusstart a terminal in the background and do not move the focus. (#499)- Macterm writes
~/.config/macterm/config.ghosttyon first launch. It lists the defaults of Macterm as comments, and a key that you set in it applies to Macterm only. (#588, #590) - Snap to whole row (Settings → Animations) scrolls a whole row at a time, and each row slides into place, as in
less. (#503, #517) - The smooth cursor now moves the text under it too, and the cursor trail costs nothing while the cursor does not move. (#490, #493)
- Splits animate with a shorter tail, and the keyboard Resize Split commands slide the divider. (#494, #495)
- Panes follow the mouse in the same way as Ghostty.app: hover in a window that is not in front, Look Up with a force click, the ⌃-click menu and
focus-follows-mouse. (#491) - Each window opens again at its size and position, with its sidebar width and its open project sections. (#498, #553, #559)
- Settings → Updates has one Update automatically toggle. After a download in the background, the toolbar shows Restart to Update, and the first launch after an update shows the new version. (#530, #558, #560, #562, #575)
- Settings → Keymaps puts Global and Pass to TUI in one menu on each row. Settings sections link to their docs, and captions are shorter. (#488, #501, #566, #584)
Fixes
- An OSC 8 link no longer opens a program. A link with a custom scheme asks before it opens. (#483)
- After a relaunch, the scrollback of a pane keeps its line width, and no lines are missing. (#578)
- A launching window shows its text at once, not rows of colored blocks. (#557)
- Right click works in Helix and other crossterm programs after a relaunch. (#492)
- A new pane no longer shows a
session "…" createdline. (#487) - A project with no tabs stays empty after a relaunch. (#548)
- A dead remote pane closes on any key, also when the host refuses the connection. (#598)
- The password bubble comes up about 0.4 s after a prompt, not 1 s or more. (#596)
- In a second window on the same tab, splits animate and Split Automatically picks the correct direction. (#524)
- The command palette opens faster. Each screen and each new search starts at the top, and search results are always current. (#543, #546, #561, #569)
- Capture Palette works when you allow Screen Recording while Macterm runs, and its message shows the full fix. (#579, #589)
- A toast stays up longer when its text is longer. (#580)
Notes
- Macterm reads palettes only from extensions. It no longer reads
~/.config/macterm/palettes/. To keep a palette of your own, put it in an extension folder in~/.config/macterm/extensions/. See the Extensions docs. - Macterm no longer reads
~/.config/macterm/projects/pinned.yaml. Every 1.31 release moved this file to~/.config/macterm/pinned.yaml. If you skip from an older version, move the file yourself.
Thanks to @thdxg and @timchesney for this release.
v1.31.2
· GitHub ↗
What's New
- AI agents running in a remote project now show their logo, busy and done status, and their own tab titles in the sidebar, just like local ones. (#473, #480)
- New installs open with a translucent, blurred window; if you never changed the opacity or blur sliders, you get the new look too. (#477)
Fixes
- The window background no longer turns into a solid slab or keeps a stale tint after Helix changes its theme or quits. (#479)
- A saved
sudopassword or key passphrase is now offered only to the real system program, never to a look-alike placed earlier on your PATH. (#468)
Notes
- Settings → Appearance → Auto-name tabs is gone: a tab is always named after the program running in it, falling back to the shell or host name when nothing is. (#472)
- Settings → Passwords: "Offer to save passwords" is now Enable password manager, a master switch that also turns autofill off, and "Ask for Touch ID" is now Require authentication. (#468)
Thanks to @thdxg and @timchesney for this release.
v1.31.1
· GitHub ↗
Fixes
- Macterm no longer hangs at launch with two windows open on the same tab, or when closing a pane that is flooding the terminal with title updates. (#466)
- Reattaching a session with a long, prompt-heavy scrollback no longer freezes the app while the history replays. (#465)
- Desktop widgets now move with your displays like the system's own widgets, returning to where you put them on each display instead of ending up off-screen after unplugging a monitor. (#461)
- The Settings window can be dragged by its titlebar again after adjusting a slider. (#462)
Thanks to @thdxg for this release.
v1.31.0
· GitHub ↗
What's New
- Password manager: Macterm offers to save passwords you type at terminal prompts and autofills them next time. (#444, #455, #458)
- Desktop widgets: put terminals on your desktop, alongside the system's widgets. (#445, #451, #454)
Fixes
macos-auto-secure-inputnow engages at password prompts in every pane. (#444)ssh -p 2222 hostand other ssh options now work in panes with ghostty's ssh integration on. (#455)- Selecting text at the start of a line no longer pops open the hidden sidebar's overlay. (#448)
macterm pane runno longer types its own flags, such as--session, into the pane instead of using them to pick the target. (#457)
Notes
macterm pane runnow types words after--verbatim and refuses any other dash-word before it: writemacterm pane run --session X -- ls -larather thanmacterm pane run ls -la. Plain words without dashes still work as before.
Thanks to @thdxg for this release.
v1.30.0
· GitHub ↗
What's New
- A project's right-click menu now lists its git worktrees, and picking one opens a new tab of that project in the worktree. (#431)
macterm skillsprints ready-to-install agent skills so Claude Code, Codex and other coding agents can learn to drive Macterm themselves. (#432)- A program that reports a progress error now leaves a red "Failed" dot on its tab instead of the green done dot. (#430)
Fixes
- ⌘C, ⌘V and ghostty's other letter shortcuts now work with Ukrainian, Russian, Greek, Hebrew, Arabic and other non-Latin keyboard layouts. (#435)
- ⌃⌘F and ⌘↩ now toggle full screen, as they do in Ghostty.app. (#438)
- With smooth scrolling on, clicking or dragging now selects the row under the pointer, including the partly visible row at the top of a pane and rows in the middle of a scroll animation. (#439, #443)
- A second window showing the same tab no longer takes over the terminal's size when a program checks the keyboard mode. (#442)
- A project can no longer be named Pinned, which made it unreachable by name from the CLI; a folder called Pinned becomes "Pinned 2", and
project create --nametrims padding and rejects an empty name. (#436) macterm project create,selectandrenamenow print the project's realproject:Ninstead of alwaysproject:1, andproject create --helpno longer claims it is idempotent. (#434, #437)
Thanks to @thdxg for this release.
v1.29.3
· GitHub ↗
What's New
- Smooth scrolling now works inside full-screen programs, not just in scrollback. When a program scrolls part of its screen by rows, the text slides to its new place and the rows leaving the screen slide out with it, instead of the whole view jumping. You will see it paging in Neovim and Vim, in Claude Code as the transcript grows, in
lessand everything that pages through it (man,git log,git diff), and in tmux panes. It follows the existing Settings → Animations → Smooth scrolling toggle. (#422)
Fixes
- Local Network and other privacy permissions granted to programs running in a pane now stay granted across quitting, relaunching and updating Macterm. (#420, closes #419)
- Those permission prompts now say "Macterm" and explain why, instead of naming the session daemon with Apple's generic text. Full Disk Access for pane programs follows the app's own grant. (#421)
Notes
- Programs that redraw their whole screen rather than scrolling it look exactly as before. Scrolling with the trackpad in scrollback is unchanged.
- The docs now lead with Get started and link the Releases page from the install instructions. (#417, #418)
Contributors
Thanks to @thdxg for this release.
v1.29.2
· GitHub ↗
Fixes
- Scrolling past the bottom of scrollback no longer makes the content wiggle. (thdxg/ghostty#10)
- Dragging a split divider now slides the content continuously instead of sliding it and snapping it back. (thdxg/ghostty#10)
Notes
- Both fixes are in the bundled terminal core, which is why this release has no Macterm-side changes of its own. If you installed 1.29.1, update: that build has both glitches.
Contributors
Thanks to @thdxg for this release.
v1.29.1
· GitHub ↗
Fixes
- Opening Settings with a keystroke from the quick terminal while another app is frontmost now brings Macterm forward, so the window is focused instead of greyed out. (#413)
- With the adaptive background on, zooming a pane beside one running a full-screen program no longer shows the desktop through a rectangle where that pane had been. (#411)
- Dragging a split divider, or animating a split, now slides the text instead of jumping it a row each time the pane grows enough for one. (7306052)
Thanks to @thdxg for this release.
v1.29.0
· GitHub ↗
What's New
- Smooth scrolling and split animations are on by default, in a new Settings → Appearance → Animations pane that replaces Experimental. Dragging the scrollbar now scrolls between rows and reaches the last lines, and closing a pane in the middle of a row or column merges its dividers instead of dragging one across a neighbour. (#408)
Fixes
- The smooth cursor draws with hard edges instead of a one-pixel halo, so it is as crisp at rest as the native cursor. (#400)
- Closing a tab whose only pane mirrors a session another tab still holds no longer warns that it will end a running program, and the
tab closecommand and Close Tab shortcut refuse in the same cases. (#402) - A pane squeezed to a few columns, by a window shrunk to the sidebar's width or a layout passing through a tiny size, keeps its content instead of coming back blank. (#409)
Thanks to @jcuhnoio and @thdxg for this release.
v1.28.1
· GitHub ↗
What's New
pane splitandpane mirroraccept--direction leftand--direction up, matching the sides available in the menu. (#397)
Fixes
- Split Left and Split Up now put the new pane to the left and above, instead of behaving like Split Right and Split Down. (#397)
- The experimental smooth cursor no longer vanishes at an idle prompt when the cursor is blinking. (#399)
Thanks to @Pavior0 and @thdxg for this release.
v1.28.0
· GitHub ↗
What's New
- A new Settings → Experimental pane collects features that are still settling in, each off by default: smooth trackpad scrolling through scrollback, a cursor that glides between positions, and a fading cursor trail. (#394)
- Experimental also gains Animate splits, which slides a new pane in from its own edge of the split while its neighbor makes room, and slides a closing pane back out. (#396)
- Quick terminal panes now survive a quit: their sessions persist and the panel reopens onto them after a relaunch. (#392)
Fixes
- Quitting with a command running in the quick terminal no longer asks for confirmation. (#392)
- Trackpad and wheel scrolling now follow Ghostty's own conversion, so
mouse-scroll-multipliertunes Macterm exactly as it tunes Ghostty. (#393) - A project's layout file now takes effect only through Apply Layout, instead of being applied silently the first time the project is opened. (#391)
Notes
- Scroll speed, New tab directory, New split directory and Allow Shortcuts to control Macterm have been removed from Settings. Macterm now reads
mouse-scroll-multiplier,tab-inherit-working-directory,split-inherit-working-directoryandmacos-shortcutsfrom your Ghostty config, and any value you had set in Settings is dropped. - Mouse wheel scrollback now moves three rows per notch, Ghostty's default. Set
mouse-scroll-multiplier = discrete:1for the previous one-row feel.
Thanks to @thdxg for this release.
v1.27.0
· GitHub ↗
What's New
- Shortcuts and Spotlight can now drive Macterm directly: thirteen actions for creating projects and tabs, running commands, reading a pane, moving focus, and invoking a keybind. (#387)
- A keybind can now be marked Global in Settings → Keymaps, so it fires even while another app is frontmost. (#385)
- Right-clicking Macterm's Dock icon now offers New Window, New Tab, New Project… and Toggle Quick Terminal. (#381)
- Finder's right-click menu now offers "New Macterm Project Here" on a folder. (#379)
- Opening a folder with Macterm — from Finder's Open With, a drop on the Dock icon, or
open -a Macterm <dir>— now creates a project for it. (#382) - The Dock icon now carries a badge counting the tabs whose bell you haven't looked at yet, when your ghostty config asks for
bell-features = attention. (#384) - Macterm now uses the custom app icon your ghostty config already names through
macos-iconandmacos-custom-icon. (#383) - Setting
macos-hidden = alwaysin your ghostty config now runs Macterm without a Dock tile or menu bar, for working entirely out of the quick terminal. (#386)
Fixes
- Confirmation alerts for closing a busy pane or tab now answer Return and Escape instead of needing the mouse. (#388)
- The remaining confirmation alerts — unloading or removing a project, applying a layout, removing items or a layout file — now answer Return and Escape too. (#389)
Notes
- While
macos-hidden = alwaysis on, Macterm has no menu bar, so Settings, Quit, About and Check for Updates have no route. Set your preferences before switching it on.
Contributors
Thanks to @nabilfreeman and @thdxg for this release.
v1.26.3
· GitHub ↗
What's New
- The Tab Switcher now wraps its previews into centered rows and scrolls when they outgrow the window, and a new setting limits how many recent tabs the shortcut cycles through. (#376)
Fixes
- Focusing a window that shows the same tab as another window now takes typing straight away, instead of needing a click in a pane first. (#378)
- Selecting or creating a pinned tab now shows that tab, instead of leaving the window on the previously pinned one. (#375)
- The split dividers in a Tab Switcher preview now let the backdrop show through instead of drawing a tinted line. (#377)
Contributors
Thanks to @Pavior0 and @thdxg for this release.
v1.26.2
· GitHub ↗
What's New
- Tab switcher cards now stay live for as long as the Recent Tab chord is held, so a background tab printing output shows its current screen instead of a stale snapshot. (#372)
Fixes
- The app no longer crashes at launch on macOS 27 when the system language uses a comma as its decimal separator (Polish, German, French, Russian and others). (#371)
Contributors
Thanks to @thdxg for this release.
v1.26.1
· GitHub ↗
What's New
- The app icon has been redrawn: its four quadrants now carry varied corner radii, giving the mark a slight rotation instead of four identical rounded squares. (#368)
Thanks to @thdxg for this release.
v1.26.0
· GitHub ↗
What's New
- Macterm can open several windows, each on its own project: New Window on Cmd+N, Cmd+Shift+W to close one, and quitting and relaunching brings them all back on the projects they were showing. (#353, #359)
- Selecting a tab another window already shows now gives you a live second view of it instead of a blank pane, and a window that isn't driving the shells says so — click it to work there. (#362, #366)
macterm pane mirroropens a second pane onto an existing pane's shell, so one session shows in two views; the view that isn't driving the size is dimmed until you click it. (#348, #349, #350, #352)- Each window keeps its own sidebar width and visibility, and its own adaptive terminal tint. (#356, #364)
- New window commands:
macterm window list,window closeandwindow focus, plus--windowontab selectandproject select. (#359, #366) - A new app icon — a four-quadrant split-pane mark on a dark plate. (#363, #367)
- Hovering a project row in the sidebar shows a plus button that opens a new tab in that project. It can be turned off in Settings → Appearance. (#331)
- The terminal context menu now offers Jump to Top and Jump to Bottom, each disabled when you are already at that edge. (#338)
- The sidebar starts at 220 points wide instead of 180, so ordinary project and tab names stop fading early. A width you have already set is left alone. (#357)
Fixes
- A translucent window no longer looks more opaque when it loses focus. (#351)
Thanks to @thdxg and @nabilfreeman for this release.
v1.25.0
· GitHub ↗
What's New
- Holding the Recent Tab shortcut now shows a strip of the project's tabs, each with a preview of its panes in their real split layout; the tab changes when the shortcut is released. (#346, #347)
- Projects can carry a color that tints the project's sidebar icon and the icons of its tabs, set from the project's context menu or Settings → Projects. (#341)
- A fresh install now opens with a project on your home directory and a pinned Welcome tab, each running a short tour you can read, scroll away, or run again with
macterm tutor. (#339) - New tabs and new splits can each be set to open in the project directory or the active pane's directory. (#337)
- Cmd+number now reaches tabs past 9: keep Command held and type more digits. (#326)
- The hidden sidebar can peek as an overlay that leaves the terminal's size untouched, instead of pushing the panes aside. (#280)
- Projects and tabs can be renamed by double-clicking their title in the sidebar. (#330, #333)
macterm tab rename,macterm project rename, andmacterm project removebring renaming and project removal to the command line. (#323, #327)macterm pane run --no-submitleaves the text sitting on a pane's prompt instead of running it. (#328, #332)
Fixes
- A slide or image filling most of a pane no longer repaints the whole window in its color when Adaptive background is on. (#335)
Contributors
Thanks to @thdxg, @micha-f, @Pavior0, @nabilfreeman, @impossibleowl and @OpenSource03 for this release.
v1.24.4
· GitHub ↗
What's New
- Tabs running Google Antigravity now show its icon in the sidebar, alongside the other coding agents. (#317)
Fixes
- Clicking the Dock icon or pressing ⌘N now always brings back the terminal window instead of a blank one that left every keyboard shortcut dead. (#320)
- Dragging a selection across a pane no longer repaints the whole window in the selection color. (#319)
macterm pane keynow actually types letters, digits, symbols, and space instead of silently reporting success and delivering nothing. (#315)- Opening the quick terminal while an adaptive-background tab is focused no longer flashes it in that tab's colors or strips the tint from the window behind it. (#314)
Contributors
Thanks to @impossibleowl and @thdxg for this release.
v1.24.3
· GitHub ↗
What's New
- A new Tip update channel in Settings → Updates follows every commit that passes CI, so you can run what
maindoes without building it yourself. (#310) - The "Match terminal app backgrounds" toggle is now called Adaptive background and sits in Settings → Appearance → Window alongside the other background controls. (#311)
Fixes
- Adaptive background now works when ghostty's
background-opacity-cellsis enabled — it previously did nothing at all in that case. (#309) - A pane matched to a terminal app's background now composites at the same opacity as the rest of the window, instead of reading noticeably more opaque than the app around it. (#309)
Notes
- Tip builds are cut from every passing commit and are not release-tested. Stable remains the default channel, and Homebrew always tracks stable.
Thanks to @thdxg for this release.
v1.24.2
· GitHub ↗
What's New
- Cell backgrounds painted by TUIs like helix, btop, and nvim now follow the window opacity when ghostty's
background-opacity-cellsis enabled, instead of rendering fully opaque over a translucent window. (#306) - Unfocused split panes now dim according to
unfocused-split-opacityandunfocused-split-fillin your ghostty config. (#305)
Fixes
- Holding a character key in a pane now repeats it instead of popping macOS's accent-picker overlay, so held keys drive motion in TUIs again. (#308)
Notes
- Macterm's own Unfocused Dimming setting has been removed and a previously tuned value is not carried over — set
unfocused-split-opacityin your ghostty config to adjust the dim.
Thanks to @thdxg for this release.
v1.24.1
· GitHub ↗
What's New
- Settings → Appearance → Sidebar now has an Icon size option, so the project and tab icons can sit smaller beside the names. (#303)
- Notifications now name the pane they came from, offer a Show button that jumps straight to it, and clear themselves from Notification Center once you've looked at that pane. (#300)
Fixes
- Terminal notifications play the default system sound again. (#298)
- An unloaded project's tab rows are dimmed, so a project whose shells have been stopped no longer looks identical to a running one. (#304)
- A closed pinned tab keeps its pin icon instead of showing a crossed-out pin, which suggested it had been unpinned. (#304)
- Dragging a tab to the top of the sidebar no longer stacks a "Pin Tab" band on top of the insertion line; the band appears only when nothing is pinned yet. (#299)
Contributors
Thanks to @halms and @thdxg for this release.
v1.24.0
· GitHub ↗
What's New
- Tabs can now be pinned above the projects in the sidebar: a pinned tab belongs to no project, survives restarts, and restores itself — re-running its commands — whenever its session dies. (#285)
- Remote panes now reconnect themselves after a dropped connection (sleep, a network change) instead of sitting on a dead-pane screen until you quit and relaunch — the session keeps running on the host and its scrollback is replayed into the recovered pane. (#291)
- Remote sessions left behind on a host that was unreachable when a pane closed are now cleaned up automatically, and only ever the ones this Mac created. (#291)
- The ssh shell-integration features (
ssh-env,ssh-terminfo) now work without Ghostty.app installed: Macterm itself installs its terminfo on the host at first connect and forwards truecolor, and the same engine is available directly asmacterm ssh. (#274) - Folder permissions (Documents, Downloads, …) now survive updates instead of resetting on every release, and Settings warns when Full Disk Access is off, with a shortcut to grant it. (#273)
- A new "Background SSH connections" setting (Settings → General) lets remote projects on hosts with Touch ID-gated SSH keys skip Macterm's background connections, so authentication only ever prompts for a pane's own connection. (#278)
- The quick terminal's position and size can each be set to Fixed or Dynamic in Settings. (#267)
- The quick terminal is now enabled and disabled by setting or clearing its keybind, replacing the separate Enable toggle. (#275)
- A new setting (Settings → Appearance → Sidebar) keeps an AI agent's logo on a busy tab instead of the spinner; the unread-message dot still appears either way. (#287)
- Close Tab is now a command in the palette, the File menu, and Settings → Keymaps as a rebindable shortcut (unbound by default), closing the active tab whether it is pinned or not. (#293)
- Disabled settings are now visibly dimmed across the Settings window. (#268)
Fixes
- Typing in a pane no longer stops working when focus leaves it in the middle of an IME composition. (#296)
- Terminal panes now identify themselves as editable text to accessibility clients, so dictation apps can insert text into the focused terminal. (#283)
- Macterm now picks up Ghostty's current default config file (
config.ghostty) alongside the legacyconfig, and merges every location Ghostty itself merges instead of loading only one and dropping valid overrides. (#282, #292) - The sidebar now reopens at the width you left it at, instead of a content-derived default. (#264)
- Dragging the sidebar divider now stops at the sidebar's maximum width instead of letting it take over the window. (#286)
- Settings now correctly shows the Full Disk Access banner when access hasn't been granted. (#277)
- Remote projects no longer re-trigger Touch ID prompts from the background tab-naming probe. (#276)
- The quick terminal now honors the liquid glass appearance setting. (#269)
- Dragging the quick terminal by its strip now shows a grabbing hand. (#270)
- Dragging a pane now previews one predictable drop target on the pane under the cursor, rather than two different shapes for the same result. (#294)
Notes
- Updating from an earlier release resets folder permissions one last time — the signing identity became stable in this release, so grants stick from then on.
- The terminfo install also works on hosts whose login shell isn't POSIX (nushell, fish). The
pathshell-integration feature is permanently off — Macterm ships noghosttyCLI to put on your PATH. - Automatic reconnection of remote panes can be turned off in Settings → General → Remote Projects — useful on hosts whose SSH keys are Touch ID-gated, where waking with several dropped panes means several prompts.
- The pinned tab context menu's "Remove from Pinned" is gone; Unpin Tab is the removal path, and it now also works on an unloaded (dimmed) pinned row.
- Dropping a pane onto a divider to make thirds is no longer reachable by dragging.
Thanks to @thdxg and @halms for this release.
v1.23.5
· GitHub ↗
What's New
- Dragging a pane onto the sidebar now separates it into its own tab, landing at the slot you drop it between or appending when dropped on a project header. (#262)
Fixes
- The split divider now has a wide grab band, so resizing a split no longer requires landing the pointer precisely on the hairline. (#261)
- Remote panes now carry a truecolor signal that survives the ssh connection, so programs like helix accept true-color themes on a remote host. (#259)
Notes
- Remote sessions that are already running keep their old environment; the truecolor fix applies to a remote session once it is recreated.
Contributors
Thanks to @RafaelJaime and @thdxg for this release.
v1.23.4
· GitHub ↗
What's Changed
Fixes
- Fix the hidden sidebar's hover reveal: full-width peek that retracts without the native overlay's broken titlebar by @jcuhnoio in #229
- Stop an Apply Layout confirmation from opening Settings with a duplicate dialog by @thdxg in #256
Maintenance
- Serve the website from a container image instead of a Cloudflare Worker by @thdxg in #257
- Publish a sortable image tag so the site can be deployed by Flux by @thdxg in #258
Full Changelog: v1.23.3...v1.23.4
v1.23.3
· GitHub ↗
What's Changed
Other Changes
- Re-measure the tab switcher when its segments change by @thdxg in #253
- Sit the New Project button an equal distance off both sidebar edges by @thdxg in #254
- Make sidebar project drag-reorder reliable by @thdxg in #255
Full Changelog: v1.23.2...v1.23.3
v1.23.2
· GitHub ↗
What's Changed
Fixes
Other Changes
Full Changelog: v1.23.1...v1.23.2
v1.23.1
· GitHub ↗
What's Changed
Fixes
Other Changes
- Don't stage the kill-confirmation dialog for an idle remote shell by @thdxg in #243
- Show the window when macOS relaunches the app at login by @thdxg in #244
Full Changelog: v1.23.0...v1.23.1
v1.23.0
· GitHub ↗
What's Changed
What's New
- Let a program hand pane focus back out at its own split edge by @thdxg in #215
- Let one chord navigate both Macterm panes and an editor's own splits by @thdxg in #216
- Add
macterm tab moveto reorder tabs from the CLI by @thdxg in #233 - Add a native Show Toolbar option that hides the whole title bar by @thdxg in #234
Fixes
- Say which secret is missing when the bump can't open its PR by @thdxg in #220
- Stop the tag stamp from laundering a stale GhosttyKit as pinned by @thdxg in #222
Maintenance
- chore(deps): bump the actions group with 2 updates by @dependabot[bot] in #214
- chore(deps): bump GhosttyKit to build-2026-08-03 by @thdxg in #221
- Point the docs at the Cookbook and invite people to post recipes by @thdxg in #223
- chore(deps): bump GhosttyKit to build-2026-08-09 by @thdxg in #238
- chore(deps): bump jdx/mise-action from 4.2.3 to 4.2.4 in the actions group by @dependabot[bot] in #240
Other Changes
- Record that we link ghostty-internal, not the supported libghostty by @thdxg in #211
- Show the bump PR what changed in the API we actually call by @thdxg in #213
- Drag tabs into splits, rebuild pane reordering on one placement engine, and add Separate Panes by @jcuhnoio in #228
- Refine tab-drag UX: workspace-only merging, one-icon split rows, fading titles by @thdxg in #235
- Make Separate All Panes and Separate Current Pane keybindable commands by @thdxg in #236
- Keep sidebar rows from showing through the New Project footer by @OpenSource03 in #237
- Add adaptive and configurable terminal backgrounds by @OpenSource03 in #178
Full Changelog: v1.22.1...v1.23.0
v1.22.1
· GitHub ↗
What's Changed
Other Changes
- Key CI build products on the GhosttyKit they were compiled against by @thdxg in #212
- Make eager tab start and session persistence unconditional by @thdxg in #208
- Stop stale and phantom tab state after a command finishes by @thdxg in #210
Full Changelog: v1.22.0...v1.22.1
v1.22.0
· GitHub ↗
What's Changed
Maintenance
- Skip format/lint/test/build when their inputs are unchanged by @thdxg in #203
- Remove the in-project layout file, deprecated since v1.20.0 by @thdxg in #207
Other Changes
- Ship prereleases to an opt-in beta update channel by @thdxg in #197
- Settings: sidebar navigation and a Projects pane by @thdxg in #198
- Replace release-drafter with GitHub's native release notes by @thdxg in #200
- Let Apply/Save Layout be bound to a key by @thdxg in #199
- Confirm actions that otherwise succeed invisibly by @thdxg in #201
- Read the prerelease flag live so promoting a prerelease can't skip release jobs by @thdxg in #205
- Pin the GhosttyKit release, and bump it weekly by PR by @thdxg in #206
- Stop the settings sidebar resizing and collapsing by @thdxg in #204
Full Changelog: v1.21.0...v1.22.0
v1.21.0
· GitHub ↗
What's Changed
- Handle libghostty's action callbacks: open_url, cursor shapes, link hover, secure input, bell, titles (#194)
- fix: tab spinner lingers ~3s after fast commands like ls (#196)
- feat: option to move the tab switcher to the left of the title bar (#193)
- fix: detect in-place terminal activity reliably (#185)
- Allow multiple projects per directory (#184)
Full Changelog: v1.20.10...v1.21.0
v1.20.10
· GitHub ↗
What's Changed
- Survive AppKit ViewBridge exceptions instead of dying without a trace (#191)
- Fix mise run run: environ dangling under ghostty_init + stale-bundle launch (#192)
- Make cleared keybinds take effect without a relaunch (#187)
- Fix Settings opening on refocus: cache the terminal window before it first becomes main (#188)
- Add an end-to-end CI suite that drives the real app over the control socket (#189)
- Cut benchmark false positives: fewer states, corroborated labels (#183)
Maintenance
- chore(deps): bump actions/labeler from 6 to 7 in the actions group (#190)
Full Changelog: v1.20.9...v1.20.10
v1.20.9
· GitHub ↗
What Changed
- Fixed window opacity discrepancy on unfocused state
v1.20.8
· GitHub ↗
What's Changed
- Fix flaky RemoteForegroundResolver tests that failed on loaded CI runners (#181)
- Show the running AI agent's logo as the sidebar tab icon (#170)
Full Changelog: v1.20.7...v1.20.8
v1.20.7
· GitHub ↗
What's Changed
- Forward middle/extra mouse buttons to libghostty so middle-click paste works (#177)
- Show search matches as scrollbar tick marks, colored like the text highlights (#176)
- Add Shift+Enter to search for downward navigation; fix inverted chevrons (#175)
Full Changelog: v1.20.6...v1.20.7
v1.20.6
· GitHub ↗
What's Changed
Full Changelog: v1.20.5...v1.20.6
v1.20.5
· GitHub ↗
What's Changed
- Fix panes failing to spawn from trailing-slash project paths (fatal under nushell; blank prompt dir under zsh) (#172)
- Multi-select sidebar rows to remove projects and tabs in bulk (#171)
Full Changelog: v1.20.4...v1.20.5
v1.20.4
· GitHub ↗
What's Changed
- Terminal-state introspection + control-socket verbs (#165–#167) and a fork-drift guard (#168) (#169)
- Make the window-state benchmark tolerant of shared-runner CPU noise (#164)
- Add a Copy Session ID action for handing a pane's zmx name to an LLM (#163)
Full Changelog: v1.20.3...v1.20.4
v1.20.3
· GitHub ↗
What's Changed
- Audit remediation + sidebar tab/project drag-and-drop, OSC 2 title fixes (#158)
Full Changelog: v1.20.2...v1.20.3
v1.20.2
· GitHub ↗
What's Changed
UI
- Add a settings slider for unfocused split pane dimming (#156)
Website
- Stop wide docs code blocks and tables from overflowing the page (#162)
CI
- Report benchmark results from a workflow_run so fork PRs can be labeled (#157)
Full Changelog: v1.20.1...v1.20.2
v1.20.1
· GitHub ↗
What's Changed
- Gate appcast and Homebrew tap on the release prerelease flag (#155)
- Pin the website footer to the viewport bottom on short pages (#153)
- Track the system appearance instead of reading back our own pinned one (#152)
- fix: open existing project when same path is selected (#150)
- Keep main-window hotkeys from firing while another window is key (#148)
- Refresh user docs, README, and landing page for remote projects, CLI, and persistence (#149)
Maintenance
- chore(deps): bump the actions group with 3 updates (#151)
Full Changelog: v1.20.0...v1.20.1
v1.20.0
· GitHub ↗
Macterm 1.20.0
🌐 Remote projects
Open a project that lives on another machine over SSH. Each pane runs a persistent zmx session on the host, so your shells, running processes, and scrollback live on the server — not your Mac. Quit Macterm and the sessions keep running; relaunch and every pane reattaches. They even survive a local reboot or a dropped connection.
Add one from Sidebar → + → Remote Machine…, or just type an ssh-style path like devbox:~/dev/api into the command palette. Connection settings come from your ~/.ssh/config; authentication (password, key, or 2FA) happens right in the pane. → Docs
⌨️ The macterm CLI
A bundled command-line tool to drive the running app — projects, tabs, panes, and sessions — over a local socket, so scripts and AI agents can orchestrate your terminal. It's on PATH inside every Macterm pane automatically.
macterm tab new --run "npm run dev"
macterm grid 2x2 --run "tail -f log/dev.log"
macterm pane run -- git pullEvery command supports --json for scripting. → Docs
📁 Centralized project layouts
Declarative project layouts now live in ~/.config/macterm/projects/, one YAML file per project — matched by path, so they survive across git worktrees and sync cleanly in your dotfiles. The old in-repo .macterm/layout.yaml still works but is deprecated. → Docs
Also in this release
- Redesigned website and documentation.
Full Changelog: v1.19.0...v1.20.0
v1.19.0
· GitHub ↗
What's Changed
Session persistence
Your terminal sessions now survive quitting Macterm. Panes are wrapped in zmx sessions that keep running in the background, so when you relaunch, each pane reattaches to its still-live shell — scrollback, running processes, and all.
- Panes are wrapped in zmx sessions with daemon-side foreground resolution (#127)
- Sessions persist across quit and reattach on relaunch (#131)
- Settings now surfaces when zmx is unavailable, with session persistence documented (#133)
Note: quick-terminal sessions remain ephemeral, and sessions don't survive a reboot (the zmx daemon dies with the OS).
Fixes
- Arrow-key shortcuts now match live keypresses again (#136)
- Unload Project stops the project's shells again, while keeping the layout (#135)
- Fixed a title-replay render loop (#134)
Under the hood
- Benchmark window-state resource usage in CI and compare PRs against main (#129, #132)
- Silence Swift 6 non-Sendable warnings on AppState's poll-event observers (#130)
- Isolate UserDefaults under test so runs can't corrupt the developer's app state (#128)
Full Changelog: v1.18.3...v1.19.0
v1.18.3
· GitHub ↗
What's Changed
- Tick libghostty on wakeup instead of a 120Hz timer (#125)
- Poll foreground processes adaptively instead of at a fixed 250ms (#126)
- Bundle zmx and add the session client library (no behavior change) (#124)
- Skip quiet-settle for occluded panes so parked renderers can't fake completion (#123)
- Turn off continuous rendering for panes that are not visible in the app. (#115)
- fix: render CJK IME preedit text (#119)
- fix: correct off-by-one in search match counter (#122)
- fix: consistent slider width for each settings screen (#116)
Full Changelog: v1.18.2...v1.18.3
v1.18.2
· GitHub ↗
What's Changed
- Fix activity detection for in-place terminal output (#108)
- Paste clipboard images into TUIs instead of dropping them (#109)
Full Changelog: v1.18.1...v1.18.2
v1.18.1
· GitHub ↗
What's Changed
- Make terminal scrolling feel like iTerm2 (#102)
Maintenance
- chore(deps): bump actions/checkout from 6 to 7 in the actions group (#105)
Full Changelog: v1.18.0...v1.18.1
v1.18.0
· GitHub ↗
What's Changed
- Build universal release binary for Intel and Apple Silicon (#101)
- Inherit the source pane's live cwd when splitting (#100)
Full Changelog: v1.17.3...v1.18.0
v1.17.3
· GitHub ↗
What's Changed
- Tidy Settings appearance copy and fold glass controls into one picker (#98)
- Add sidebar indicators for terminal status (#90)
Full Changelog: v1.17.2...v1.17.3
v1.17.2
· GitHub ↗
What's Changed
Full Changelog: v1.17.1...v1.17.2
v1.17.1
· GitHub ↗
What's Changed
- Derive window chrome colors from libghostty's resolved surface config (#89)
Full Changelog: v1.17.0...v1.17.1
v1.17.0
· GitHub ↗
What's Changed
- Lower minimum macOS to 14 (Sonoma) (#86)
- fix: lock the toolbar to icon-only so the sidebar toggle can't fold into the overflow menu (#85)
Full Changelog: v1.16.1...v1.17.0
v1.16.1
· GitHub ↗
What's Changed
- Add configurable Next/Previous Pane keybindings (#84)
Full Changelog: v1.16.0...v1.16.1
v1.16.0
· GitHub ↗
What's Changed
- feat: drag panes to reorganize splits, following Ghostty's grab-handle pattern (#82)
Full Changelog: v1.15.6...v1.16.0
v1.15.6
· GitHub ↗
What's Changed
- feat: adopt a program's OSC title as the tab name while it holds the foreground (#81)
- Add Unload Project action to free resources of unused projects (#80)
- fix: hide tab switcher when the window is too narrow instead of folding into the toolbar overflow menu (#79)
Full Changelog: v1.15.5...v1.15.6
v1.15.5
· GitHub ↗
What's Changed
Full Changelog: v1.15.4...v1.15.5
v1.15.4
· GitHub ↗
What's Changed
- Align command palette selected-row highlight + spacing (#71)
- Group keymap settings by category (#72)
- Title-case all action titles (macOS menu convention) (#70)
- Add Check for Update action + Other command category (#69)
- Clear command palette query after executing a command (#68)
- Narrow build target to arm64, resulting in smaller DMG size
Full Changelog: v1.15.3...v1.15.4
v1.15.3
· GitHub ↗
What's Changed
- Command palette: Tab autocomplete + preserve query across reopen (#67)
Full Changelog: v1.15.2...v1.15.3
v1.15.2
· GitHub ↗
What's Changed
- Make rename tab and rename project rebindable in Keymaps (#64)
- Toggle the terminal search bar with Cmd+F (#65)
- Unzoom when switching focus to a different pane (#63)
Full Changelog: v1.15.1...v1.15.2
v1.15.1
· GitHub ↗
What's Changed
- Move layout JSON schema to assets/ (#60)
Full Changelog: v1.15.0...v1.15.1
v1.15.0
· GitHub ↗
What's Changed
- Layout follow-ups: per-pane shell, eager-tab names, JSON schema (#58)
- Disable ssh shell-integration when installed ghostty CLI lacks +ssh (#57)
- Start all tabs of the focused project, not just the active one (#56)
- Declarative per-project layouts (.macterm/layout.yaml) (#53)
Full Changelog: v1.14.1...v1.15.0
v1.14.1
· GitHub ↗
What's Changed
- Insert dropped file paths into the terminal (#55)
- Hide keybind in palette for unmapped bindable actions (#52)
- Show keybind conflicts and use 'None' for unmapped shortcuts (#51)
- Add auto-split action (Ghostty new_split / BSP behavior) (#50)
Full Changelog: v1.14.0...v1.14.1
v1.14.0
· GitHub ↗
What's Changed
- New icon
Full Changelog: v1.13.8...v1.14.0
v1.13.8
· GitHub ↗
What's Changed
- Liquid glass window background (regular/clear) + full opacity range (#47)
- fix: show an icon for the plain Number choice in the icon picker (#48)
Full Changelog: v1.13.7...v1.13.8
v1.13.7
· GitHub ↗
What's Changed
- fix: re-derive surface colors on libghostty soft config reload (#45)
- feat: liquid glass command palette (#46)
- feat: native overlay scrollbar for terminal panes (#44)
Full Changelog: v1.13.6...v1.13.7
v1.13.6
· GitHub ↗
What's Changed
Full Changelog: v1.13.5...v1.13.6
v1.13.5
· GitHub ↗
What's Changed
- Show Settings banner when the ghostty CLI is missing (#42)
- fix: bundle ghostty terminfo so TERM=xterm-ghostty resolves standalone (#41)
Full Changelog: v1.13.4...v1.13.5
v1.13.4
· GitHub ↗
What's Changed
- Drop custom Macterm themes, ship upstream ghostty themes only (#37)
- Consolidate ci:* mise tasks into a --verbose flag (#36)
Full Changelog: v1.13.3...v1.13.4
v1.13.3
· GitHub ↗
What's Changed
- Bundle ghostty themes + shell-integration so theming works standalone (#35)
Full Changelog: v1.13.2...v1.13.3
v1.13.2
· GitHub ↗
What's Changed
- fix: release notes rendered the tempfile path instead of the body (#34)
Full Changelog: v1.13.1...v1.13.2
v1.13.1
· GitHub ↗
What's Changed
- fix: respect user-cleared hotkey bindings by @thdxg in #30
- feat: tab switcher in title bar + Appearance settings tab by @thdxg in #32
- feat: animate sidebar collapse/expand by @thdxg in #31
- feat: show GitHub Release notes in Sparkle's update dialog by @thdxg in #33
Full Changelog: v1.12.2...v1.13.1
v1.13.0
· GitHub ↗
What's Changed
- feat: show GitHub Release notes in Sparkle's update dialog (#33)
- feat: animate sidebar collapse/expand (#31)
- feat: tab switcher in title bar + Appearance settings tab (#32)
- fix: respect user-cleared hotkey bindings (#30)
Full Changelog: v1.12.2...v1.12.3
v1.12.2
· GitHub ↗
What's Changed
Maintenance
- chore(deps): bump dorny/paths-filter from 3 to 4 in the actions group (#29)
Full Changelog: v1.12.1...v1.12.2
v1.12.1
· GitHub ↗
Fixes
- Ghostty's
ssh-env/ssh-terminfoshell-integration features no longer crash trying to exec a non-existentghosttybinary inside Macterm's bundle. Macterm now points the wrappers at/Applications/Ghostty.appif it's installed, and disables the affected features otherwise (658fd9e)
Notes
- If you want
ssh-env,ssh-terminfo, or thepathshell-integration feature to work, install Ghostty.app alongside Macterm. Without it,sshandsudostill work normally — they just skip Ghostty's TERMINFO/forwarding tricks.
v1.12.0
· GitHub ↗
What's New
- Menu bar now exposes the full set of commands — File, View, Window, and a new Project menu — so features are discoverable without opening the command palette. Each item shows your current keyboard binding from Settings. (e29bc38)
- Customizable sidebar icons: pick from folders, briefcases, numbered glyphs, or hide icons entirely. Configure under Settings → General → Sidebar. (485d98c)
- New Project button can now be hidden from the sidebar via Settings, for users who prefer the command palette or context menu. (485d98c)
v1.11.7
· GitHub ↗
Fixes
- Inline project rename from the command palette now actually focuses the rename field when the sidebar was closed (78a40b3)
v1.11.6
· GitHub ↗
What's New
- Desktop notifications for OSC 7770 escape sequences and command-finish events; clicking routes you to the source pane (#19)
Notes
- Requires
desktop-notifications = trueandnotify-on-command-finish = unfocused/notify-on-command-finish-action = notifyin your Ghostty config - Grant Macterm notification permission in System Settings → Notifications on first launch
v1.11.5
· GitHub ↗
Fixes
- Honor
macos-option-as-alt = left/rightso the unmapped Option key produces special characters again - Fix font scaling when moving a terminal between displays of different DPI
v1.11.4
· GitHub ↗
What's New
- New command palette action: Replace project path with current directory. Updates the active project's path to wherever the focused pane sits, so new tabs open in your current working directory.
v1.11.3
· GitHub ↗
What's New
- New "Reload Ghostty config" action (default
Cmd+Shift+,) — pick up external edits to your Ghostty config from anywhere in the app. Rebindable in Settings → Keymaps and available in the command palette. - The Quick Terminal shortcut (default `Ctrl+``) is now rebindable in Settings → Keymaps and shows up in the command palette. The Settings → Quick Terminal section displays the current binding.
Fixes
- Closes #13 — the Quick Terminal keybind was previously undiscoverable and not configurable.
v1.11.2
· GitHub ↗
What's New
- The Settings → Appearance tab is now Settings → General, with a gearshape icon. Same controls, more accurate name.
v1.11.1
· GitHub ↗
Fixes
- Removed the "Edit Ghostty Config" button — it was broken in the installed app because GUI launches don't see
$EDITORfrom your shell, so it always fell back tovi. May come back later with proper shell-resolved env.
Notes
- The Settings → Appearance → Ghostty Config row is now a single line: path field, Browse, and Reload.
v1.11.0
· GitHub ↗
What's New
- Macterm now loads your existing
~/.config/ghostty/config. Themes, fonts, palettes, keybinds, scrollback, cursor style, shell integration — everything ghostty supports works the same in Macterm. - New "Edit Ghostty Config" button in Settings → Appearance → Ghostty Config opens your config in
$EDITOR(defaultvi) inside a Macterm tab. Click "Reload" to pick up external edits. - The ghostty config path is configurable in Settings (default
~/.config/ghostty/config), with Browse and Reset buttons.
Fixes
- Korean, Japanese, Chinese, and other IME-composed input now reaches the terminal. Previously composed characters were silently dropped at the keystroke that committed them.
Notes
- Theme, Font, Font Size, and Option-as-Alt are now configured in your ghostty config instead of Macterm's Settings UI. If you had picked these in Settings before, they reset to ghostty defaults (or to whatever your ghostty.conf specifies).
background-opacityandbackground-blurin ghostty.conf are still ignored — use the sliders in Settings → Appearance → Window. See the new "For Ghostty Users" section in the README for the complete list of what's honored vs overridden.
v1.10.3
· GitHub ↗
Fixes
- Background update checks now surface the toolbar icon when a new version is available. Previously you only saw the icon if you ran "Check for Updates…" manually.
v1.10.2
· GitHub ↗
What's New
- The command palette hotkey is now rebindable in Settings → Keymaps.
- Welcome and empty-project screens now show the command palette shortcut alongside the other keybinds.
v1.10.1
· GitHub ↗
Fixes
- Reopen the window after closing it with the red X. Clicking the dock icon or pressing Cmd+N now brings the window back, with running terminal processes preserved.
v1.10.0
· GitHub ↗
What's New
- Background Opacity slider in Settings → Appearance → Window. Make the whole window translucent at any level from 30% to 100%.
- Background Blur slider, composing with opacity for a frosted-glass look.
- Fresh installs now default to the Rose Pine theme at 16pt with comfortable window padding.
Notes
- Macterm now manages its own terminal configuration. The "Default" entry in the theme picker is removed — pick a real theme instead.
v1.9.5
· GitHub ↗
What's New
- Zoom a split pane to fill the tab with Cmd+Shift+Enter, the right-click menu, or the command palette. A "Zoomed" indicator appears in the corner — click it to exit zoom.
- New "Option as Alt" setting lets you configure the left and right Option keys independently, so you can keep one for macOS special characters while the other reaches your terminal programs.
- Rename tabs and projects inline from the sidebar or the command palette.
v1.9.4
· GitHub ↗
Notes
- Internal release-pipeline change; no user-facing differences from v1.9.3.
v1.9.3
· GitHub ↗
Changes
- Removed the "Use Option as Alt" setting; Option-as-Alt is now always on.
v1.9.2
· GitHub ↗
Fixes
- Cmd+Q (or quitting from the Dock / menu) now actually terminates Macterm instead of doing nothing
Notes
- Macterm can now be installed via Homebrew:
brew install --cask thdxg/tap/macterm
v1.9.1
· GitHub ↗
Fixes
- Terminal font size now adapts when the window moves between displays of different DPI, instead of staying at the old scale until a new pane is spawned
v1.9.0
· GitHub ↗
What's New
- New Liquid Glass app icon, designed in Icon Composer for macOS 26
Notes
- Build system migrated from Swift Package Manager to Xcode under the hood — no impact on running the app
v1.8.14
· GitHub ↗
Fixes
- Toggling "Enable Quick Terminal" in Settings now takes effect immediately, without needing to relaunch
v1.8.13
· GitHub ↗
Fixes
- Disabling the quick terminal in Settings now actually disables the Ctrl+` hotkey
- Opening the quick terminal no longer steals focus from the previously-active app
- Refreshed app icon
v1.8.12
· GitHub ↗
What's New
- Command palette now includes a "Rename current project" action
- Palette and keymap titles are consistently sentence-cased
Fixes
- Panes now reopen in the directory you last navigated to, instead of resetting to the project root
v1.8.11
· GitHub ↗
What's New
- Moved "Use Option as Alt" toggle from Appearance to Keymaps in Settings
v1.8.10
· GitHub ↗
What's New
- Updated app icon
v1.8.9
· GitHub ↗
What's New
- Refreshed app icon
v1.8.8
· GitHub ↗
Fixes
- Option key now reaches terminal programs as Alt, enabling word navigation (Option+B/F) and editor keybinds (Helix, Emacs, etc.)
What's New
- Settings → Appearance → Input: toggle to use Option as Alt (on by default; disable to get macOS special characters like ∫ and ≈)
v1.8.7
· GitHub ↗
Fixes
- New tabs now open in the project directory instead of inheriting the previous pane's working directory
v1.8.6
· GitHub ↗
What's New
- Settings → Updates now shows the short git commit SHA next to the current version (e.g. "1.8.6 (fcdce74)") for easier bug reporting.
v1.8.5
· GitHub ↗
Test release to verify Sparkle auto-update from v1.8.4.
v1.8.4
· GitHub ↗
Fixes
- Fix Sparkle "You're up to date" when a newer release is available.
CFBundleVersionnow matches the release string so version comparisons advance correctly.
Notes
- Install v1.8.4 manually once from the DMG. From v1.8.4 onward, auto-update will work correctly.
v1.8.3
· GitHub ↗
Test release to verify Sparkle auto-update works end-to-end from v1.8.2.
v1.8.2
· GitHub ↗
Fixes
- Fix Sparkle reporting "You're up to date" when a new release was actually available. Releases now ship as a single universal DMG (arm64 + x86_64) so Sparkle picks the right artifact on every Mac.
Notes
- Install manually once from the DMG. Auto-update will work correctly from this version forward.
v1.8.1
· GitHub ↗
What's New
- Title bar now shows a native update-available button when a new version is detected. Click it to install.
Notes
- Test release to validate the new update-available UI end-to-end via Sparkle.
v1.8.0
· GitHub ↗
What's New
- Automatic updates via Sparkle — Macterm now checks for new releases daily and can install them in the background. Trigger manually from Macterm → Check for Updates… or Settings → Updates.
Notes
- Install for the first time by right-clicking the app → Open. After this version is installed, future updates flow through Sparkle and don't require the
xattrworkaround. - Updates are verified with an EdDSA signature. No telemetry is collected.
v1.7.0
· GitHub ↗
What's New
- Unified command palette: single mode with recency-ordered results instead of separate category modes.
Fixes
- Restore terminal focus when closing the search bar with Escape.
- Pane lifecycle is stable across splits and tab switches; split-tree identity no longer drifts.
- Workspaces with a corrupt active-tab reference now recover by selecting the first tab instead of pointing at a missing one.
- Detail pane no longer crosses the title bar.
- Tighter top padding in the sidebar and detail pane.
Notes
- Requires macOS 26+.
- The app is not code-signed. After installing, run
xattr -cr /Applications/Macterm.app.
v1.6.3
· GitHub ↗
Fixes
- Fix wrong pane disappearing when closing a pane in a mix of horizontal and vertical splits
- Fix crash when closing a split pane in the quick terminal
- Improve terminal surface stability across tab switches, split reshapes, and window hide/show
v1.6.2
· GitHub ↗
Fixes
- Closing the search bar with escape now returns focus to the terminal so typing resumes without clicking
- Sidebar items sit flush with the title bar instead of floating below it
v1.6.1
· GitHub ↗
Notes
- Internals-only release: five refactors (shared recency stack, Preferences store, versioned workspace persistence envelope, palette source protocol, key-router with responders). No user-visible changes — shipping so future feature work builds on the cleaned-up foundation.
v1.6.0
· GitHub ↗
What's New
- Unified command palette — both Cmd+P and Cmd+Shift+P now open one palette that smart-ranks projects and commands together, with your 5 most recently visited projects shown on empty input
- Path input still works — type an absolute path or
~/...to see matching directories to open as projects
Fixes
- Terminal focus returns automatically after dismissing the command palette — no more clicking to resume typing
v1.5.0
· GitHub ↗
What's New
- Auto-tile panes — new Appearance toggle that evenly distributes pane sizes after every split and close
- Smarter pane focus on close — returns to the most recently focused remaining pane instead of the leftmost one
- Helpful empty states — the "no project selected" and "empty project" screens now show context and a live shortcut cheatsheet
- Command palette path autocomplete — typing an absolute path (or
~/...) in command mode suggests matching directories; Enter opens one as a new project - Opening the palette in command mode no longer selects the "> " prefix, so typing no longer replaces it
Fixes
- Pane no longer briefly gets hidden after a sibling close reparents the split tree
v1.4.0
· GitHub ↗
What's New
- Command palette — Cmd+P for projects, Cmd+Shift+P for commands; toggles on re-press, supports Ctrl+N/P navigation, fuzzy search, and directory completions for opening new projects
- Pane resize keybinds — Cmd+Shift+H/J/K/L nudge the nearest split in each direction
- Splits now inherit the focused pane's live working directory instead of the project's initial path
- Configurable font size in Appearance settings
- Quick terminal prompts before closing a pane with a running process
Fixes
- Search bar close button (and text field) are now clickable
- Command palette items are clickable and the input auto-focuses on open
- Rapid pane closes no longer leave ghost content on screen
- Vertical split focus-by-click no longer hits the opposite pane
- Quick terminal now refocuses the new pane after closing the last one
- Closing a pane no longer occasionally terminates the app
v1.3.1
· GitHub ↗
What's New
- Updated default keybinds: sidebar toggle (Cmd+\), pane navigation (Cmd+Ctrl+H/J/K/L)
Fixes
- App no longer crashes when attempting to open a second window
v1.3.0
· GitHub ↗
What's New
- Copy Path in project context menu
- Sidebar tabs show shell/process names instead of directory paths
- Titlebar subtitle shows the project directory path
Fixes
- Titlebar no longer changes when you cd within a shell
v1.2.3
· GitHub ↗
Fixes
- New tabs now start in the project directory instead of home
- Terminal content from previous tabs no longer lingers when switching tabs or projects
v1.2.2
· GitHub ↗
Fixes
- Clicking vertical split panes now focuses the correct pane
- App icon is now correctly sized in the dock
v1.2.1
· GitHub ↗
Fixes
- Clicking terminal panes now correctly focuses them (broken in v1.2.0)
v1.2.0
· GitHub ↗
Full Changelog: v1.1.2...v1.2.0
v1.1.2
· GitHub ↗
What's New
- Confirmation alert when quitting with running processes
v1.1.1
· GitHub ↗
What's New
- Drag to reorder tabs in the sidebar
Fixes
- Titlebar subtitle now shows the focused pane's title instead of all panes combined
v1.1.0
· GitHub ↗
What's New
- Split panes in quick terminal (Cmd+D, Cmd+Shift+D)
- Configurable pane navigation keybinds (Ctrl+H/J/K/L)
- Project navigation with Cmd+[/] and global tab navigation with Ctrl+[/]
- Ctrl+Tab cycles tabs in recency order (hold Ctrl to keep cycling)
- Font family picker in Appearance settings with monospaced font preview
- Native sidebar selection with rounded highlight and full-row click targets
Fixes
- Closing the last pane no longer quits the app
- Pane focus navigation correctly picks adjacent panes
- Config key parsing no longer matches partial keys (e.g. "theme" vs "theme-variant")
- Clicking a terminal pane now always registers focus
- Settings tabs have consistent layout
Notes
- Requires macOS 26+
- App is not notarized — run
xattr -cr /Applications/Macterm.appafter installing
v1.0.5
· GitHub ↗
Full Changelog: v1.0.4...v1.0.5
v1.0.4
· GitHub ↗
Full Changelog: v1.0.3...v1.0.4
v1.0.3
· GitHub ↗
Full Changelog: v1.0.2...v1.0.3
v1.0.2
· GitHub ↗
Full Changelog: v1.0.1...v1.0.2
v1.0.1
· GitHub ↗
Full Changelog: v1.0.0...v1.0.1
v1.0.0
· GitHub ↗
Full Changelog: v0.0.0...v1.0.0