The remote-first
agent orchestrator

Connect to remote servers over SSH or work on your local Mac. Organize projects into workspaces. Split terminals, run services, browse files, view diffs — all from a single native app. Start on your Mac, pick up on your iPhone or iPad.

Requires macOS 15+. Auto-updates via Sparkle.
Or install with Homebrew: brew install --cask bryantebeek/tap/pane
Pane running on macOS

Persistent tmux sessions

Every tab is its own tmux session on the server. Close the app, reopen it tomorrow, switch to your phone — your terminals are exactly where you left them. Rendered with Ghostty's GPU-accelerated Metal engine for full xterm-256color, ligatures, and true color.

  • Sessions survive app restarts, disconnects, and device switches
  • Horizontal and vertical splits with draggable dividers
  • No tmux config required — Pane manages sessions automatically
Terminal — dev.example.com
pane@dev:~/acme$ git log --oneline -3 a1b2c3d feat: add dashboard API e4f5g6h fix: session timeout i7j8k9l refactor: auth middleware pane@dev:~/acme$ _
pane@dev:~/acme$ npm run dev > acme@2.1.0 dev > next dev --turbopack Next.js 15.3 (Turbopack) - Local: http://localhost:3000 Ready in 1.2s

Project workspaces

Organize your servers into projects and workspaces. Each workspace maps to a git branch — creating a branch workspace automatically creates a git worktree on the server. Your full layout syncs across every connected device.

  • Server → Project → Workspace → Tabs hierarchy
  • Branch workspaces create git worktrees automatically
  • Layout syncs across Mac and iPhone in real time

Your CLI, your tools

Pane gives you a terminal. Run any agent CLI you want — Claude Code, Codex CLI, Gemini CLI, Cursor CLI, Amp Code, Aider, OpenCode, or anything else. These are standard command-line programs that run on your server with your own account and subscription. Pane doesn't wrap, intercept, or proxy anything.

What Pane adds on top:

  • Attention detection — when an agent emits a notification, Pane shows an orange pulse in the sidebar so you know it needs input
  • Auto-generated tab titles — agent tabs get named from their conversation context so you can tell them apart
  • Status indicators — see at a glance whether an agent is working, waiting, or done
Claude Code — acme-app
You Add a health check endpoint to the API
Claude I'll add a /health endpoint that checks the database connection and returns the service status.
+ src/routes/health.ts +24
~ src/index.ts +2 -0
+ tests/health.test.ts +18
Waiting for input

Services

Define your dev servers, workers, and log tailers in a pane.json file at the root of your project. Pane starts them as background tmux sessions on the server and monitors their health. Start, stop, and restart from the sidebar.

  • Declare services once, run them everywhere
  • Health checks via URL probes with configurable intervals
  • Open service URLs in the built-in remote browser
pane.json
{
  "name": "acme-app",
  "services": [
    {
      "name": "Next.js",
      "command": "npm run dev",
      "url": "http://localhost:3000",
      "healthCheck": {
        "path": "/api/health",
        "interval": 5
      }
    },
    {
      "name": "Stripe webhook",
      "command": "stripe listen --forward-to localhost:3000/api/webhook"
    }
  ]
}

Remote browser

Browse localhost URLs running on your server without setting up port forwarding. Pane routes all traffic through a SOCKS proxy over your SSH connection — the built-in browser sees what the server sees.

  • No port forwarding, no tunnels, no extra config
  • Access internal URLs and services behind the firewall
  • Open service URLs directly from the sidebar
Your Mac Pane app
SSH
Server SOCKS proxy
localhost
Your app :3000, :8080, ...

Connect any way you work

Pane connects over SSH to any server, VM, or container with an SSH daemon. There's no agent to install, no cloud account, no telemetry. Pane drops a small Rust proxy onto your server the first time you connect — everything else stays in standard SSH.

If you don't have a remote server, point Pane at your own Mac:

  • Local Mac — run Pane against the same machine for a fully native, zero-config workspace
  • Mac via Tailscale — turn on Settings → General → Sharing → Remote Login and connect over your Tailnet from your iPhone or iPad anywhere in the world
  • Any SSH host — cloud VMs, home servers, dev boxes, Raspberry Pis — if you can ssh in, Pane works
iPhone / iPad Pane app
Tailscale
Your Mac Remote Login on

Full terminal on iPhone & iPad

The same Ghostty engine and tmux sessions, on iPhone and iPad. Open a terminal on your Mac, pick it up on your phone or tablet. Speech-to-text input, a file browser, and the same project workspace layout you set up on desktop.

  • Native iPhone and iPad apps with the same Ghostty engine as macOS
  • Speech input for hands-free terminal commands
  • File browser with syntax-highlighted viewer
  • Git diff viewer with unified diff display
Pane on iPhone — server and project sidebar
Pane on iPhone — Claude Code agent session

Read the docs

Install Pane, configure your projects, learn the shortcuts, and follow what's new in each release.

Open documentation →