OPEN-SOURCE HOST AGENT · APACHE-2.0

Manage every machine you own
from your phone.

Open a repo on any of your machines like an IDE — code, git, terminals, Claude and Codex, and your dev server rendered live on the phone. Plus a real terminal, monitoring, and push alerts for every box you own: VPS, Pi, NAS, your Mac.

Install the host agentFree · open source · ~2 min
Then get the app to scan the QR
No SSH keys on the phoneNo inbound portsE2E encrypted · WebRTC paths
Every host, status at a glance
NEW · THE PROJECT SPACE

Your repo, open like an IDE.

Pick a folder on any machine you've paired and it opens as a workspace — code, git, terminals, Claude, and the running dev server, all tabs in one space. Here's one edit moving through all four:

dev-macbookP2P · live
1import { Button } from "./ui";
2
3export function Hero() {
4return (
5<section className="hero">
6<h1>Ship from anywhere.</h1>
7<Button>Get started</Button>
8</section>
9);
10}
main* · +12 −3WebRTC path · E2E
Every tab runs on your own machine — no cloud VMKill the app, switch phones — it picks up right hereNothing exposed to the internet, ever
WHAT IT DOES

Everything you'd open a laptop for.

A real shell, an IDE-style project space with a live dev-server preview, telemetry, and alerts when something needs you — plus your Claude and Codex sessions — for all the machines you already own.

Terminal

A real shell, not a toy.

Full PTY sessions over an encrypted peer-to-peer channel. Run several sessions per host, attach to tmux or screen, and hit Ctrl chords, arrows, and tab-completion from an on-screen key bar built for a terminal, not a notes app.

p2p · pi-cluster · tmux:opsP2P · 12 ms
Terminal · live PTY session
Project space

The whole repo, opened like an IDE.

Open a project folder on any host and get the editor treatment: a file tree, syntax-highlighted editing, git staging and diffs, terminals, agent chats, and a live web preview — all tabs in one space, scoped to that project. Come back tomorrow, on any device, and every tab is exactly where you left it.

dev-macbookmain · 2 staged
App.tsxzsh:5173claude
1export function Hero() {
2return (
3<section className="hero">
4<h1>Ship from anywhere.</h1>
5</section>
6);
7}
main* · +12 −3saved to host
Project space · files, git, terminal — one space
Dev server preview

localhost:5173, in your pocket.

PocketShell finds the dev servers already running on your host — Vite, Next.js, Rails, Django — and opens them in the app over the same encrypted peer-to-peer channel. No ngrok, no tunnels, nothing exposed to the internet. Hot reload included: save the file on your laptop, watch the page update on your phone.

DETECTED ON HOSTscan · 0.4s
:5173Vite
exposed
:3000Next.js
expose
:8000Django
expose
Exposed ports are opt-in, per host
localhost:5173HMR
launchpage · dev
Ship from anywhere.
Get started
[vite] hmr update · /src/App.tsx · 84 ms
Dev server · that edit, live at :5173
Live monitoring

Watch every box breathe.

CPU, RAM, disk, network, load and temperature, all live, with real-time graphs and a sortable process list. Tap a process to see exactly what's eating the machine.

edge-sgp · overview live
CPU · LAST 60s68%
MEM41%
DISK62%
LOAD54%
TEMP71°C
Monitor · overview
Alerts

Paged for the right things.

Set per-host thresholds with cooldowns. Get a push the moment CPU pegs, a disk fills up, or a host goes offline, or when a long-running command (a build, a backup, a coding agent) finishes in one of your terminals.

9:41 · Lock screen
3:14
PocketShell app icon
pi-cluster offline
No heartbeat for 60s. Last seen 03:13.
now
PocketShell app icon
edge-sgp · CPU 98%
Above 90% for 5 min (steal: 41%).
now
PocketShell app icon
backup.sh finished
Exit 0 · 14m22s · home-nas.
now
Alerts · push notification
Multiple hosts

Your whole fleet, one screen.

