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 + T) 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 + 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.

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.

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.

Keyboard Shortcuts

rootshell supports extensive keyboard shortcuts when using an external keyboard:

Tabs & Windows

Action Shortcut
New Tab Cmd + T
New Window Cmd + N
New Local Shell Cmd + S
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 + Left Arrow
Focus Split Right Cmd + Right Arrow
Focus Split Up Cmd + Up Arrow
Focus Split Down Cmd + Down Arrow
Toggle Split Zoom Cmd + Shift + Z
Equalize Splits Cmd + Shift + E

Terminal

Action Shortcut
Find Cmd + F
Select All Cmd + A
Increase Font Size Cmd + +
Decrease Font Size Cmd + -
Reset Font Size Cmd + 0
Settings Cmd + ,