Release Notes

Version 1.0.2-14

January 16, 2026

Background SSH Tunnels

  • New profile mode for background SSH tunnels that maintain port forwards without a terminal UI. Includes auto-start on app launch, byte transfer statistics, and connection event history.

iOS Local Shell SFTP Client

  • Interactive SFTP: Full command-line Swift native SFTP client with sftp> prompt, line editing, command history, and tab completion for remote paths.
  • File Transfer Progress: Real-time progress display with percentage, throughput, and file counts for both SFTP and SCP transfers.
  • Chunked Transfers: Chunked streaming for better memory efficiency on large files.
  • CTRL-C Cancellation: SCP transfers can now be properly cancelled with CTRL-C.

iPad

  • Touch Scrolling: Two-finger scroll now moves 2x faster with matching momentum deceleration for a more natural feel.
  • Selection Fix: Text selection no longer triggers accidentally during two-finger scrolling.
  • Empty State Shortcuts: Keyboard shortcuts (Cmd+T, Cmd+S, Cmd+N) now work when all terminal tabs are closed.
  • Menu Organization: Shortcuts for Copy, Paste, scroll commands, and split navigation now appear in their proper menus instead of Help.

SSH

  • Reconnection UI: Polished animated reconnection display with Braille spinner, theme-aware colors, rotating messages, and smooth countdown updates.
  • Connection Health: Tab bar health indicator now requires sustained poor conditions (2 of 3 samples) before showing red, reducing false alarms.

Shaders

  • Tesla Coil Cursor: New electric arc cursor shader effect with branching animation.

macOS

  • Menu Compatibility: Fixed missing Terminal/Shell/Tabs menus on pre-macOS 26. Added Clear Screen, scroll commands, and Theme Picker to fallback menus.

Stability

  • Fixed potential crashes from invalid tab index access during tab operations.

Version 1.0.2-13

January 12, 2026

Core Engine Update

  • Upgraded libghostty to include all upstream changes as of January 12, 2026.
  • Memory Leak Fix: Fixed a significant memory leak in the PageList data structure where non-standard (oversized) pages were incorrectly recycled, preventing their memory from being released. This leak was particularly triggered by terminals with heavy scrollback activity and multi-codepoint grapheme output. Read more

Tailscale Improvements

  • Hostname Display: Tailscale devices now show their hostname instead of IP address in both the device list and SSH connections.
  • Default Username: Tailscale SSH connections now default to your local username.
  • Simplified Setup: Removed the requirement to provide a tailnet identifier.

Bug Fixes

  • Unknown Host Handling: Fixed SSH disconnecting on first keypress when connecting to an unknown host that requires host key confirmation with iOS local shell.
  • Touch Targets: Fixed touch targets on theme rows and other settings buttons that were difficult to tap.
  • macOS: Fixed cursor tracking cleanup when changing cursor styles.
  • SF Symbols: Fixed invalid SF Symbol reference in theme settings.

Version 1.0.2-12

January 11, 2026

Tailscale Integration

  • Device Discovery: Added Tailscale as a cloud provider for discovering and connecting to devices on your tailnet. Add your account via Settings → Cloud Providers using OAuth authentication. Devices appear in tab completion and browse.
  • No-Auth SSH: New "none" authentication method for SSH connections, designed for Tailscale SSH and networks where authentication is handled at the network layer.

Bug Fixes

  • Tab Close: Fixed focus issue when closing the active tab
  • Manual Reconnect: Fixed Enter key not triggering reconnect on disconnected sessions
  • Clipboard Paste: Fixed pasted content showing URL-encoded characters instead of original text

Version 1.0.2-11

January 3, 2026

Performance

  • Native VSync: Now uses CADisplayLink for vsync-synchronized rendering, replacing the deprecated CVDisplayLink in GhosttyKit. Improves frame pacing and reduces tearing, particularly on iOS where CVDisplayLink was unavailable.
  • Background Tab Optimization: Tabs not visible now stop GPU rendering via occlusion API, significantly reducing GPU usage with multiple tabs open
  • AI Agent Output: Reduced CPU usage during high-throughput command output by increasing UI update throttle and adding render coalescing

SSH

  • Auto-start tmux: New toggle to automatically attach to or create a tmux session named "main" on connect. Falls back to default shell if tmux isn't installed.