Every machine you own in a single list with live online / offline status and quick CPU and RAM bars. Open a file browser on any of them to navigate directories, upload, and download.

YOUR HOSTS · 4 3 online
dev-macbookonline
macOS 15
pi-clusteronline
Debian 12
edge-sgponline
Ubuntu 24.04
home-nasoffline
last seen 4h ago
Hosts · fleet list
Coding agents

Claude and Codex, together in one app.

Browse Claude Code and Codex history on every paired host, then resume a session in a real terminal. Claude Remote Control and Codex Remote provide richer first-party control for their own agents; PocketShell combines both agents with arbitrary shell access, files, git, monitoring, alerts, and dev-server preview across your hosts.

A Claude coding agent running inside a terminal session on a host
A list of past Claude and Codex sessions, each resumable in the terminal
Coding agents · Claude & Codex, any host
THE PROBLEM

A machine goes quiet, and you're the last to know.

01 · YOUR SERVERS

A $5 VPS won't tell you when it's drowning.

CPU steal on a noisy neighbor. A runaway process pins the box. A deploy quietly OOMs at 3am. You find out hours later, when a user emails or you happen to SSH in. Nothing was watching.

WITHOUT
03:14 · node OOM-killed
09:40 · you notice. 6h down.
WITH POCKETSHELL
03:14 · push: “pi-cluster offline”
03:15 · you open a shell, restart it
02 · CLAUDE & CODEX

Your Claude and Codex runs are scattered across machines.

A Claude run on the Mac, a Codex job on the VPS, another on the Pi. Claude Remote Control and Codex Remote are strong first-party options for their own agents, but neither is a general terminal, file browser, monitoring dashboard, and alert system for the whole machine.

WITHOUT
2 apps, one per vendor
neither shows the Pi
WITH POCKETSHELL
14:02 · push: “codex run finished”
14:03 · resume it — any agent, any host
03 · REAL WORK

Anything past one command still waits for a laptop.

A shell on the phone gets you a restart. But reading code across files, reviewing what the agent changed, staging a commit, checking the page actually renders — that's vim over SSH on a six-inch screen, so the fix waits until you're back at a desk.

WITHOUT
vim + tmux, squinting at a diff
“I'll do it properly tonight”
WITH POCKETSHELL
open the project space — files, git, terminals, agent
preview :5173 live · hot reload · ship it from the couch

Either way, PocketShell pushes your phone the moment something needs you — and gives you the whole project, not just a shell, to deal with it.

HOW IT COMPARES

One app for the whole machine.

A vendor's app drives that vendor's agent. Termius is a terminal — and to reach a private host it needs a tunnel like Tailscale or Cloudflare on top, plus SSH keys. PocketShell is one app for the whole machine: terminal, connectivity, monitoring, alerts, files, and your Claude and Codex sessions.

CapabilityPocketShellFirst-party agent apps¹Happy (OSS)TermiusTailscale
Project space — file tree, code editor, git, terminals in tabs
Preview your dev server on the phone — run pocketshell expose once, no tunnel service
Real terminal — any shell, tmux, any command
Reaches a private host with no inbound ports or port-forwarding
Claude and Codex together, on any host
Resume a running agent session from your phone
Works with whatever Claude plan you already have
Live host monitoring — CPU, RAM, disk, network
Push alerts — host offline, disk full, CPU pegged
Multi-host fleet dashboard with live health
File browser & transfer across hosts
No vendor relay in the steady-state data path — E2E on P2P/TURN paths
Price for the phone featuresFree · $4.99 ProClaude: eligible plans · Codex: all ChatGPT plans¹Free$10/moFree²

← scroll the table →

Full Limited / one vendor only No

