Changelog

All notable changes to Otty.

v 1.3.1

July 27, 2026

Bug fix
  • Fixed Copy returning the terminal's first line in a freshly opened window — mouse selection resolved a few rows above the pointer until the window had been on screen for a moment.
  • Fixed Shift+click and Shift-drag inside a mouse-tracking program selecting most of the viewport instead of extending from where you clicked.
  • Esc closes the fzf window opened with Ctrl-R again.
  • Fixed ligatures rendering squeezed and detached in split-style fonts such as Zed Mono and Fira Code.
  • A program killed mid-session no longer strands the terminal on the alternate screen, with mouse reporting on, or with the cursor hidden — that state is reclaimed at your next shell prompt.
  • Fixed Ctrl+Shift+T and other Kitty-protocol chords silently degrading to their legacy form inside agent CLIs that mark up their own output.
  • Fixed the SSH Files panel sitting on "Waiting for SSH authentication" for the rest of the session when its first probe lost the race.
  • Fixed session restore replaying a screenful of prompt fragments in panes where no command ever ran, with two-line prompts such as powerlevel10k and starship.
  • Fixed scrollback being dropped on restore under bash when starship, atuin, or ble.sh claims the DEBUG trap.
  • Fixed config.toml collecting one more (reset to default) comment on every font zoom cycle. Config writes are atomic now, so a crash mid-write can no longer truncate the file.
  • Directional pane focus remembers where you came from: leaving a stacked pane and coming straight back lands on the pane you left.

Download for macOS (Apple Silicon)

Download for macOS (Intel)

v 1.3.0

July 24, 2026

Settings → Agents — connect your coding agents

New

  • Sixel graphics — inline bitmap images from chafa, img2sixel, lsix, and anything else that speaks Sixel, alongside the existing Kitty image protocol. Learn more.
  • More coding agents — Cursor CLI, Kimi Code, Pi, and omp join the built-in integrations, with session resume, history viewing, and fork where the agent supports it. Learn more.
  • Vim keys in the editor — modal editing in file panes and in the agent history pager, toggled from the Command Palette (Editor Vim Keys).
  • Mark Tab — set an unread, processing, or failed badge on a tab by hand, from its context menu or the Command Palette. A tab marked Processing flips to unread the moment its next command or agent turn finishes.
  • Scripting a live paneotty pane send-text, otty pane run, and otty pane exec type into a pane, run a command, and report the process state back to a script or an agent. Learn more.
  • otty:// links — a deep-link URL scheme that focuses a specific window, tab, or pane. Learn more.
  • Editor crash recovery — unsaved file-pane edits and their dirty state come back after a crash.
  • Clipboard consent — allow, ask, or deny when a program reads or writes your clipboard (Settings ▸ Advanced).
  • Mouse-mode bypass keys — choose which modifier hands the pointer back for selecting text or opening a link inside a mouse-tracking program (Settings ▸ Controls).
  • Per-shell integration toggles — turn shell integration on or off for zsh, bash, and fish individually, with the master switch following your default shell.
  • Resizable Settings panel, and the UI font size now scales every piece of chrome text.
  • Never confirm on close — a Never option for the close confirmation, plus an option to hide the unsaved-changes dot in the window's close button.

Improvement

  • Splitting an SSH pane now reconnects to the same host and remote directory instead of dropping back to your local home folder.
  • The agent history viewer is fully keyboard navigable, and agent integrations in Settings are now a compact per-agent list.
  • The Git panel bounds its refreshes, so large or very dirty repositories no longer pile up git processes.
  • Terminal compatibility improved with Sixel and XTSMGRAPHICS reporting, full DECSCUSR cursor-shape and blink control, reverse-video screen mode, focus reporting, OSC 52 clipboard reads, notification urgency, and colour save/restore that also covers the palette a program set with OSC 10/11/12.
  • The Git sidebar disables Commit on a clean tree and no longer asks you to confirm a Fetch.
