Support
Getting Started
Welcome to rootshell! Here are some quick tips to help you get started with your new terminal emulator.
Local Shell
rootshell includes a built-in local shell that works offline. On macOS, you get
full access to your local system shell with all installed utilities and your
standard environment. On iOS, the local shell provides a curated set of
pre-bundled Unix utilities including ls, cd, pwd,
cat, grep, curl, ping,
dig, awk, and more—perfect for file management,
scripting, and network diagnostics.
SSH Connections
To connect to a remote server via SSH, enter your connection details including
host, port (default 22), and username. rootshell supports both password and
SSH key authentication. For complex network setups, you can configure jump hosts
(bastion servers) to proxy your connection through intermediate servers.
Local network hosts using .local addresses are automatically
resolved via mDNS.
Tabs & Splits
Open multiple terminal sessions using tabs (Cmd + S) and close them with Cmd + W. Split your current terminal horizontally with Cmd + D or vertically with Cmd + Shift + D. Navigate between splits using Cmd + Option + Arrow keys.
Quick Connect
The quick connect field at the top provides fast access to your servers.
Start typing to see autocomplete suggestions from your connection history
and configured cloud instances. Host Shorthand patterns (HSS) are also
expanded automatically, letting you connect with shortcuts like prod1
instead of typing full hostnames.
The Tab key is your friend—use it to accept autocomplete suggestions quickly. On iOS and iPad without a hardware keyboard, you'll find the Tab key in the keyboard toolbar above the virtual keyboard.
For more on profiles, suggestion sources, and matching modes, see Profiles & Quick Connect below.
Report an Issue
Found a bug or have a feature request? We track issues on GitHub.
Frequently Asked Questions
How do I manage SSH keys?
SSH keys are stored securely in the iOS Keychain. rootshell supports Ed25519, ECDSA, and RSA key formats. You can import keys from PEM or OpenSSH format files, or generate new keys within the app. For added security, enable biometric protection to require Face ID or Touch ID either once per session or for every signing operation.
Which cloud providers are supported?
rootshell integrates with AWS, Azure, DigitalOcean, and Linode. Connect your accounts using API tokens or OAuth authentication. Once configured, your cloud instances appear in quick connect suggestions, and you can generate kubeconfig files for managed Kubernetes clusters (EKS, AKS, DOKS).
Console access varies by provider. For Linode, rootshell establishes a secure WebSocket connection directly to your Linode's console (LISH). For AWS EC2, rootshell generates an ephemeral SSH key pair, pushes the public key to the instance via EC2 Instance Connect, and then establishes an SSH session—the temporary key is discarded after use.
How do I access Kubernetes nodes?
Import your kubeconfig file in Settings to browse your clusters and nodes. To get shell access to a node, rootshell creates an ephemeral debug pod scheduled on that specific node. The pod runs a privileged container with host namespace access, giving you a shell into the node's environment. When you disconnect, the debug pod is automatically deleted.
If the app is terminated unexpectedly before cleanup, orphaned debug pods may remain in your cluster. rootshell detects these orphans on next launch and offers to clean them up, so you don't accumulate stale pods over time.
How do I customize the appearance?
rootshell includes over 450 bundled themes from the Ghostty project. Browse and switch themes in Settings with live preview. You can also customize your font family and size, and choose between Light, Dark, or Auto appearance modes that follow your system settings.
Profiles & Quick Connect
Profiles are saved connection templates that store everything needed to reach a server in one click. Quick Connect is the unified search field at the top of the app that brings profiles, history, cloud instances, and local network devices together in a single list of suggestions.
Connection Profiles
A profile stores a name, host, port, username, and authentication method (password or SSH key). You can also configure optional extras:
- Jump hosts (bastion servers)
- SSH agent forwarding
- Port forwarding rules
- Automatic tmux attach
- A launch command to run on connect
Profiles sync across your devices via iCloud.
Organizing Profiles
- Folders — hierarchical grouping (e.g., Work / Production)
- Tags — cross-cutting labels that span folders
- Color tags — visual color coding for at-a-glance identification
- Icons — custom SF Symbols per profile
Browse all profiles with Cmd + Shift + P.
Quick Connect
The Quick Connect field aggregates suggestions from four sources, shown in priority order:
| Source | Description |
|---|---|
| Profiles | Saved profiles, sorted by frequency of use |
| History | Previous connections, sorted by most recent |
| Cloud | Instances from connected cloud providers (AWS, Azure, DigitalOcean, Linode) |
| Local Network | Devices discovered via Bonjour/mDNS on your local network |
Suggestions are deduplicated and capped at 15 results.
Autocomplete & Matching
- Tab inserts the current suggestion
- Default: prefix matching — type the beginning of a name or host
- Double-tap Tab or Shift + Tab: switch to substring matching (matches anywhere in the name or host)
- HSS patterns are also expanded — see Host Shorthand below
- On iOS/iPadOS without a hardware keyboard, Tab is in the keyboard toolbar
Connection Protocols
- SSH — standard secure shell, supports all features (agent forwarding, jump hosts, port forwards)
- Mosh — UDP-based, survives network changes and app suspension, ideal for mobile
- Trzsz — QUIC and KCP-based transport, resilient connections over unreliable networks
Set the protocol per-profile in the profile editor.
Siri & Shortcuts
rootshell integrates with the Shortcuts app and Siri, so you can launch connections from automations, the home screen, or by voice.
Open Connection Profile
The Open Connection Profile action connects to any saved profile. It appears in the Shortcuts app under rootshell's actions and accepts the following parameters:
| Parameter | Description |
|---|---|
| Profile | The saved connection profile to open (required) |
| Directory | Working directory to cd into after connecting |
| Command | Command to run after connecting |
| Execute in Shell | When disabled, uses exec to replace the shell with the command (default: on) |
The profile picker in Shortcuts includes search and suggestions, so you can find profiles by name or hostname.
Siri
You can also connect by voice. Siri recognizes phrases like "Open [profile name] in rootshell" and "Connect to [profile name] with rootshell".
Host Shorthand (HSS)
Host Shorthand lets you create quick aliases for your servers using pattern matching. Configure shortcuts in YAML format and store them in the app's Documents directory.
Configuration Example
Create a YAML file with patterns that expand short names to full hostnames:
patterns:
- short: "^prod(\\d+)$"
long: "prod#{1}.example.com"
note: "Production servers"
- short: "^dev$"
long: "dev.internal.example.com"
note: "Development server"
With this configuration, typing prod1 in quick connect expands to
prod1.example.com. Capture groups from the regex pattern are available
as #{1}, #{2}, etc. in the expansion template.
SSH Agent Forwarding
rootshell supports SSH agent forwarding, allowing you to use your local SSH keys on remote servers without copying private keys. Configure agent forwarding on a per-connection basis in the connection settings.
Approval Modes
Choose how rootshell handles agent signing requests:
- Auto-approve: All signing requests are automatically approved
- Per-session: Approve each key once per terminal session
- Per-request: Prompt for approval on every signing request
You can also restrict which keys are available for forwarding, selecting specific keys instead of exposing your entire keychain to the remote server.
Location Diary
iOS suspends background apps after a short period, which drops TCP-based connections like SSH, Kubernetes, and Cloud Console sessions. Location Diary uses iOS location services to keep rootshell active in the background, preserving your sessions while you switch between apps.
Resilient transports like Mosh and Trzsz use UDP state-sync that survives app suspension and network changes—they don't need Location Diary at all.
Modes
- Off — Location tracking disabled. Background sessions may disconnect when the app is suspended.
- Session Only — Manually enabled; stays active until you turn it off or close the app. Not remembered across app restarts.
- Auto During Active Sessions (recommended) — Automatically enables when you have SSH, Kubernetes, or Cloud Console sessions. Automatically pauses when all those sessions end. Remembered across restarts.
Which Sessions Need It
- Needs Location Diary: SSH, Kubernetes, Cloud Console, SSH started from local shell — these use TCP connections that the OS will close when the app is suspended.
- Doesn't need it: Mosh, Trzsz — their UDP state-sync protocol survives network changes and app suspension. Local shell also doesn't need it.
Privacy: Location entries are automatically pruned after 5 minutes.
Touch Gestures
rootshell supports two touch interaction modes, toggled in Settings → Terminal.
Scroll Mode (default)
| Gesture | Action |
|---|---|
| Single finger drag | Scrolls through terminal output |
| Long press (~0.5s) | Starts text selection |
| Two-finger tap | Opens context menu (copy, paste, split, find, settings, theme) |
| Two-finger long press | Opens new connection sheet |
| Pinch in/out | Decrease/increase font size (shows columns × rows overlay with reset) |
| Swipe left/right | Switch between tabs |
Legacy Mode
| Gesture | Action |
|---|---|
| Single finger drag | Selects text |
| Two-finger drag | Scrolls through terminal output |
| Long press | Opens context menu (copy, paste, etc.) |
Mouse capture apps (tmux, vim): In Scroll Mode, single-finger pan sends scroll events to the running application, and long press acts as mouse click-and-drag.
Mod-Tap
Mod-Tap lets a single key perform different actions depending on whether it's tapped quickly or held down. The classic example: Caps Lock sends Escape on tap, acts as Control on hold.
Presets
- Caps Lock → Escape / Control — Tap sends Escape, hold acts as Control.
- Escape → Escape / Control — For users who already remapped Caps Lock to Escape at the OS level.
Custom Rules
- Source keys: any modifier key, letter, digit, or symbol
- Tap actions: Escape, Backspace, Return, Tab, Space, Delete, arrow keys, Home/End/Page Up/Down, or a custom text sequence
- Hold modifiers: Control, Alt, Shift, or Command
- Hold threshold: adjustable from 150ms to 300ms (default 200ms)
Caps Lock LED note: The keyboard LED still toggles when Caps Lock is pressed. To avoid this, remap Caps Lock to Escape in iOS Settings → Keyboard → Hardware Keyboard → Modifier Keys, then create a mod-tap rule for Escape instead.
Keyboard Shortcuts
rootshell supports extensive keyboard shortcuts when using an external keyboard:
Clipboard
| Action | Shortcut |
|---|---|
| Copy | Cmd + C |
| Paste | Cmd + V |
Tabs & Windows
| Action | Shortcut |
|---|---|
| New Tab | Cmd + S |
| New Window | Cmd + N |
| New Local Shell | Cmd + T |
| Duplicate Tab with SSH | Cmd + Shift + R |
| Previous Tab | Cmd + { |
| Next Tab | Cmd + } |
| Switch to Tab 1-9 | Cmd + 1 - 9 |
Split Windows
| Action | Shortcut |
|---|---|
| Split Right | Cmd + D |
| Split Down | Cmd + Shift + D |
| Close Split | Cmd + W |
| Focus Split Left | Cmd + Option + Left Arrow |
| Focus Split Right | Cmd + Option + Right Arrow |
| Focus Split Up | Cmd + Option + Up Arrow |
| Focus Split Down | Cmd + Option + Down Arrow |
| Toggle Split Zoom | Cmd + Shift + Enter |
| Equalize Splits | Cmd + Shift + E |
View & Display
| Action | Shortcut |
|---|---|
| Toggle Tab Bar | Cmd + Shift + B |
| Toggle Tab Switcher | Cmd + Shift + \ |
| Toggle Theme Picker | Cmd + Shift + T |
| Toggle Background Effect | Cmd + Shift + L |
| Toggle Compose | Cmd + Shift + K |
| Toggle Full Screen | Cmd + Shift + F |
| Toggle Transparency | Cmd + Shift + O (Mac only) |
Terminal
| Action | Shortcut |
|---|---|
| Find | Cmd + F |
| Select All | Cmd + A |
| Clear Screen | Cmd + K |
| Browse Hosts | Cmd + B |
| Browse Profiles | Cmd + Shift + P |
| Toggle AI Agent | Cmd + I |
| Increase Font Size | Cmd + + |
| Decrease Font Size | Cmd + - |
| Reset Font Size | Cmd + 0 |
| Scroll to Top | Cmd + Home |
| Scroll to Bottom | Cmd + End |
| Scroll Page Up | Page Up |
| Scroll Page Down | Page Down |
| Settings | Cmd + , |