Cursor Settings

  • Cursor Effects: Warp, Sweep, Tail, Blaze effects with optimizations that idle cursor effect shader when not actively rendering
  • Cursor Style: New setting for cursor shape (block, bar, underline, hollow block)
  • Cursor Blinking: Configurable cursor blink (off by default)

Custom Shaders

  • Shadertoy Compatibility: Import shaders directly from Shadertoy with full uniform support (iResolution, iTime, iTimeDelta, iFrameRate, iFrame, iMouse, iDate, iSampleRate)
  • Animation Optimization: Shaders with DURATION constant auto-pause when animation completes, continuous shaders (using iTime without cursor) run at full frame rate

Bug Fixes

  • Font Change Resize: Terminal grid dimensions now update correctly after changing font
  • Status Bar Visibility: iPad status bar text color adapts to terminal theme luminance

Version 1.0.2-10

December 30, 2025

Bug Fixes

  • OSC 52: Fixed clipboard read operations for terminal applications (vim, etc.)

Connection Profiles

  • Saved Profiles: Save frequently used connections as profiles with custom names, tags, and folder organization
  • iCloud Sync: Profiles sync across devices via CloudKit (toggle in Settings > Cloud Sync)
  • Browse Profiles: New sheet for searching, filtering, and managing profiles (Cmd+Shift+P or Shell > Browse Profiles)
  • Quick Connect: Profiles appear with highest priority in Quick Connect suggestions

Connection UI

  • Type Selector: Replaced segmented picker with dropdown menu in navigation title bar
  • Inline Profiles: Profiles browser available as first item in connection type menu

Profile Management

  • Swipe Actions: Swipe left on profile rows for quick actions
  • Advanced Settings: Access full connection settings from profile editor

Virtual Keyboard

  • Double-Tap TAB: Double-tap the screen to insert a literal tab character when in virtual keyboard mode for easier access

Settings

  • Window Settings: Tab bar visibility controls now available on all platforms

Version 1.0.2-9

December 29, 2025

Clipboard

  • OSC 52: Fixed clipboard integration in tmux and others on iPad

Background Effects

  • Video Resume: Video backgrounds now properly resume playback after returning from background state

macOS

  • Titlebar Cursor: Added open hand cursor feedback when hovering over titlebar drag zones
  • Cursor Reset: Fixed cursor not resetting to arrow when moving from terminal to title bar

Bug Fixes

  • Session Health: Improved health monitoring for restored sessions with proper async state management

Version 1.0.2-8

December 28, 2025

Keyboard

  • Delete Key: Normalized to send DEL on Magic Keyboard, resolving non-default tmux configurations from triggering active pane switch

iCloud Sync

  • CloudKit Sync: Optional iCloud sync for SSH connection history and known hosts (Settings > iCloud)
  • Records sync automatically with push notifications for real-time updates

Background Effects

  • Toggle Shortcut: Cmd+Shift+L toggles background effect on/off
  • Fireflies Effect: Glowing particles with customizable appearance
  • Video Backgrounds: Play looping video files as terminal backgrounds

Bug Fixes

  • Multi-Window Focus: Fixed cursor focus on iPadOS 26 when switching between windows using activeAppearance trait
  • AI Streaming: Fixed content being cut off during AI streaming responses by moving throttle to view layer

Version 1.0.2-7

December 24, 2025

Terminal and Input

  • Scroll events now target the correct area under the cursor (ie tmux pane etc)
  • Momentum Scrolling: Custom physics for smooth scroll deceleration in mouse capture mode (tmux, vim)
  • Native Trackpad Momentum: Magic Keyboard trackpad now uses native iOS scroll physics in non-capture mode
  • Scroll Bars: Hidden automatically when mouse capture mode is active
  • Fixed CTRL-arrow keys failing to capture

Session Persistence

  • Window/Tab Restoration: Sessions now persist across app restarts. Tabs, splits, themes, and connections restore automatically on launch
  • Disable Option: New "Restore Sessions on Launch" toggle in Settings > Sessions

Theme Customization

  • Per-Tab/Window Themes: Override themes at tab or window level via Cmd+Shift+T picker (Tab > Window > Global priority)
  • Favorite Themes: Star themes in Settings or picker for quick access
  • Theme Indicator: Tabs with theme overrides show paintbrush indicator
  • Toggle Transparency: Cmd+Shift+O toggles window transparency on/off (macOS)

Touch Input (iPad/iPhone)

  • Text Selection: Single-finger drag to select text with iOS-native edit menu
  • Scroll Gesture: Two-finger drag to scroll terminal history
  • tmux Dividers: Single-finger touch in capture mode now drags tmux split dividers correctly

