A free, Metal-accelerated terminal emulator for iPhone, iPad, Vision Pro, and Mac.
Website · TestFlight Beta · macOS Download
rootshell is a terminal emulator built for Apple platforms. It features GPU-accelerated rendering powered by libghostty, native SSH with jump host support, Secure Enclave key storage, cloud provider integration (AWS, Azure, Linode, DigitalOcean), Kubernetes node debugging, and Rootshell Roam — a mosh-compatible and tssh (QUIC+KCP) mobile terminal protocol with seamless network roaming and session persistence.
For full feature details, screenshots, and documentation, visit beta.rootshell.com.
This repository serves as the public issue tracker for rootshell. Use it to:
- Report bugs
- Request features
- Ask questions about functionality
Before opening an issue, please:
- Check existing issues to avoid duplicates
- Update to the latest version via TestFlight or the macOS download
- Include relevant details when reporting bugs:
- App version (Settings → About)
- Device and OS version
- Steps to reproduce
- Expected vs actual behavior
- Any error messages or screenshots
- Bug Report - Something isn't working correctly
- Feature Request - Suggest a new feature or improvement
- Question - General questions about usage
rootshell is completely free with no ads, subscriptions, or in-app purchases.
| Platform | Link |
|---|---|
| iOS, iPadOS, visionOS, macOS (sandboxed) | TestFlight |
| macOS (standalone) | Direct Download |
- Metal Accelerated - GPU-accelerated rendering powered by libghostty with buttery smooth scrolling
- 450+ Themes - Curated color themes with live preview, favorites, and per-tab overrides
- Day/Night Themes - Automatic theme switching based on sunrise/sunset at your location
- Tabs & Splits - Resizable split windows within tabs with session persistence
- Session Restoration - Tabs, splits, themes, and connections restore automatically on launch
- Nerd Fonts - Multiple monospace Nerd Fonts built-in with full icon support
- Custom Shaders - Import shaders directly from Shadertoy with full uniform support
- Cursor Effects - Warp, Sweep, Tail, and Blaze cursor animations
- Background Effects - Solar (real-time sun tracking), Starfield, Fireflies, Aurora, Nebula
- Video Backgrounds - Play looping video files as terminal backgrounds with speed control
- Window Transparency - Configurable transparency with blur (macOS)
- Native SSH Client - Written entirely in Swift with no external dependencies
- Jump Hosts - Multi-hop connections through bastion servers
- SSH Agent Forwarding - Three approval modes: auto-approve, per-session, per-request
- Secure Enclave Keys - Ed25519, ECDSA, and RSA keys with biometric protection
- Port Forwarding - Local (
-L) and remote (-R) TCP forwarding - Auto-start tmux - Automatically attach to or create tmux sessions on connect
- Tailscale Integration - Device discovery and SSH to your tailnet with no-auth support
- Host Shorthand (HSS) - Pattern-based hostname expansion with YAML configuration
- YubiKey PIV - SSH authentication with hardware-bound private keys via Lightning, NFC, or USB-C. Supports RSA, ECDSA, and Ed25519 (firmware 5.7+) with key generation directly on device
- FIDO2 Security Keys - Any FIDO2-compatible key (YubiKey 5, SoloKeys, etc.) for touch-to-sign SSH authentication using
webauthn-sk-ecdsa-sha2-nistp256@openssh.com - Key Import - Import existing SSH private keys to YubiKey PIV slots with optional keychain deletion
- Smart PIN Caching - Wired connections cache for the session; NFC connections cache across taps with session batching for multi-tab signing
- iCloud Sync - YubiKey references and FIDO2 credential metadata sync across devices; private keys never leave hardware
- Mosh-Compatible Protocol - Native mosh-compatible implementation built entirely in Swift with SSP (State Synchronization Protocol) support. Works with any standard mosh-server installation
- tssh/trzsz Support - tssh connections with UDP-based terminal transport offering full native scrollback and lower interactive latency than mosh
- QUIC + KCP Transports - Choose between QUIC (TLS 1.3, modern congestion control) or KCP (AES-GCM-256) for tssh transport. Configure in Settings → Roam → Transport Mode
- Session Resumption - Roam sessions survive app termination and device reboots. Credentials are stored in the Keychain and sessions resume automatically. tsshd reconnect support requires our upstream PR (fork)
- Seamless Network Roaming - Switch between WiFi and cellular without dropping your session. Handles IP address changes, network transitions, and temporary connectivity loss with a status banner
- STUN Firewall Traversal - Automatic NAT hole-punching via STUN to enable connections through stateful firewalls without VPN tunnels
- Predictive Local Echo - Keystroke predictions displayed immediately while waiting for server confirmation, making typing responsive on high-latency connections
- Hardware-Accelerated Crypto - Apple hardware-accelerated AES with key state caching for OCB encryption/decryption
- Cloud Providers - AWS, Azure, Linode, DigitalOcean, Tailscale with OAuth authentication
- Serial Console - Direct access to Linode LISH and AWS EC2 serial consoles
- Kubernetes - Cluster browsing, node debugging via debug pods, EKS kubeconfig generation
- Connection Profiles - Save connections with tags, folders, and iCloud sync
- AI Agent - Built-in assistant accessible via ⌘I in SSH sessions
- Providers: Anthropic Claude, OpenAI, Google Gemini, OpenRouter
- Web search and page fetch tools
- Thinking model support with extended reasoning
- MCP Server - Connect external AI tools to execute SSH commands and access cloud resources
- Terminal Mouse Support - Full mouse event passthrough for tmux, vim, zellij
- Keyboard Shortcuts - Fully customizable keybindings with menu bar integration
- Touch Selection - Single-finger drag to select, two-finger to scroll
- Virtual Keyboard - Tab key toolbar with double-tap for literal tab
- iCloud Sync - Connection history, known hosts, and profiles sync across devices
- Local Shell - Full terminal sessions on iOS and macOS
rootshell collects no analytics or crash data unless otherwise part of the TestFlight platform itself.