1.0.11
2026-09-13
Tabs & Workspaces
- Tab Exposé: See live previews of terminal and Screen Sharing tabs. Swipe down on the top tab bar or press Cmd-Shift-A, swipe between groups, and pinch to resize previews. Also browse tmux, herdr, zellij and zmx sessions over SSH and tssh.
- Preview inactive tabs on iPad by holding Shift while hovering. Choose Compact Pills, Integrated, Ledger or Trough tab styles.
- Rearrange split panes by dragging their handles, including panes in a tmux control-mode window, without closing sessions.
- iPad Visor: Enable a separate drop-down local terminal above each window, toggle it with Shift-Escape and drag to resize.
Notifications & Agents
- Encrypted Push Notifications with Agent Hooks: Connect Claude Code and Codex hooks to get notified when a turn finishes, even in the background. Claude Code hooks also notify you when input is needed. Tap to return to the agent’s pane. Send alerts from scripts, cron jobs, builds and deployments with rootshell-notify.
- Optional Live Activities show coding-agent status on the Lock Screen and Dynamic Island. Background snapshots are marked as paused.
- More accurate Codex and GitHub Copilot activity detection, with less CPU use during active agent sessions.
Settings & Profiles
- Sync app settings through iCloud, choose which groups sync and keep individual settings on one device. A new text config file supports local overrides and exporting settings.
- Quick Settings: Press Cmd-Shift-Comma to search and change preferences without leaving the terminal. Settings search covers more controls.
- Save Local Shell profiles with a starting directory and startup command. Profiles gain individual themes and keyboard shortcuts; SSH profiles can pin a multiplexer session name.
- Choose whether new tabs open a local shell, duplicate the focused session or ask each time. Cmd-T follows your choice.
Connections
- tssh Jump Relays: Relay the full session through a jump host to reach private targets, with session recovery across network changes. Requires tsshd on both hosts.
- SSH login banners now show tappable authentication links, including Tailscale SSH check-mode approval links.
- Fixed synced passphrase-protected SSH keys, RSA compatibility and host-certificate verification across connection types. Jump-host target connections now use post-quantum key exchange when supported; hybrid keys support the newly standardized OpenSSH names.
- Mosh overwrite prediction keeps bordered interfaces aligned on slow links. Typed commands preserve quoted options and remote arguments.
- Added zmx discovery and auto-start. tmux control-mode sessions restore faster, handle heavy output more smoothly and reconnect in the background without stealing focus.
Keyboard & Terminal
- Optional Writing Assistance adds suggestions or autocorrect with Apple's on-screen keyboard. A redesigned selection magnifier makes selecting text easier.
- Improved alternate hardware keyboard layouts, iPad emoji search, Cmd-Period and software-keyboard visibility. Pasting avoids unnecessary clipboard permission prompts.
- Updated terminal engine adds animated Kitty graphics and improves Unicode handling. Local shell functions, aliases, pipelines and redirections work more reliably.
- Added a true-black AMOLED theme, Silk cursor effect, optional prompt spacing and a timed keep-awake setting.
Screen Sharing
- Faster Standard Mode decoding, support for servers that initially report an empty desktop size, and more reliable login-screen detection.
- New sessions can route reserved keyboard shortcuts to the remote computer and map physical Control+Option to remote Command, with adjustable defaults.
Performance & Reliability
- Faster launch, lower memory use with many tabs and a smaller app bundle.
- Fixed background and lock-transition crashes, slow-DNS ping freezes, sidebar context-menu freezes, SSH connection and rekeying failures, and missing tmux startup output. Improved remote startup with fish and other login shells.
1.0.10
2026-08-20
Agents & Commands
- Agent Inbox: The vertical tab bar now tracks popular coding agents across SSH, tssh, Mosh, and tmux panes. See who is working, waiting, or done; jump to the right pane; get notifications; group agents by project; and monitor subscription usage.
- Command Detection: Optionally track long-running builds, tests, deployments, transfers, progress, and prompts such as sudo, with the same cards and notifications.
herdr
- Discover herdr sessions with status, active agents, and a live pane preview; attach or restart them from the session picker; or auto-start herdr over SSH, Mosh, and tssh.
SSH & Terminal
- Passkey-Backed SSH Keys: Generate standard sk-ecdsa keys held by your passkey provider. Approve each signature with Face ID, Touch ID, or your passcode; private key material never reaches rootshell.
- Post-Quantum Keys: Generate or import OpenSSH 10.4-compatible hybrid ML-DSA-44 + Ed25519 keys, with ssh-add, agent forwarding, and host-key support.
- Configure TERM globally or per profile. Sessions also identify rootshell through LC_TERMINAL.
- Install Key on Server works with passwords, saved passwords, 2FA, and keyboard-interactive challenges again. Locale handling now avoids setlocale warnings and works correctly over tssh.
Screen Sharing
- Curtain Mode: When Remote Management is enabled on the Mac, blank its physical display behind a lock screen while you stay in control.
- New defaults for clipboard security and pointer panning. Connection Info adds live performance details for tssh and tmux window tabs.
- High Performance audio and video stay in sync. Standard Mode responds faster on slow links, sharpens progressively, and avoids stale tiles or partially drawn first frames.
- Sessions recover from stalls, idle-network interruptions, and brief app switches. Returning from the background reconnects immediately when needed.
- Option keys reach Mac hosts correctly, and saved-password login is more reliable.
Privacy & Automation
- Auto-Redact masks names, email addresses, and other strings on screen so they stay out of screenshots and recordings, while copied text remains unchanged. Your list is encrypted in the keychain.
- New Apple Shortcuts actions open a shell or SSH profile, list profiles, and run SSH commands in the background with output, stderr, and exit status.
Apple Pencil & Keyboard
- Apple Pencil is now a precise terminal and Screen Sharing pointer: tap, drag, scroll, select, hover, and double-tap the barrel for right-click.
- Toolbar keys follow the system keyboard's Shift and caps lock. Modified keys repeat again, hardware-keyboard settings now appear on iPhone, and bottom-edge gestures no longer type accidental keys.
- Opening Settings or the tab switcher with the keyboard visible is dramatically smoother and no longer repeatedly resizes remote sessions.
Clipboard, Profiles & Tabs
- Clipboard Manager can unwrap hard-wrapped text and reflow it to a chosen width while preserving document structure, CJK, and emoji.
- Profile icons now include a searchable catalog of SF Symbols, developer icons, and site favicons.
- Grouped tabs gain a quick group picker and stable saved ordering; sidebar titles can wrap to three lines.
AI
- Custom providers now support Anthropic-compatible APIs, model discovery, keyless local servers, correct endpoint previews, and clearer server errors.
Battery & Stability
- Adaptive refresh rate runs at full speed on power and caps itself on battery, alongside Low Power Mode and thermal throttling.
- Fixed iOS and iPadOS background terminations, a terminal parser deadlock, AES-GCM and Screen Sharing crashes, tmux title and reconnection issues, delayed background bells, and synced biometric-key authentication.
1.0.9
2026-07-22
Screen Sharing
- Connect to Your Mac's Screen: rootshell now reaches your Mac's desktop, not just its shell - right from your iPhone or iPad. Nothing to install: turn on Screen Sharing in System Settings and connect.
- High Performance Mode: Smooth video up to 4K at 60 FPS, encrypted. Match Client sizing creates a virtual display sized exactly to the device in your hand - no panning or letterboxing - and remote system audio plays on your device.
- Standard Mode: Classic VNC for constrained networks and non-Mac machines - drive a headless Mac mini, Raspberry Pi, or Linux box from the app you already SSH with. Tunnels over an SSH or tssh jump host; nearby Macs appear via Bonjour.
- Full Input: Tap, drag, pinch-zoom with edge panning, real trackpad and mouse pointers, two-way clipboard, and hardware keyboards that get modifiers and key repeat right.
- One-Tap Mac Login: At a Mac login or lock screen, rootshell offers to type your saved password, detected by a vision model running entirely on your device - no frame ever leaves it.
- Sessions live in a tab, a split, their own window, or full screen, and save as profiles that sync across devices.
Clipboard Manager
- Optional device-only encrypted clipboard history (Cmd+Shift+C) with a keyboard-driven HUD and transforms: base64, hex, URL encode, JWT decode, hashes, JSON format, shell escape, and more. Off by default.
Display
- HDR Brightness Boost: On HDR displays, drive the terminal brighter than usual via a floating HUD (Cmd+Ctrl+B) - now on Screen Sharing panes too.
Keyboard Toolbar
- Up to five configurable drawer rows: stack or cycle them with the More button, and drag keys between any rows in the editor.
tmux Control Mode (tmux -CC)
- Choose what closing a tab or Cmd+T does while attached, large pastes arrive atomically, panes recover cleanly after backgrounding or network roaming over tssh, and fixes for blank panes, stuck resyncs, and orphaned window tabs.
iOS Local Shell
- Major shell overhaul: [[ ]] conditionals with regex, parameter expansion, background jobs (&, jobs, wait), printf, arithmetic, brace expansion, set -e/-u/-o pipefail, clean LF line endings, and a fix for large command-substitution hangs.
- croc file transfers can now discover peers on your local network for direct nearby transfers.
Connections
- Force IPv4 for SSH, a Block HTTP/3 (QUIC) VPN option, NetBird peers connect by stable DNS name, and device details for Tailscale and NetBird peers.
AI
- Claude Sonnet 5 and the GPT-5.6 model suite are now selectable.
Appearance
- Jellyfish: a new background effect with bioluminescent drifters; Butterflies and Jellyfish now steer around your terminal text.
Performance & Stability
- Lower terminal memory use, no more freezes under heavy output (recent zellij), Mosh sessions resume drawing after backgrounding, frozen blank tabs fixed, VPN saved-password sign-in fixed, deleted iCloud passwords stay deleted, plus many crash fixes.
1.0.8
2026-06-29
Tabs
- New Tab Sidebar: A vertical tab switcher (open with Cmd+Shift+\) that rises from the bottom on iPhone and sits on the left on iPad, where you can pin it open as a permanent column beside the terminal. Search, drag to reorder, per-row context menus, and full keyboard navigation.
- Grouped Tab Navigation: Sort tabs into automatic sections - local shells, remote hosts, domains, networks, Kubernetes and cloud, and one per tmux gateway. Remote hosts collapse by subnet, domain groups show favicons, and you can drag a tab into a different group. Toggle with Cmd+Shift+G.
- Move Tabs Between Windows: Drag a tab, a whole group, or an entire tmux gateway from one window into another (or a new one) with no disconnect and no reopen. iPad only.
tmux Control Mode (tmux -CC)
- Images in Panes: Inline images now render in control-mode panes, for both Kitty graphics (kitten icat, yazi previews) and iTerm2's imgcat.
- Full Pane Capabilities: Panes can copy to the clipboard, drive the tab progress indicator, report their working directory, and post notifications, exactly like a regular terminal.
- Sessions Dashboard and Pane Admin: Create, rename, move, link, and kill windows from the dashboard, and zoom, swap, break out, move, rename, or clear live panes. Hide windows or the gateway tab without killing them, and detach other clients (Shift+Cmd+X) to evict a stale device.
- Reliability: No more freezes under heavy load or output, multi-line paste arrives atomically, and in-progress IME composition (such as Korean) now shows inside panes.
Connections
- NetBird Peer Discovery: Add NetBird alongside Tailscale for Quick Connect - sign in with a token and your peers appear for SSH, with self-hosted Management URLs supported.
- YubiKey Insert and Touch Prompts: A clear overlay tells you when to insert or touch your YubiKey during SSH auth, instead of blocking silently and timing out.
- SSH Login Banners: A server's login or legal banner now appears inline, sanitized, like real ssh.
- Sign in with OpenPubkey (opkssh): Ed25519 keys, saved custom providers, and automatic re-sign-in when a certificate expires.
tssh
- Faster, More Stable Roaming: tssh reconnection after a network change or dropout is much quicker and more reliable, rebuilt on improved KCP and QUIC engines, and it no longer crashes if the remote tsshd fails to start.
Keyboard
- Reliable Korean (Hangul) Input: Hardware-keyboard Hangul composition is rebuilt on a local input model, so editing keys reach the active syllable and nothing gets dropped.
Display
- Extend Under Home Indicator (iPad): An opt-in toggle runs the terminal flush to the very bottom edge of the screen.
Appearance
- The Butterflies background effect now interacts - butterflies avoid each other, pair off, and flutter when startled - plus a new translucent Glasswing wing style.
iOS Local Shell
- Updated git Engine: The built-in git reads repositories with modern commit-graphs and can fetch a specific commit by hash from more servers.
Plus stability fixes throughout, including crashes when locking the device, closing tmux panes, and during the SSH key exchange.
1.0.7
2026-06-15
tmux Control Mode (tmux -CC)
- Native tmux Integration: Attach in control mode (or use the new auto-start option on a profile) and your tmux session maps onto rootshell itself: every tmux window becomes a native tab and every pane a native split. Splits, resizing, copy and paste, search, and scrollback are real rootshell gestures, not forwarded escape sequences.
- Sessions Dashboard: See every session on the server with live, tappable window previews; switch, create, rename, and kill sessions, with full hardware-keyboard control.
- Seamless Resume: Over tssh, your tmux tabs survive an app restart and re-enter control mode automatically on reattach.
Scrolling
- Pixel-Smooth Scrollback: Scrolling glides pixel by pixel instead of snapping a row at a time, tracking your finger 1:1 with natural momentum and optional rubber-band overscroll. A "Use Line Scrolling" toggle restores the classic behavior.
- 120 Hz on iPhone: The terminal now renders at up to 120 Hz on supported iPhones, matching iPad and Mac.
Connections
- Keyboard-Interactive SSH Auth: 2FA, one-time-password, and PAM challenges are now supported on every connection path, with iOS password-manager AutoFill for both password and OTP prompts.
- Secure Enclave SSH Keys: Generate a P-256 key that is created in, and never leaves, the Secure Enclave. Signing happens inside the secure coprocessor; servers see a standard ECDSA key.
- OpenPubkey SSH (opkssh): Sign in with Google, Microsoft, GitLab, or a custom OIDC issuer to get a self-renewing SSH identity, with no key files to generate or distribute.
- SSH User Certificates: Attach an OpenSSH user certificate to any key, including Secure Enclave, YubiKey, and FIDO2 keys, for servers using TrustedUserCAKeys.
- Trusted Host Certificate Authorities: Validate host keys against an OpenSSH CA, ending "host key has changed" prompts on fleets that rotate keys.
- A launch command can run as the session's initial PTY command (like ssh -t), dropping you straight into a TUI or tmux; tssh roaming also picked up a major reliability pass.
- Sort profiles by name, recently used, most used, or date created.
iOS Local Shell
- git Commit Signing: The built-in git signs commits with your existing GPG and SSH keys, with no private key on disk. git commit -S and the usual signing config keys are honored.
Keyboard
- Collapse the keyboard toolbar to reclaim screen space, or pin the on-screen keyboard hidden with a long-press on the dismiss chevron.
- Command-Tap Input Switching: Tap Left or Right Command alone to switch the hardware keyboard to a chosen input language - ideal for CJK.
- Drag toolbar keys directly between the Main Row and the Drawer.
Appearance
- Two new background effects: Butterflies, with procedurally animated visitors that occasionally drift across the terminal, and a fully rewritten Aurora with parallax curtains and new color modes.
Interface
- Always On Display keeps the screen awake during long builds or monitoring sessions.
- Full Screen mode returns to iPhone, running edge to edge.
- Switching in and out of the app is dramatically faster, and the "would like to paste" prompt no longer appears on every return.
AI Agent
- Claude Opus 4.8 with a 1M-token context window, on the Anthropic API and AWS Bedrock.
1.0.6
2026-05-30
Connections
- GPG Agent Forwarding: Sign and decrypt on remote servers without copying your private key. rootshell acts as the GPG agent and forwards it over SSH or tssh, so `gpg --sign`, signed git commits, and `gpg -d` are handled on device. Existing SSH keys (including YubiKey PIV) can sign without import; standalone GPG keys are imported under Settings → Connections → GPG Keys.
- On-Device Key Generation now offers Ed25519, ECDSA P-256/P-384/P-521, and RSA 2048/3072/4096.
- Import from OpenSSH Config: Settings → Privacy & Data reads `ssh_config`, turns Host blocks into saved profiles, and offers to import IdentityFile keys. Wildcards, negated patterns, and ProxyJump identity inheritance are honored.
- SSH over Apple Network Framework: Every SSH connect now uses Network framework, so reaching a NAT'd Tailscale peer from outside the home network is reliable.
- Transfer tssh to Nearby Device: Long-press the tab title to move a live tssh session to another iCloud-paired device via Handoff. Requires tsshd 0.1.8+.
- Mosh renders into the alternate screen so the viewport is isolated and prior scrollback is restored on close (toggleable).
- tssh Discard Input While Offline toggle: discard or queue keys pressed between networks.
- SFTP `cd` resolves symlinks; `get *.log` works through symlinked directories.
- Ctrl-C interrupts in-flight ssh / sftp from the local shell during DNS, handshake, or key exchange.
- YubiKey library 1.3.0: correct continuation APDUs, USB-C unplug cancels pending reads, crash and memory leak fixed.
Terminal
- libghostty rebased on upstream: ~10 escape-sequence DoS and crash fixes from AFL fuzzing. Korean IME preedit crash fixed. Kitty keyboard protocol now reports composed/IME text.
iOS Local Shell
- libgit2 rebased: reftable backend, faster SHA-256 OID handling, revspec UAF fix.
- WASM/WASI: Added file-times, range I/O, sockets, and `env.*` libc imports that Go-compiled and POSIX-shim binaries rely on. Cooked-mode stdin translates Enter to LF so `bufio.ReadString('\n')` no longer hangs. recvfrom returns the real peer; TCP accept no longer hangs on a stale handle.
Interface
- Two-Finger Long-Press Duration: Configurable under Settings → Terminal → Gestures (0.5s / 1s / 2s / Off) so the new-connection sheet doesn't trigger when you pinch to zoom.
- Spacebar Trackpad: Long-pressing the on-screen keyboard spacebar drives the cursor as arrow keys.
- iPadOS 18 hardware-keyboard floating button suppressed inside the terminal (CJK IME preserved).
- Terminal resize waits for on-screen keyboard animation and padding is pinned during live resize so text doesn't drift.
- Per-Theme UI Chrome Colors and Disable Tab Animations toggles added.
BUG FIXES
- SCP/SFTP tab completion: profile suggestions no longer leak via tag/notes substring matches, completions escape spaces and close open quotes, and slow directory listings no longer overwrite stale text.
- Tab close routes to the dying tab when a session ends asynchronously after switching tabs.
- SSH cooked-mode pty-req modes populated per RFC 4254 §8. Speculative MikroTik / RouterOS fix.
- Backup restore reports per-record failures instead of inflating success counts.
- YubiKey wired connect times out at 30s if no key is inserted.
- Tab-bar Liquid Glass selection no longer pops or shows the wrong tab during create/close/reorder.
- Selection magnifier centers above your finger.
1.0.5
2026-05-13
Terminal
- Native scrollbar now drives both tmux copy mode and zellij scroll mode, making scrollback position visible in either multiplexer.
Connections
- Bundled tssh client refreshed to upstream v0.1.8. Upgrade tsshd on your servers for best reliability.
- SSH bootstrap retries transient failures with bounded backoff up to ~5 minutes instead of giving up on the first error. Auth failures and host-key rejections still bail immediately.
iOS Local Shell
- WebAssembly (WASM) Support: the local shell can now execute .wasm binaries cross-compiled to WASI (wasm32-wasip1). Provided for educational use — code you have written yourself or audited; rootshell does not offer a catalog of pre-built binaries. Get a .wasm file onto the device (scp/sftp into the local shell, or the Files app), then run it as `wasm path/to/binary.wasm args...`, or directly if the first token ends in .wasm. Capabilities: sandboxed filesystem read/write rooted at the app's Documents directory, TCP client/listener and UDP sockets via Network.framework, DNS through the system resolver, and TLS/HTTPS through standard WASI crates. Sessions run in cooked mode so Ctrl-C cancels the running binary; a binary can opt into raw mode for full-screen TUIs. Each tab gets its own runtime so two .wasm invocations stay independent. WASM programs participate in the shell like any other command, including pipes (`wasm tool.wasm | grep foo`) and redirects (`wasm tool.wasm > out.txt`).
- Shell parser hardened to handle bash-only constructs: `bash -c "$(curl ...)"`, `[[ ... ]]` tests, process substitution, array assignment and append, brace-group function bodies, line continuations, and trailing redirects.
Customization
- Settings → Privacy & Data → Import from Ghostty Config applies fonts, theme, cursor, palette, transparency, copy-on-select, and keybindings from a desktop Ghostty config file.
- New steppers in Settings → Appearance → Window for horizontal and vertical window padding.
AI Agent
- Added GPT-5.5: OpenAI's flagship reasoning model with a 1M token context window.
BUG FIXES
- Fixed a touch-handler race that affected scroll/select gesture mode for users who had never manually toggled the Scroll Mode setting.
- Fixed an iPhone resume wedge where the UI advanced one frame per touch.
- Fixed an iOS Local Shell hang where programs calling chdir() (Rust binaries, Vim's :cd, recursive command substitution) blocked forever.
- Fixed tssh mode restore for sessions started by typing tssh, ssh, or mosh inside an open local shell tab; mouse capture, alt-screen, cursor-key mode, and bracketed paste are preserved on resume.
- Fixed a stack overflow from deferred WiFi-info poll recursion during the resume quiet window.
- Fixed a saved-state issue where a force-quit shortly after a successful restoration could leave a stale flag the next launch misread as failure.
- Fixed a tssh ClientID race on reattach.
- Fixed session recovery loss on a quick launch-then-quit cycle.
- Fixed iPadOS scrollbar drag jumpiness; the finger-pan boost no longer applies to thumb or gutter drags.
- Fixed an output coalescer ordering window where new writes could land ahead of older queued bytes when the coalescer was disabled.
- NWPathMonitor instances now suspend while backgrounded and rearm on foreground.
1.04
2026-05-04
Appearance
- Twenty new app icon variants in Settings -> Appearance -> App Icon: an original set of eight, plus a "Radical of the Unknown" collection of twelve themed after popular terminal color schemes (Solarized, Dracula, Nord, Gruvbox, Tokyo Night, Catppuccin, Bases, Mono, Monokai, Rose Pine). Picking a variant updates the home-screen icon, the animated About icon, and the Live Activity widget at the same time.
- A new "Change App Icon" Shortcuts action switches the icon from a shortcut, automation, or Focus mode trigger.
- The Classic app icon has been re-mastered.
Connections
- SSH, mosh, and tssh sessions now implement OpenSSH's "~" escape sequences. At the start of a line: ~. disconnect, ~? help, ~# list active forwards, ~I connection info, ~~ send a literal tilde. Suppressed inside bracketed paste.
- A yellow OpenSSH 9.9-style banner now warns when an SSH session negotiates a non-post-quantum key exchange. The Connection Info "Post-Quantum Secure" badge was split into separate key-exchange and host-key signals.
- A new SSH Transport settings subpage collects health monitoring, probe interval, and post-quantum warning.
- A new SSH Server Compatibility toggle switches public-key auth to a probe-first flow, for routers and embedded servers that reject pre-signed offers.
- The local-shell ssh command accepts -AA as a shortcut for agent forwarding with auto-approval, and a new --path flag opts into a Homebrew/Linuxbrew/Go-friendly PATH prepend (otherwise your remote command goes over the wire verbatim).
- Tailscale resource lists and Quick Connect suggestions hide devices offline for more than 30 minutes.
- tssh resume retries with exponential backoff for up to 24 hours, instead of giving up after a single 30-second attempt.
AI Agent
- New AWS Bedrock provider routes Claude requests through Amazon Bedrock in your own AWS account, reusing the existing Cloud account flow (Access Keys or SSO/STS).
Local Shell
- Command substitution and arithmetic expansion: $(...), $((...)), and backticks now expand at the prompt instead of being passed through literally.
- Plain parameter expansion ($VAR, ${VAR}, $0-$9, $@ $* $# $? $$ $! $-) now expands at the prompt.
Terminal
- Per-font cell-width and cell-height sliders (±25%) in Font settings, scoped per font family.
Live Activity
- A new "Info Only" filter keeps the activity alive on WiFi or Network info alone, without requiring an open terminal or active VPN.
BUG FIXES
- Fixed a long-standing bracketed-paste hang where a large paste could leave the terminal silently buffering until the next tab focus change.
- Fixed an iPhone wedge after returning from background where the UI advanced one frame per touch.
- Fixed a terminal size desync after returning from background.
- Fixed Backspace in the bundled iOS Vim's INSERT mode.
- The watchOS Smart Stack mirror of the Live Activity widget no longer shows a placeholder where the app icon should be.
- The AI Agent now re-anchors when the underlying shell context changes; opening it on a tab where you'd SSHed and exited used to keep targeting the previous context.
- The AI Agent toolbar menu no longer pulses during streaming.
- SSH sessions opened from the local shell now wire up to the agent-approval prompt, so a forwarded-agent identity request no longer silently stalls.
- Profile editor validation messages render inline under the offending field.
- The reconnect roam banner no longer flickers through several "last seen" timestamps before settling.
- Opening Connection Info on iPhone with the keyboard up no longer leaves the keyboard covering the sheet.
- Lock-screen Live Activity session totals now aggregate across multiple windows.
- Live Activities orphaned by force-quit, OS kill, or crash are adopted in place at launch.
- Touch selection handles reappear after backgrounding or dismissing a sheet over a live selection.
- Tightened gesture recognizers around vertical scroll vs. the horizontal split-switch swipe.
1.03
2026-04-21
NEW FEATURES
Terminal
- iTerm2 inline images (imgcat) now render alongside the existing Kitty graphics protocol support, so "imgcat" draws PNGs and JPEGs inline instead of producing no visible output.
Background Effects
- Import your own movies from Photos or Files and use them as terminal backgrounds.
- A new GPU theme tint recolors photo and video backgrounds toward the active theme, with an adjustable strength slider.
AI Agent
- Claude Opus 4.7 is selectable in the model picker.
- A context window indicator shows how much of the model's input budget the last turn used.
- Edits to API keys and custom provider settings now apply to sessions you already have open.
- Custom provider models can have per-model context window sizes.
- The agent and voice agent now attach to SSH, mosh, and tssh sessions launched from the local shell prompt.
- Toolbar menus no longer flicker while a reply is streaming.
Connections
- SSH usernames containing "@" (Active Directory "user@domain" logins) now work everywhere: ssh / mosh / tssh / scp / sftp / ssh-copy-id, Quick Connect, HSS jump hosts, the AI agent's ssh_execute tool, and git SSH URLs.
- DNS for nearby SSH profiles is pre-resolved in the background while you browse the sheet.
- Standard SSH connections stream output off the main thread with an adaptive receive buffer, so heavy UI work no longer stalls echo and large pastes finish faster.
Location Diary
- Port forwards and SSH tunnels now participate in Location Diary
Keyboard
- Multi-key shortcut sequences (for example Ctrl+A, N) now fire on attached hardware keyboards. Previously they saved but did nothing.
- On hardware keyboards, Cmd+Left/Right now jumps to line start/end and Opt+Left/Right jumps by word, matching the Darwin defaults in upstream Ghostty.
Local Shell
- A new TUI welcome banner adapts to terminal width and uses your prompt theme's signature color.
- Common stdin-consuming filters (bat, cat, grep, awk, sed, head, tail, tee, and friends) now accept typed input when run without a file argument, with line editing, multibyte Backspace, and Ctrl-D EOF.
Fullscreen
- On iPadOS 26, the new persistent window controls auto-hide along with the status bar when in-app fullscreen is enabled.
SECURITY
- Backported the upstream Vim patch for the modeline RCE (GHSA-2gmj-rpqf-pxvh)
- Fixed an SSH encrypted packet length overflow that let a remote peer crash the connection before MAC verification.
BUG FIXES
- Fixed a background-thread crash inside getenv.
- Fixed a hang when a command mixed semicolons with pipelines.
- Fixed a main-thread deadlock in ping after a network change that could freeze the whole app.
- Fixed a background-autosave crash when the app was sent to the background.
- Fixed a crash when recording two shortcuts back-to-back.
- Fixed a voice agent crash on audio sessions that cannot support echo cancellation.
- Bracketed paste no longer leaks literal "^[[200~" text on remote shells.
- Copying a collapsed selection no longer publishes HTML under the plain-text clipboard slot, so a later paste types the intended text instead of markup.
- Gemini API keys with the new "AQ." prefix are now accepted.
- Swipe-to-delete works again on custom provider model rows.
- Ping no longer prints a "network path changed" line every time iOS churns its network path.