Bug fix
  • Fixed a blank flash while typing with an IME in agents that repaint the whole screen.
  • Fixed glass and vibrancy materials turning black in native full screen.
  • Fixed a crash when double-clicking a small file in the SSH file panel.
  • Fixed memory growing over long sessions — every pane rebuild stranded a scroll overlay and a wake box.
  • Fixed a cancelled pane drag leaving Esc dead app-wide until restart.
  • Fixed mouse selection landing on the wrong lines while scrolled back.
  • Fixed ligatures being squeezed and underlines cutting into glyphs on non-Retina displays.
  • Font Ligatures off / calt / dlig now actually take effect.
  • Fixed shade blocks rendering double-composited, and wide glyphs with overhang being clipped.
  • Fixed an image sequence split across two reads swallowing the output that followed it.
  • Fixed a Sixel redraw storm that could hang the terminal.
  • Pagers on the alternate screen scroll with the wheel again.
  • Fixed a dirty TUI exit leaving you stuck on the alternate screen with mouse reporting on.
  • Pasted text containing an embedded end-of-paste marker can no longer inject input into the shell.
  • Fixed the shell prompt being stranded after a resize.
  • Font scale is preserved across tab switches, and tabs sorted by update time keep a stable order.
  • New panes are sized to the pane area instead of the whole window.
  • Fixed folders that are symbolic links listing as empty in the Files pane.
  • Thin drag targets are now as wide as they look.
  • Ctrl-Space is forwarded to the terminal.
  • Claude session history and Outline now resolve inside Git worktrees.
  • Autocomplete no longer loses the first character of a command when the prompt redraws narrower.
  • Shell integration survives a pre-existing alias on a wrapped name instead of producing a zsh parse error.
  • Kimi Code is detected when it is only on your interactive-shell PATH.
  • Fixed a crash refreshing Git status in huge repositories with many dirty submodules.
  • Child processes can request microphone access.
  • A manual Mark Tab ▸ Unread dot stays visible on the active tab.
  • ⌘J in Open Quickly switches to the Current filter instead of dismissing it.
  • Directional pane focus follows true border adjacency, so neighbours are never skipped.
  • Vertical sidebar tab order stays stable when focus moves between split panes.
  • Custom agent commands survive a session resume, and an opencode session no longer reports busy after it has gone idle.

Download for macOS (Apple Silicon)

Download for macOS (Intel)

v 1.2.3

July 7, 2026

Bug fix
  • The Composer now renders the text you type and keeps it readable against its background, including on macOS 15.
  • Fixed open terminals only partially repainting when switching the dark-mode theme.
  • Applying a theme from the Command Palette in dark mode now updates the active dark slot.
  • Duplicating a theme auto-numbers the copy (Copy, Copy 2, Copy 3) instead of colliding on the same name.
  • Claude session history no longer shows up empty for project paths that contain dots, underscores, or spaces.

Download for macOS (Apple Silicon)

Download for macOS (Intel)

v 1.2.2

July 3, 2026

New

  • AppleScript automation — open tabs, run commands, read a tab's visible contents or history, check whether a tab is busy, and set custom tab titles from scripts.
  • VoiceOver accessibility — the terminal viewport, selections, cursor position, tab rows, pane controls, toolbar buttons, and custom-drawn chrome are all narrated.
  • BiDi / RTL text — Hebrew, Arabic, and mixed-direction lines are reordered visually, while copy, paste, find, and scrollback stay in logical order.
  • Global hotkey — a system-wide shortcut brings Otty to the front, opening a window if none is open (Settings -> Key Bindings -> Global Hotkey).
  • New Window When All Windows Closed — keep a fresh terminal ready after the last window closes (Settings -> General).
  • Notification sounds — opt-in sounds for terminal notifications and task state changes.
  • Quit <program> — stop a stuck foreground TUI straight from the Command Palette.
  • Dark-mode app icon — a new app icon that follows the macOS appearance.
  • modifyOtherKeys (XTMODKEYS) — disambiguated key reporting for programs that request it.

Improvement

  • Added an install prompt when an agent integration is missing.
  • Added Git sidebar support for changed submodules, including nested submodules up to depth 2.
  • Added Reset to Built-in Version for stale built-in themes.
  • Added dragging a pane corner to resize its width and height at once, with a diagonal resize cursor at split junctions.
  • File drags can spring-load tabs after a short dwell, making cross-tab drops faster and easier to aim.
  • Files tree folders now toggle when you click the folder icon, not only the disclosure triangle.
  • Open Quickly finds more agent sessions, resumes agents after session reopen, and keeps the search query when switching filters.
  • Read-only mode and Vi mode survive view swaps and rebuilds.
  • Terminal compatibility improved with application keypad mode, backarrow key mode, and better Kitty keyboard-mode cleanup at the shell prompt.
  • Shell integration now survives zsh/bash noclobber settings when dumping aliases and PATH.
  • Reopening Otty while it is already running now opens a new window instead of doing nothing.
  • Double-clicking the standard title bar now zooms the window.
  • Tab names now follow the shell's OSC 1 icon title and the window title follows OSC 2, with cleaner labels for truncated working-directory titles.
  • Otty stays responsive during large reflows and Git status refreshes by moving PTY writes, resize reflow, and Git subprocess calls off the main thread.
