Back to Blog

Mobile DevOps: Managing SSH Sessions from Your iPhone

Connect to remote servers, browse file systems, and run Claude Code on cloud VMs -- all from your pocket with CodeSail's SSH integration.

Why SSH from Your Phone?

Modern development does not happen on a single machine. Your code might live on an AWS EC2 instance. Your staging environment runs on a DigitalOcean droplet. Your CI pipeline builds on GitHub-hosted runners. When something goes wrong on one of these remote servers, you need access -- fast.

Traditionally, "SSH from mobile" meant cramming a terminal emulator onto a phone screen and fighting with a tiny keyboard to type commands. It worked, but it was painful. You could not see your file tree, you had no syntax highlighting, and running anything beyond a quick ls or tail -f felt like a struggle.

CodeSail takes a different approach. Instead of replicating a terminal on a small screen, it provides a purpose-built mobile interface for the specific tasks you need when managing remote servers: browsing directories, viewing files, monitoring Claude Code sessions, and approving permissions. The result is remote server management that actually works on a phone.

How CodeSail's SSH Feature Works

CodeSail connects to remote servers by running the CodeSail CLI on the remote machine, not by establishing SSH connections directly from your iPhone. Here is the architecture:

  1. Remote server -- you install the CodeSail CLI (npm i -g codesail) and start the daemon on the remote machine
  2. Encrypted relay -- the CLI communicates through the same encrypted relay channel used for local machines
  3. iPhone app -- CodeSail displays the remote sessions with the same interface you use for local development

From the app's perspective, there is no difference between a local session and a remote one. You see the same session list, the same chat interface, the same file browser. The only difference is the machine badge that tells you which server a session is running on.

You can pair multiple servers with a single CodeSail installation. Your local Mac, a staging server, and a production VM can all appear in the same session list on your phone.

Setting Up SSH Connections

Setting up CodeSail on a remote server is nearly identical to the local setup process. The main requirement is that the server has Node.js 18+ installed.

Step 1: SSH into Your Server

From your local machine, connect to the remote server:

ssh user@your-server.example.com

Step 2: Install the CLI

The CodeSail CLI is available on npm:

npm install -g codesail

Step 3: Start the Daemon

codesail start

The daemon runs in the background and persists across terminal sessions. You can verify it is running:

codesail status

Step 4: Pair with Your iPhone

codesail pair

A QR code will appear in your SSH session. Scan it with CodeSail on your iPhone. The pairing is stored persistently, so you only need to do this once per server.

Configuring SSH in the App

CodeSail also includes an SSH settings panel where you can manage your connected servers. In the app, navigate to Settings > SSH to see all paired servers, check their connection status, and manage the directory paths that appear in the file browser.

For detailed configuration options, see the Setup Guide.

Browsing Remote Directories

Once connected, CodeSail's file browser works seamlessly with remote file systems. You can navigate the entire directory tree of your remote server just as you would on a local machine.

The remote file browser supports:

  • Full directory traversal -- navigate from the working directory up to the root if needed
  • Syntax-highlighted file viewing -- open any text file with proper language coloring
  • File metadata -- see file sizes, permissions, and modification dates
  • Quick navigation -- breadcrumb-style path display for fast directory jumping
  • Search -- find files within the current directory tree

This is invaluable when you need to check a configuration file on a remote server, verify a deployment artifact, or review logs -- all without opening a laptop or typing SSH commands on a phone keyboard.

Running Claude Code on Remote Servers

The real power of CodeSail's SSH integration is combining it with Claude Code running on the remote server. Once both the CodeSail CLI and Claude Code are installed on the remote machine, you get the full AI-assisted development experience -- monitored and controlled from your iPhone.

Here is a typical remote Claude Code workflow:

  1. SSH into your server and start a Claude Code session in a project directory
  2. Describe the task to Claude: "Fix the database connection pooling issue in the API server"
  3. Close your laptop and leave -- the session continues on the server
  4. On your iPhone, open CodeSail and watch the session progress
  5. Approve file modifications as Claude proposes them
  6. Send follow-up messages to guide Claude's work
  7. Browse the modified files to verify the changes look correct

This workflow is especially powerful for tasks that involve server-side code that is difficult or impractical to run locally, such as database migrations, infrastructure scripts, or services that depend on the server's environment.

Practical Use Cases

Emergency Server Fixes

Your monitoring alerts fire at 11 PM. A critical API endpoint is timing out. You open CodeSail on your iPhone, start a Claude Code session on the production server, and describe the symptoms. Claude examines the logs, identifies a missing database index, and proposes a migration. You review the SQL, approve the command execution, and the fix is deployed -- all without leaving your couch.

CI/CD Pipeline Debugging

A build is failing on the CI server and your team is blocked. You SSH the CodeSail CLI onto the build machine, pair it with your phone, and ask Claude to investigate the failed build logs. Claude identifies a dependency version conflict and proposes a fix to package.json. You approve the change, push it, and the pipeline goes green.

Server Maintenance on Travel

You are at an airport and need to update an environment variable on your staging server. Open CodeSail, navigate to the server's file browser, check the current .env file, and ask Claude to update the value. One permission approval later, the staging environment is reconfigured.

Multi-Server Monitoring

You manage microservices across several servers. With CodeSail, all servers appear in a single session list. You can quickly check the status of Claude Code sessions running on each machine, approve pending permissions on one server, and browse files on another -- all from the same app, with the same fluid interface.

SSH Security Considerations

When running CodeSail on remote servers, all the standard security properties apply:

  • End-to-end encryption -- the same AES-256-GCM encryption protects remote sessions. The relay server cannot read any data passing between your server and your phone.
  • No open ports required -- the CodeSail daemon initiates an outbound connection to the relay. You do not need to open any inbound ports on your server.
  • Per-server pairing keys -- each server gets its own unique encryption key, generated during the QR code pairing process.
  • Permission granularity -- the same permission system applies. Every file edit and shell command on the remote server requires your explicit approval.

It is worth noting that CodeSail does not bypass your server's existing security. It does not grant any access beyond what the user running the daemon already has. If the daemon runs under a non-root user, Claude Code (and by extension, you through CodeSail) can only access what that user can access.

For production servers, we recommend running the CodeSail daemon under a dedicated service account with appropriate filesystem permissions, and combining it with CodeSail's integration monitoring for a complete mobile DevOps setup.

Your Servers, in Your Pocket

CodeSail brings remote server management to your iPhone. Pair once, monitor forever. All end-to-end encrypted, all one-time purchase.

Download CodeSail — $4.99