# Onepilot > iPhone control surface for the servers you operate. Pair a server by scanning a code, reach it even behind NAT with no VPN or port forwarding, run shell sessions that survive disconnects because they live on the host, watch the coding agents already running on your machines (Claude Code, Codex, OpenCode), open Docker containers like servers, and get alerted when a host degrades. Available on the iOS App Store: https://apps.apple.com/app/id6759485908 ## Docs - [Onepilot homepage](https://onepilotapp.com/): What Onepilot does: pairing, relay connectivity, persistent sessions, the agent session viewer, fleet monitoring and alerts, containers, and git. Users bring their own servers and API keys. - [About](https://onepilotapp.com/about): Background on Onepilot's vision: a framework-agnostic mobile IDE for the AI-native developer, built around SSH-first server access and pluggable agent runtimes. - [Blog index](https://onepilotapp.com/blog): Practical guides and comparisons on running AI coding agents and SSH workflows from iPhone. ## CLI The `onepilot` command line helper runs on the host and is what makes pairing, the relay, persistent sessions, and metrics possible. It installs from npm and supports macOS, Linux, and Windows. - [The Onepilot CLI](https://onepilotapp.com/docs): What the host helper does, why your server needs it, and what it deliberately does not do. - [Install and upgrade](https://onepilotapp.com/docs/install): Install from npm, supported platforms, and `onepilot upgrade`, which hands live terminals over in place so upgrading does not kill running sessions. - [Pairing a server](https://onepilotapp.com/docs/pair): Run `onepilot pair`, scan the printed code with the app, and what the command installs on the host. The pairing key is single use: the app swaps in its own device key on first connect and the printed code stops working. - [Command reference](https://onepilotapp.com/docs/commands): Every command meant to be run by hand, with flags and output. - [Debugging](https://onepilotapp.com/docs/troubleshooting): Log locations, checking the daemon and the tunnel, and what the common errors actually mean. - [Cleanup and uninstall](https://onepilotapp.com/docs/uninstall): Remove pairing keys, unpair a device, stop the tunnel service, uninstall the CLI. - [Getting support](https://onepilotapp.com/docs/support): How to reach a human, what to include, and what never to send. ## Agents - [Personal agent stack on iPhone](https://onepilotapp.com/agents): Canonical explainer of the open-source personal-agent stack: the gateway (OpenClaw) and the self-improving runtime (Hermes) that Onepilot deploys through a wizard, plus the terminal coding agents (Claude Code, Codex, OpenCode) it runs live, on a single host with the iPhone as the supervision surface. - [Run OpenClaw on iPhone](https://onepilotapp.com/agents/openclaw): How to deploy and operate an OpenClaw agent end-to-end from iOS. Onepilot provisions the OpenClaw Gateway on whichever host you pick (Mac mini, Linux box, Windows machine, Raspberry Pi, NAS, or VPS), wires it to 25 LLM providers and a Telegram/Discord/Slack channel, and pairs the iPhone as the chat client. - [OpenClaw setup and keep-alive guide from iPhone](https://onepilotapp.com/agents/openclaw/setup): Evergreen install of OpenClaw on a Linux or macOS host, driven from iPhone: pin Node.js to a working version with nvm, register the gateway as a persistent service, and avoid the three common 2026 traps (Node version mismatch, foreground process death, Telegram privacy mode). - [What is OpenClaw?](https://onepilotapp.com/agents/openclaw/what-is-openclaw): Plain-language explainer of OpenClaw, the open-source AI agent gateway. Covers the Gateway-and-nodes architecture, what you can build, why it is free (bring your own LLM key), and how it differs from Hermes (runtime) and Claude Code (coding agent). Onepilot deploys the Gateway over SSH and makes the iPhone the control surface. - [OpenClaw skills and plugins](https://onepilotapp.com/agents/openclaw/skills): What OpenClaw skills and plugins are and how they differ: plugins add Gateway capabilities (channels, tools), skills teach the agent repeatable tasks. Both live as files in the OpenClaw config directory, so they are auditable. How to read, diff, and schedule them from iPhone over SSH with Onepilot. - [Install OpenClaw on any server](https://onepilotapp.com/agents/openclaw/install): How to install OpenClaw on Linux, macOS, or Windows with no sudo via nvm, plus how to run it in Docker. Onepilot automates the whole install over SSH from iPhone in about two minutes: host, CLI, provider key, channel, and Gateway start. - [Run OpenClaw on a VPS](https://onepilotapp.com/agents/openclaw/vps): Run the OpenClaw Gateway on a small Linux VPS (1 vCPU / 1 GB with a hosted model) so it stays up around the clock. Provider-agnostic sizing, SSH-only security instead of an exposed control panel, and deploy plus supervise from iPhone. - [OpenClaw alternatives](https://onepilotapp.com/agents/openclaw/alternatives): The real alternatives to OpenClaw by need: Hermes (runtime), Clawket (mobile client), Claude Code and OpenCode (coding agents). Which to pick, how they stack rather than compete, and how to run any of them on one host from iPhone. - [OpenClaw vs Hermes](https://onepilotapp.com/agents/openclaw/vs-hermes): OpenClaw is a gateway, Hermes is a self-improving runtime: different layers, not rivals. When to pick each, why many run both on one host, and how Onepilot deploys either or both over SSH. - [OpenClaw vs Claude Code](https://onepilotapp.com/agents/openclaw/vs-claude-code): OpenClaw is an agent gateway for a persistent chat-routed agent; Claude Code is a terminal coding agent for hands-on work in a codebase. What each is for and how to run both on one host from iPhone. - [Run Hermes Agent on iPhone](https://onepilotapp.com/agents/hermes): How to run NousResearch's Hermes Agent from iPhone despite iOS not being on the official platform list (Linux/macOS/WSL2/Termux only). Onepilot deploys Hermes to any Linux or macOS host you SSH into (hardware you already own or a rented VPS) and drives it from iOS via SSH and chat channels. - [Manage Hermes skills from iPhone in one touch](https://onepilotapp.com/agents/hermes/skills): Daily 30-second skill triage flow for the Hermes self-improving skills system: promote, demote, lock, delete, or rollback any auto-generated skill file from iPhone. Addresses the documented Hermes self-eval over-confidence and manual-edit overwrite problems. - [The Hermes Agent app](https://onepilotapp.com/agents/hermes/app): There is no official Hermes app; Onepilot deploys Hermes over SSH and wraps it with a real terminal, file browser, git, and cron (not just a chat box) and runs OpenClaw, Claude Code, and Codex too. - [Hermes WebUI vs a native app](https://onepilotapp.com/agents/hermes/web-ui): How Onepilot reaches Hermes over a real SSH tunnel instead of a self-hosted browser WebUI: no web service to expose or secure, configures the channel in-app, and gives you the host itself. - [Run Hermes on iPad](https://onepilotapp.com/agents/hermes/ipad): The same deploy as iPhone with a bigger control surface for the terminal, file browser, git, and reviewing the skill files Hermes writes. - [Run Hermes on a Raspberry Pi](https://onepilotapp.com/agents/hermes/raspberry-pi): Run Hermes 24/7 on a Pi 4/5 with a hosted model and supervise from iPhone: RAM guidance, headless setup, ARM install notes, deploy over SSH. - [Run Hermes on a Mac mini](https://onepilotapp.com/agents/hermes/mac-mini): Use a Mac mini as an always-on Hermes host: Apple Silicon RAM/model sizing, local Ollama option, SSH access, driven from iPhone. - [Run Hermes on a VPS](https://onepilotapp.com/agents/hermes/vps): Run Hermes on a Linux VPS reachable from anywhere: modest sizing (1 vCPU/1GB with a hosted model), SSH-only security, deploy from iPhone. - [Switching from OpenClaw to Hermes](https://onepilotapp.com/agents/hermes/from-openclaw): Run OpenClaw and Hermes in one app over the same SSH layer and migrate gradually instead of a hard cutover; they are peer frameworks, not drop-in replacements. - [Onepilot vs Clawket](https://onepilotapp.com/agents/hermes/vs-clawket): How Onepilot (deploys the agent + full SSH cockpit + multi-framework) compares to the Clawket companion chat client for OpenClaw and Hermes. - [The cheapest way to run Hermes](https://onepilotapp.com/agents/hermes/cost): The cost of running Hermes broken down: owned hardware or a free-tier host plus a free/local model (Ollama, DeepSeek), driven from iPhone. Hermes is open source; the only real variable is model tokens. ## Integrations - [Agent channel integrations](https://onepilotapp.com/integrations): Configure the external channel your OpenClaw or Hermes agent answers on (Telegram, Discord, or Slack) in the Onepilot app, with the SSH cockpit (terminal, files, git, cron) on top. The channel layer is identical across frameworks. - [Run your agent on Telegram](https://onepilotapp.com/integrations/telegram): Configure a Telegram bot for OpenClaw or Hermes in-app: BotFather token, numeric user-ID gating, voice-memo transcription, group @mention. - [Run your agent on Discord](https://onepilotapp.com/integrations/discord): Configure a Discord bot for OpenClaw or Hermes in-app: bot token and intents, per-channel scoping, threads. - [Run your agent on Slack](https://onepilotapp.com/integrations/slack): Configure a Slack app for OpenClaw or Hermes in-app: OAuth install to a workspace, DMs or channels. ## Skills - [Agent skills for OpenClaw & Hermes](https://onepilotapp.com/skills): Index of installable agent skills, each explained for OpenClaw vs Hermes and how to drive it from iPhone: what the skill does, how it differs between the two frameworks, and how to manage it in the Onepilot app. - [Obsidian for OpenClaw & Hermes](https://onepilotapp.com/skills/obsidian): Turn an Obsidian vault into a read-write knowledge base your agent can search, update, and build on. How the Obsidian skill works on OpenClaw vs Hermes, and how to drive it from your phone. - [GitHub for OpenClaw & Hermes](https://onepilotapp.com/skills/github): Let your agent open pull requests, triage issues, and manage repositories. How the GitHub skill works on OpenClaw vs Hermes, and how to drive it from your phone. - [Persistent Memory for OpenClaw & Hermes](https://onepilotapp.com/skills/memory): Give your agent memory that survives between sessions (installable stack on OpenClaw vs native learning loop on Hermes) and how to manage it from your phone. - [Self-Improving Agent for OpenClaw & Hermes](https://onepilotapp.com/skills/self-improving): Let your agent write and refine its own skills from experience (an installable skill on OpenClaw vs a built-in learning loop on Hermes) and how to run it from your phone. - [Skill Security & Vetting for OpenClaw & Hermes](https://onepilotapp.com/skills/skill-security): Vet skills before they run (skill-vetter and SkillScan on OpenClaw, threat-scanned hubs on Hermes) and how to keep approval on your phone. ## Blog - [SSH Permission denied (publickey)](https://onepilotapp.com/blog/ssh-permission-denied-publickey): The eight causes in the order worth checking: wrong username, StrictModes permissions on the home directory and ~/.ssh, key missing from authorized_keys, key never offered by the client, ssh-rsa/SHA-1 disabled on OpenSSH 8.8+, an empty agent, and SELinux context. How to split client-side from server-side causes by reading `ssh -vvv` for "Offering public key", and how to recover from a lockout via a serial or rescue console. - [SSH connection refused, and the three errors it is not](https://onepilotapp.com/blog/ssh-connection-refused): Connection refused (a TCP reset, so the host is up and you should look at sshd, its port, and the firewall), connection timed out (nothing answered, so look at the path and NAT), no route to host (network layer), and could not resolve hostname (DNS). Includes the cloud-provider firewall that does not appear in `ufw status`, and checking ListenAddress with `ss -tlnp`. - [How to SSH into a machine behind NAT without port forwarding](https://onepilotapp.com/blog/ssh-without-port-forwarding): The four ways to reach a machine that has no public address, compared: port forwarding, a mesh VPN such as Tailscale or WireGuard, a reverse SSH tunnel to a VPS you own, and an outbound relay. Why port forwarding fails under CGNAT and how to tell if you are behind it, plus what each option costs in setup and in trust. - [Why your SSH session keeps disconnecting](https://onepilotapp.com/blog/ssh-session-keeps-disconnecting): The four causes of dropped SSH sessions, what `client_loop: send disconnect: broken pipe` actually means (a death discovered late, not caused by your keystroke), how to set ServerAliveInterval correctly, why tmux does not keep the connection alive but makes the drop harmless, and why a phone changing networks cannot be fixed at the connection layer. - [Is there a Portainer mobile app?](https://onepilotapp.com/blog/portainer-mobile-app): No official one exists; the request has been open as Portainer GitHub issue #9524 since 2023. The three real options for managing Docker containers from a phone: the responsive web UI, third-party API clients, and SSH with the docker CLI. Includes getting a shell inside a container with docker exec without installing anything in it. - [Blink Shell vs Termius vs Onepilot (2026)](https://onepilotapp.com/blog/termius-vs-blink-vs-onepilot): Head-to-head comparison of the three iOS SSH options: feature matrix, strengths, weaknesses, and how to pick between them. - [Onepilot vs Termius (2026)](https://onepilotapp.com/blog/onepilot-vs-termius): Termius is a cross-platform SSH client for hand-driven server work; Onepilot deploys, schedules, and supervises AI coding agents on your own servers. Feature matrix, where Termius wins, and when to pick each. - [Onepilot vs Blink Shell (2026)](https://onepilotapp.com/blog/onepilot-vs-blink): Blink is a serious open-source, Mosh-native iOS terminal; Onepilot is the deploy, fleet, and schedule layer around a shell. Feature matrix, where Blink wins, and when to pick each. - [Onepilot vs Secure ShellFish (2026)](https://onepilotapp.com/blog/onepilot-vs-secure-shellfish): Secure ShellFish is a Files-app-integrated SSH/SFTP client; Onepilot is an agent operations app. Feature matrix, where Secure ShellFish wins, and when to pick each. - [Onepilot vs Happy (2026)](https://onepilotapp.com/blog/onepilot-vs-happy): Happy drives Claude Code and Codex from your phone over an encrypted relay; Onepilot adds direct SSH, a real terminal, a fleet dashboard, and cron scheduling. Feature matrix, where Happy wins, and when to pick each. - [Onepilot vs Kittylitter (2026)](https://onepilotapp.com/blog/onepilot-vs-kittylitter): Kittylitter is a free, open-source client that can run Codex on-device; Onepilot deploys and supervises a managed fleet across machines. Feature matrix, where Kittylitter wins, and when to pick each. - [Hermes vs OpenClaw: which AI agent to run in 2026](https://onepilotapp.com/blog/hermes-vs-openclaw): Side-by-side of the two leading open-source 2026 self-hostable agents. Architecture, security posture, community, when to run both. - [How to use Hermes Agent from your iPhone (2026)](https://onepilotapp.com/blog/hermes-agent-iphone-2026): Direct-answer guide. Two concrete paths: SSH into your host and run `hermes --tui`, or Onepilot, the native iPhone app that wraps the same SSH path with a deploy wizard, skill triage, channel hookup, and live logs. Plus the lighter chat-channel alternative via `hermes gateway setup`. - [SSH from iPhone (2026): setup, Mosh, keys, top apps](https://onepilotapp.com/blog/ssh-iphone-guide): Step-by-step iPhone SSH setup, key-based auth, Mosh for resilient sessions, and security best practices for sshd_config. - [Best AI Coding Agents for iPhone (2026)](https://onepilotapp.com/blog/best-ai-coding-agents-iphone): Roundup of Claude Code, Codex CLI, Aider, and SWE-agent: what each runs best, mobile experience notes, and a pick-by-task table. - [Manage AI agents from iPhone: 2026 playbook](https://onepilotapp.com/blog/manage-ai-agents-iphone): Day-to-day playbook for supervising agents on remote servers from iPhone: tmux, monitoring, multi-agent workflows, skill triage, and the iPhone Advantage. - [Run AI coding agents from your iPhone over SSH](https://onepilotapp.com/blog/run-ai-agents-iphone-ssh): The honest setup for driving Claude Code and other agents on a server from a phone: the reachability problem for hosts behind NAT and the two ways to solve it, session persistence with tmux, why the mobile version is fiddlier, and the agent-native alternative. - [How to run Claude Code on iPhone (SSH, tmux, setup)](https://onepilotapp.com/blog/claude-code-iphone): Step-by-step guide to running Claude Code on a remote server from iPhone over SSH; reach the box by public IP, a private network, or an outbound relay, keep it alive with tmux, connect from an iOS terminal, and give it tasks in plain English. ## Key Facts - Product: Onepilot, iOS app for operating remote servers and the AI agents on them. Live on the iOS App Store: https://apps.apple.com/app/id6759485908 - Platform: iOS (iPhone). Hosts can be Linux, macOS, or Windows, plus Docker containers on any of them. - Adding a server: run `onepilot pair` on the host and scan the printed QR code. No hostname, port, username, or key typed on a phone keyboard. Manual SSH entry remains as a fallback. The pairing key is single use and is replaced by the app's own device key on first connect. - Reachability: hosts behind NAT, on home networks, or on a laptop are reachable with no port forwarding, no VPN, and no Tailscale. The host dials out and holds a control connection to Onepilot's relay, which only ever forwards encrypted SSH ciphertext. Set up automatically during pairing, and skipped for hosts that are already directly dialable. A host already on a private network such as Tailscale works too. - Persistent Sessions: shell sessions run in a daemon on the host, not inside the phone's connection. Closing the app, losing signal, or switching from wifi to cellular leaves the session running, and reconnecting replays the missed output. Enabled per server. Unix hosts. - Coding agents you can watch: Claude Code, OpenAI Codex CLI, and OpenCode. Onepilot discovers the sessions already running on a host and renders the transcript with the real session title, working directory, git branch, and last activity, then "Jump in" opens a live terminal in that directory and resumes the session. Claude Code permission prompts can be mirrored to the phone for approval, and a Live Activity keeps a running session on the lock screen. - Agent frameworks you can deploy: OpenClaw and Hermes, both through a setup wizard, each bound to an LLM provider and a Telegram, Discord, or Slack channel. - Docker containers: containers on a paired host appear underneath it and open like any other machine. Nothing is installed inside the container; the app wraps commands in `docker exec` from the host. - Monitoring: per host CPU, load, memory, swap, per mount disk, per interface network, disk I/O, top processes, temperatures, GPUs, SMART drive health, failed services, battery, and pending updates or reboots, plus per container CPU, memory, network, and block I/O. - Alerting: a rule fires once when it breaks, recovery requires clearing the threshold by a margin and staying clear, reminders back off while a condition lasts, and a recovery note arrives at the end. Baselines learn what normal is per host. The logic runs in the host CLI, so your servers do the alerting. - Alerts inbox and webhook: every delivered alert is readable in the app, fleet wide or per host. Each user also gets a webhook token, so any script, cron job, or CI run can turn a `curl` into a push notification. - Git: branch status, changed files, ahead/behind, per file diffs, history, guided commit with amend, push with upstream selection, pull, fetch, branch switch and create, and stash save/apply/drop. Seventeen specific git failure shapes are recognised and explained rather than dumped as raw errors. Works on Windows hosts too. - Dashboard: a tile grid the user arranges (fleet summary, alerts, sessions, per host cards and charts), synced to the account. - Account sync: servers sync to your account and return on any device you sign in on. SSH passwords, private keys, and passphrases are encrypted with AES-GCM on the device before they leave it, under a per user key held in escrow, so a new phone restores access without iCloud Keychain. Every server linked to the account is listed in Settings and can be revoked. - Host CLI: `onepilot`, installed from npm, version 0.16.x. Platforms: macOS arm64 and x64, Linux arm64 and x64, Windows x64. `onepilot upgrade` hands live terminals over in place so upgrading does not kill running sessions. - LLM providers supported: Anthropic, OpenAI, Google Gemini, Mistral, Groq, DeepSeek, xAI, Perplexity, Ollama, and more, plus custom OpenAI-compatible endpoints. - Messaging channels: Telegram, Discord, Slack. - Users bring their own servers and API keys. - Differentiator vs Termius/Blink Shell: those are SSH clients. Onepilot includes the terminal and adds sessions that outlive the connection, reachability for NAT'd hosts, a live view of the coding agents on your machines, per host monitoring and alerts, containers as connection targets, and a git panel. ## Optional - [Privacy policy](https://onepilotapp.com/privacy) - [Terms of service](https://onepilotapp.com/terms) - [RSS feed](https://onepilotapp.com/feed.xml) - [Sitemap](https://onepilotapp.com/sitemap.xml) ## Contact - Website: https://onepilotapp.com - GitHub: https://github.com/sofiane8910 - X / Twitter: https://x.com/elmlabs1