¹ Anthropic Remote Control works with eligible Claude subscriptions; its requirements list Pro, Max, Team, and Enterprise, with Owner enablement on Team and Enterprise and no API-key support. Codex Remote is generally available on all ChatGPT plans for paired Mac and Windows hosts. PocketShell does not include or replace either subscription. ² Tailscale is a connectivity layer, not a terminal — in practice you combine it with Termius plus SSH keys just to reach a private host, and still get no monitoring, alerts or agent view. Happy is a great free agent viewer; it has no terminal, monitoring, alerts or files, and its sync relays through its server (end-to-end encrypted). PocketShell's direct and TURN-relayed WebRTC traffic is end-to-end encrypted with DTLS. Terminal and agent traffic can use a server-readable WSS/TLS fallback while WebRTC is unavailable; file signaling has a documented key-exchange fallback. Each tool is rated from the primary sources linked in the detailed guides.

TRUST & SECURITY

You're putting an agent on your server. Here's exactly what it does.

PocketShell prefers authenticated WebRTC between your phone and host. Direct and TURN-relayed traffic is protected by DTLS end to end, while the backend handles sign-in, pairing, presence, alerts, lightweight metric history, and connection setup. Terminal and agent traffic can use a server-readable WSS/TLS fallback while WebRTC is unavailable, and file signaling has a separate caveat. The host agent is open source so these paths can be verified.

DATA PATHEND-TO-END
YOUR PHONEEd25519 device key
DTLS · WebRTC
encrypted · direct
YOUR HOSTEd25519 host key
PocketShell cloud · coordination + fallback
sign-in · pairing · metrics · WSS fallback

This diagram shows the preferred WebRTC path. When it is unavailable, terminal and agent frames can transit PocketShell over server-readable WSS/TLS; file signaling normally adds an E2E envelope but can fail over to WSS/TLS if key exchange fails.

No inbound ports

The agent makes one outbound connection. Nothing on your machine listens for the internet. No port forwarding, no VPN, no firewall holes.

QR-approved pairing

A phone is trusted only after you scan a QR printed by the host and approve it, gated behind Face ID / Touch ID on the device.

Encrypted WebRTC paths

Direct and TURN-relayed WebRTC traffic is end-to-end encrypted with DTLS. Terminal and agent traffic can use a server-readable WSS/TLS fallback while WebRTC is unavailable; file signaling has a documented key-exchange fallback.

Device-bound keys

Ed25519 keypairs are pinned per device and bind the WebRTC certificate fingerprint. The backend cannot substitute a peer on the signed WebRTC path.

No content archive

PocketShell does not intentionally persist terminal scrollback, agent conversations, or file contents. Some payloads can transit the server-readable fallback paths documented on the security page.

Remove anytime

One command, pocketshell uninstall, removes the agent and its keys. No leftover daemons, no leftover trust.

OPEN SOURCE · APACHE-2.0

Don't take our word for it. Read the code.

The host agent is open source under Apache-2.0. It's the same binary that runs on your machine. Review the install script and the source before you run anything. Build it yourself if you'd rather not trust our release.

SETUP · ~2 MINUTES

Three steps. Two minutes.

01

Install the agent on the host

On any machine you want to reach: your VPS, your Pi, your Mac.

$curl -fsSL https://pocketshell.app/install.sh | bash
or via npm (works on Windows)
$npm i -g pocketshell

It's open source. Review it before you run it:source on GitHub·install.sh

02

Pair the host

The install script shows a QR automatically. Installed via npm? Run this to bring it up.

$pocketshell pair
Scan to pair
waiting for phone…
03

Scan it from the app

Open PocketShell on your phone and point it at the QR. Approve with Face ID and you're paired.

Runs onLinuxmacOSWindowsRaspberry PiNASVPS

PRICING

Free for hobby. Pro when it pays you back.

Start free with up to two hosts. Upgrade when your fleet grows, or buy it outright once and keep it.

GET STARTED
Free
$0/ forever
  • Up to 2 paired hosts
  • 2 saved project spaces
  • 2 active alerts
  • Live stats (no history)
  • Agent sessions from the last 3 days
  • File transfers · 5 MB
Most picked
POCKETSHELL · PRO
Pro
$39.99/ per year
≈ $3.33 / month · save 33%
  • Up to 10 paired hosts
  • Unlimited project spaces
  • Unlimited alerts
  • Full stats history
  • Unlimited agent sessions
  • Host-to-host transfer
  • File transfers · 100 MB