Keyboard Toolbar

  • Glass Effect: Blur background with refined colors for light/dark mode
  • Scrollable Layout: Right section merged into scrollable area for narrow windows

Window & Tab Management

  • Tab Shortcuts: Optional Cmd+1-9 indicators on tabs (Settings > Appearance)
  • Focus Fix: Keyboard focus now correctly granted after session restore
  • Split Resize: Native splits now notify all terminals to resize properly
  • Various layout fixes when virtual keyboard is active

Reliability

  • Reconnection Logic: Uses SSH exit-status for deterministic user exit vs connection drop detection
  • Helper Startup: Fixed local shell failing on restore when rootshell-helper not ready

Other Fixes

  • Output Coalescing: Reduced visual flicker in mouse capture mode with DECSYNC batching
  • Window Chrome: Tab bar background fills correctly without gaps

Version 1.0.2-6

December 22, 2025

Tab Bar Management

  • Hide Tab Bar: New toggle to completely hide the tab bar via context menu or Cmd+Shift+B. Available in Terminal > Toggle Tab Bar menu. Setting persists across sessions.
  • Tab Indicator Overlay: When switching tabs with hidden tab bar, a brief overlay shows current tab title and position dots
  • Window Dragging: Allow window dragging in titlebar area when tab bar is hidden
  • Titlebar Theming: Fixed theme background color not filling titlebar when "Tabs in Title Bar" is disabled

Terminal Mouse Support (tmux, vim, zellij, etc)

  • Right-click in mouse capture mode: Right-click now sends events to terminal apps instead of showing iOS context menu
  • Right-click drag: Full drag support for tmux menus on both iPad (trackpad) and macOS
  • Scroll passthrough: Scroll events now sent to terminal when mouse capture is active
  • tmux scroll fix: Fixed rubber band bounce at edges sending spurious scroll events

Known issue: tmux split resizing via mouse works reliably on macOS, but is currently unreliable on iPad

macOS

  • Multi-window fix: Tab dragging in one window no longer affects other windows
  • Single tab dragging: Window dragging now works correctly with only one tab

Font & Theming

  • Font ligatures toggle: New setting to enable/disable ligatures (Settings > Fonts)
  • Automatic day/night themes: Switch themes based on sunrise/sunset times from your location

Input & Keyboard

  • iPad copy/paste: Fixed Cmd+C and Cmd+V not working on iPad hardware keyboard
  • Control key repeat: Fixed control key repeat in keybind handling

Visual Effects

  • Sun glow: Improved sun rendering with altitude-based compression and theme-aware blending

MCP Tools

  • Added cloud_list_instances tool for AI agents to search VMs by display name

Other Fixes

  • Fixed local shell output normalization for full-screen apps in iOS local shell
  • AI Agent sidebar divider now uses theme background color

Version 1.0.2-5

December 19, 2025

MCP Server for AI Tool Integration

Connect external AI assistants like Claude Code, Codex CLI, and Gemini CLI to Rootshell. The new MCP (Model Context Protocol) server allows AI tools to:

  • Execute SSH commands on your saved hosts
  • Access cloud instances and Kubernetes clusters
  • Works with a secure connection approval flow - you approve each new AI tool before it can interact with your sessions

Enable it in Settings → MCP Server and follow the provided CLI commands to connect your favorite AI tool. Disabled by default.

macOS: Tabs in Title Bar

  • A cleaner window design that integrates tabs directly into the title bar
  • Now the default for new installs
  • Toggle it in Settings → Window → Tabs in Title Bar

Keyboard Shortcut Customization

  • Fully customize your keyboard shortcuts with immediate visual feedback
  • Optional loading of ghostty configurable text file on all platforms
  • Edit any shortcut in Settings → Keyboard Shortcuts
  • Menu bar reflects your custom shortcuts in real-time
  • Changed toggle_split_zoom default to Cmd+Shift+Return (was Cmd+Shift+Z, conflicting with Redo)

AI Agent Improvements

  • Sidebar & Window modes - Choose between an integrated sidebar or a floating window (iPhone is integrated only)
  • Web search & fetch tools - AI Agent can now search the web and read pages with search and page fetches taking place on your device
  • Per-provider temperature settings - Fine-tune creativity for each AI provider
  • Quick mode toggle in the AI Agent menu
  • Text size settings for chat readability
  • Gemini 3.0 Flash model support added
  • macOS Agent now works with local shell sessions (not just SSH)