Bug fix
  • Fixed transcript-wide find in agent history and re-enabled the Find menu over file panes.
  • Closed tabs are no longer resurrected from cached tab order on relaunch.
  • Fixed Dvorak-QWERTY Command shortcuts by resolving shortcuts with charactersIgnoringModifiers.
  • Fixed legacy modified Backspace, numeric keypad Enter, and macOS function-key private-use characters being sent incorrectly to the PTY.
  • Fixed Indic, Thai, and other complex-script combining marks that could render doubled, smeared, or as duplicate rows.
  • Fixed OSC 7 current-working-directory URI decoding for non-ASCII paths.
  • Fixed tab rename and prefix actions applying to the focused pane instead of the tab.
  • Fixed natural editing chords such as Option-Delete, Option-Forward Delete, Option-Left, and Option-Right.
  • New tabs now inherit the live current directory, and tab badges show the real shell/process state.
  • Fixed the glass-dark theme material on macOS.
  • Pane drag handles are confined to the handle capsule while the rest of the title area remains usable for window drag.
  • Toggling docked panels now reflows the terminal grid up front.
  • Split panes now tear down individually when their shell exits.
  • Esc is passed through to foreground programs instead of opening the autocomplete panel.
  • open -a Otty <folder> now routes to a tab in that folder.
  • --pane targeting now works across background tabs for send-keys, capture, and show commands.
  • Zoom resync no longer changes the effective font size.
  • Prompt queue state survives view rebuilds and restart.
  • Left/Right arrow caret movement is fixed for visually reordered BiDi text.
  • File -> New Window/Tab and Cmd-N remain usable when no window is open.
  • Clear Screen no longer wipes the grid on the alternate screen.
  • Custom keybindings can override Cmd-S, and Open Quickly filter shortcuts are no longer stolen by menu bindings.
  • Fixed UI font-size round-tripping and submodule Stage All handling.
  • Shift-click now extends the selection from the last click or the caret even when nothing is selected yet.
  • Trackpad momentum scrolling no longer floods full-screen pagers with a burst of arrow keys after you lift your fingers.
  • Multi-row Backspace/Delete now removes the whole selection reliably, and the caret collapses to the selection edge on arrow keys.
  • IME composition no longer stretches or compresses CJK glyphs on the row being composed.
  • Clearing the screen over a foreground program no longer leaves a literal ^L behind.
  • Fixed a spurious Claude "task complete" notification that fired once per subagent.

Download for macOS (Apple Silicon)

Download for macOS (Intel)

v 1.1.0

June 23, 2026

Improvements

  • File ▸ Open Recent now records non-blank windows when you close them.
  • Double-click the divider line in the tabs panel to set its text.
Fixes
  • Image previews now render correctly in yazi.
  • Fixed a freeze that could occur while running zellij or working over SSH.
  • Resizing the window no longer leaves a stranded copy of the shell prompt.
  • Fixed a crash when changing the tab-bar layout in full screen.
  • Opening a folder from Finder on a cold launch now opens that folder instead of your home directory.
  • Tab titles now follow the focused pane in split layouts.
  • Oversized glyphs no longer overflow their cells; block, sextant, and Powerline glyphs render crisply.
  • Option-as-Alt now applies to letter and symbol keys.
  • Fixed a reverse-video block when typing CJK at an SSH prompt.
  • Git status now decodes non-ASCII filenames correctly.
  • The SSH file panel refreshes after you create a folder, and shows upload progress.
  • The Composer re-focuses when clicked and shows the text you type.
  • Smooth scrolling no longer leaves a partial-row offset after the layout changes.

Download for macOS (Apple Silicon)

Download for macOS (Intel)

v 1.0.4

June 18, 2026

v 1.0.1

June 10, 2026

The first public release of Otty for macOS.

Otty for macOS

Highlights

  • GPU-accelerated rendering on Metal — smooth scrolling, ligatures, true color, and inline images.
  • Tabs, splits, and panes with drag-to-rearrange layouts, live status badges, and unread dots.
  • Session recovery — close the lid, reopen, and every pane is right where you left it.
  • Command Palette (⌘⇧P), Open Quickly (⌘⇧O), and inline autocomplete.
  • Recipes — save commands, layouts, and snippets, then replay them.
  • First-class agent affordances — session history, fork & branch, the Composer and prompt queue, and send-to-chat.

Notes

  • Native on macOS (Apple Silicon and Intel). Windows and Linux are on the way.