ONE-TIME
Lifetime
$99.99/ once
  • Everything in Pro · forever
  • All future major versions
  • Early-supporter pricing
  • One-time payment

Purchases happen inside the iOS / Android app. Nothing is sold on this page.

FAQ

Questions a careful person asks.

Still unsure? Read the source, or email [email protected].

How is this different from the Claude or Codex mobile apps?

Those apps drive one vendor's agent — Claude's app controls Claude, the ChatGPT app controls Codex. Their updates route through the vendor's service. PocketShell prefers authenticated WebRTC and keeps P2P/TURN traffic end-to-end encrypted; terminal and agent traffic can use a server-readable WSS/TLS fallback while WebRTC is unavailable. PocketShell sits a layer above: a real terminal, live monitoring, and alerts for the whole machine, with your Claude and Codex sessions together in one place, across every host. It's the control panel for the machine, not a remote for one agent.

Do I need an Anthropic or OpenAI subscription? Does PocketShell include one?

PocketShell doesn't include, replace, or resell any AI subscription. It's a window into the Claude Code and Codex CLIs already installed and signed in on your machines — whatever plan you already use (Pro, Max, or an API key) keeps working exactly as it does today. Anthropic Remote Control separately requires an eligible Claude subscription and does not support API-key authentication; Codex Remote is generally available on all ChatGPT plans. Viewing and resuming local history in PocketShell adds no AI plan requirement of its own. And if you don't use coding agents at all, everything else — terminal, monitoring, alerts, files — works with no AI subscription.

How does the coding-agent part work?

Run Claude Code or Codex on your machine as you normally would. PocketShell shows the sessions running on each host, lets you browse past ones, and resumes any of them in a real terminal on your phone. You get a push the moment a run finishes.

Is it secure? What can the backend actually see?

The backend handles sign-in, pairing, WebRTC coordination, presence, alerts, lightweight metric history, and fallback relay. Direct and TURN-relayed WebRTC payloads are end-to-end encrypted with DTLS. Terminal and agent frames can be server-readable on WSS/TLS fallback; file signaling normally adds an E2E envelope but has a documented key-exchange fallback. See the security page for the full data map.

Is the host agent really open source?

Yes, Apache-2.0. The agent you install is the code on GitHub. Read it, audit it, or build it from source yourself.

What if I lose my phone?

A host only trusts devices you've explicitly paired. Revoke the lost device from Settings → Security on another paired phone. New backend-mediated setup is blocked once revocation is committed; an already-open direct channel closes when the host next synchronizes its trust list (five minutes by default). Pairing is also biometric-gated.

Do I need to open ports or run a VPN?

No. The agent makes a single outbound connection. Nothing on your machine listens for inbound traffic, so there's no port forwarding and no VPN to set up.

What exactly is a project space?

A project space is a workspace pinned to one folder on one of your hosts. Inside it you open tabs — files with syntax highlighting, a git panel with staging and diffs, terminals, Claude or Codex sessions, and a live preview of the project's dev server. The layout is saved as you go: kill the app, switch phones, come back a week later, and the same tabs open to the same places. Free accounts get two project spaces; Pro is unlimited.

Doesn't previewing a dev server expose it to the internet?

No. Preview traffic is end-to-end encrypted on the same P2P/TURN paths as the terminal — your dev server keeps listening on localhost, and nothing is published to the internet or routed through a public URL. Each port has to be explicitly allowed on the host, grants made from the phone are temporary (they expire when the agent restarts), and you can revoke any of them at any time.

Does it store my terminal history?

Not on our servers. Terminal contents are never stored by PocketShell, scrollback lives on your own devices.

How do I uninstall the agent?

Run pocketshell uninstall on the host. It removes the agent and its keys, with no leftover daemons or trust.

Which operating systems are supported?

Linux, macOS, Windows, Raspberry Pi, and NAS boxes, effectively any VPS or machine you run.