Bug Fixes

  • Fixed crash when closing the last SSH session
  • Fixed AI Agent chat flickering and scroll issues on iPhone
  • Fixed AI Agent STOP button not properly cancelling operations
  • Fixed thinking tags appearing in tool approval cards

Version 1.0.2-3

December 15, 2025

AI Agent

  • New AI agent accessible via Cmd+I in SSH sessions
  • Supports multiple AI providers: Anthropic (Claude), OpenAI, Google Gemini, and OpenRouter (400+ models)
  • Custom OpenAI-compatible and Anthropic endpoint support for self-hosted models
  • Streaming responses with inline markdown rendering
  • Interactive ask_user tool for structured prompts
  • Environment discovery and PATH injection for command execution

SSH Enhancements

  • Port Forwarding - Local port forwarding (-L) with full configuration UI
  • In-app Key Generation - Generate Ed25519 keys directly with public key export
  • SSH URL Deep Links - Connect via ssh://user@host:port URLs
  • Connection Health Monitoring - Real-time RTT and packet loss tracking with time series chart
  • Full (optional) iCloud Keychain sync support for SSH keys

Native SCP Command in iOS Local Shell

  • Built-in scp command using SFTP backend
  • Tab completion and ghost text hints for paths
  • Tilde (~) expansion in remote paths

Solar Background Effects

  • Moon Visualization - Astronomically accurate moon with phase-aware halo
  • Bird Migrations - Species-specific bird flocks with anatomically distinct silhouettes
  • Star Twinkling - Dynamic star animation with improved realism
  • Ocean enhancements: wind-coherent waves, subsurface scattering, sparkles, textured foam

UI Improvements

  • Right-click/long-press context menu throughout the app
  • Per-point coloring in health time series charts
  • Glassmorphism tab bar fallback for pre-iOS 26
  • Hardware keyboard auto-focus improvements

Platform Fixes

  • Fixed macOS drag/drop and paste for file URLs
  • Fixed mouse cursor leaking beyond terminal view on macOS
  • Fixed visionOS UIScreen unavailability in EffectManager
  • IPv4 forcing for CGNAT addresses to fix VPN connection issues

Version 1.0.2-2

December 8, 2025

New Features

  • Added word navigation bindings to Cmd-arrow keys and moved split navigation to Cmd-Option-arrow
  • Added internal SSH client (ssh user@host) in iOS local shell
  • Added realistic ocean wave simulation below horizon with Metal shader for solar background
  • Added Starship-style prompt with theme selection and visual previews for iOS local shell
  • Added swipe gestures for dual-text symbol keys on virtual keyboard
  • Added OpenType font features for ligatures and stylistic sets
  • Added Sparkle auto-update for Mac Standalone builds
  • Added ASCII art animations for SSH connection failures
  • Added theme browser redesign with terminal previews
  • Added tab wiggle animation on bell events
  • Added TLS/HTTPS support for curl in iOS local shell
  • Added dynamic tab titles for local shell sessions
  • Added desktop notification support (OSC 9/777)
  • Added setting to toggle sun hotspot visibility in solar background
  • Added latest 9.1 vim editor with syntax highlighting support to iOS local shell
  • Added joe text editor to iOS local shell
  • Added jq JSON processor to iOS local shell

Bug Fixes

  • Fixed terminal responses not forwarding to running commands
  • Fixed menu actions not routing correctly in multi-window mode
  • Fixed SSH double error animation and improved failure visibility
  • Fixed keyboard height detection when hardware keyboard connected
  • Fixed Ctrl+C handling for embedded SSH and interactive programs
  • Fixed backspace not visually removing characters in Starship prompt
  • Fixed iOS local shell multi-line paste by auto-confirming unsafe pastes
  • Fixed SSH connection timeouts for host key approval
  • Fixed keyboard focus restoration after auth failure reconnection
  • Fixed horizon glow synchronization with sun visibility

Version 1.0.2

December 3, 2025

  • Menus on macOS and iPad now reflect actual available shortcuts
  • New mDNS local network discovery of SSH servers
  • New browse mode (Cmd + B)
  • Flipped shortcuts: Cmd + T is now local shell, Cmd + S is SSH/console/k8s
  • iOS tabs dynamically share colors with selected theme like macOS build
  • Tab title race condition bug fix

Version 1.0.0

December 1, 2025

  • Initial release