Persistent remote terminal

Your coding agents,
from anywhere.

A native mobile terminal that watches Claude Code, Codex & Kimi running on your machine. The session survives Wi-Fi↔5G, sleep, even app kill — pick up exactly where it was.

Coming soon to theApp Store Get it onGoogle Play
Then install the daemon on your machine — one command ↓
agoches serve — mbp-16
$ agoches serve
daemon up · pairing mode · scan to connect a device
session live · 12 ms · iroh QUIC direct
Hooks into Claude CodeCodexGemini OpenCodeCursorKimiQwen
How it works

From install to phone in three steps

01
Install the daemon

One line on your dev machine. Installs the agoches daemon and the agent hook scripts — nothing to configure.

02
Pair over QR

Run agoches serve. It prints a QR encoding an iroh NodeId. Scan it from the app to hole-punch a direct, key-pinned QUIC link.

03
Drive from your phone

Type, talk, approve and review diffs. Mosh keeps the session alive across network changes — your agents never drop.

The product, screen by screen

Every surface, native to your phone

One product across iOS, iPadOS & Android — Apple HIG and Material 3. Every screen here is a faithful recreation of the real app.

9:41
Agents
Running1
CC
Claude Code · mbp-16
feat/auth
Refactor auth middleware to async
Editing src/middleware/auth.ts · running test suite
4m 12s+182 −7448.2k tok
Needs approval1
CX
Codex · studio
test/integration
Needs approval
Write integration tests for /checkout
Approve running `pnpm db:reset` against staging?
Needs input1
CC
Claude Code · mbp-16
fix/e2e-flake
Needs input
Fix flaky e2e on Safari
Waiting on your reply: which retry count?
Done2
KM
Kimi · devbox
chore/pnpm
Done
Migrate npm → pnpm workspaces
Done · 17 files changed, lockfile regenerated
8m 55s+240 −51034.1k tok
CX
Codex · mbp-16
feat/auth
Done
Add rate-limit to login route
Done · awaiting review
3m 20s+58 −211.4k tok
Agents

A kanban of every agent

Hook events turn raw terminal output into a board of tasks across every host, so you can see what each agent is doing at a glance.

  • Running · needs-approval · needs-input · done columns
  • Context %, tokens, elapsed and live diff per task
  • Claude Code · Codex · Kimi · Gemini and more
9:41
mbp-16 · claude
~/acme/api · feat/auth
message claude…
Terminal

A real terminal, made for thumbs

Full VT/xterm emulation with a custom accessory key bar — and an agent layer that knows when Claude Code is waiting on you.

  • Ctrl / Esc / Tab / arrows + tmux & agent command panels
  • Voice-to-terminal, on-device
  • Paste & annotate a screenshot straight into the prompt
9:41
Files
mbp-16 src/middleware feat/auth 5 changed
handlers5 items
login.tsM
logout.ts
refresh.tsA
__tests__4 items
auth.tsM
cors.ts
rateLimit.tsA
session.ts
index.tsM
Files

Browse the repo, any commit

The daemon reads the working tree on your host, so you can open the agent's files and see exactly what changed — without leaving your phone.

  • Repo tree you can scope into any folder
  • Added / modified markers inline
  • Syntax-highlighted file view
9:30
Hosts
mbp-16
MacBook Pro 16” · macOS 15.3
P2P · direct14ms2 sessions2 agents
studio
Mac Studio M2 · macOS 15.2
TURN relay47ms1 sessions1 agents
devbox
Linux · Ryzen 9 · Ubuntu 24.04
offline0 sessions1 agents
Hosts · connection

Direct P2P — no ports, no VPN, no SSH

iroh dials your machine by its public key and hole-punches a direct, end-to-end-encrypted QUIC link. Nothing is exposed to the internet, and the connection is authenticated by the key itself — so it's MITM-proof by default. No firewall rules, no DNS, no IP to leak.

  • No open ports, no port-forwarding, no inbound firewall rules
  • Reaches machines behind NAT, CGNAT and mobile networks
  • Dial-by-key: the identity is the address — no IP, no DNS, ed25519 pinned at pairing
  • Encrypted & MITM-proof out of the box (QUIC + key-pinned auth)
  • Wi-Fi ↔ 5G, sleep, even app kill: the host session re-attaches, zero lines lost
  • Relay fallback only when direct P2P is impossible — never a third-party TURN
src/middleware/auth.ts+18−7
Diff

Read the change before you approve

Every approval comes with a syntax-highlighted diff of the agent's working tree, pulled live from git on the host.

  • + / − hunks with line numbers
  • OSC 52 remote clipboard back to your phone
  • Approve or reject right from the diff
iPadOS

Not a blown-up phone

An adaptive split view — agents, terminal and diff side by side — with hardware-keyboard ⌘ shortcuts and Stage Manager.

Agents
5 across 3 hosts
CC
Claude Code · mbp-16
Refactor auth middleware to async
CX
Codex · studioNeeds approval
Write integration tests for /checkout
CC
Claude Code · mbp-16Needs input
Fix flaky e2e on Safari
KM
Kimi · devboxDone
Migrate npm → pnpm workspaces
CX
Codex · mbp-16Done
Add rate-limit to login route
mbp-16 · claude-code
~/acme/api · feat/auth
⌘K⌘O Running
message claude… ⏎ to send
Diff
src/middleware/auth.ts
+18−7
iPad · split view
agents · terminal · diff
Why agoches

Secure by key. Reachable anywhere. No ports.

Most remote-access tools make you choose between security and reach — open a port, run a VPN, or trust a tunnel. agoches gives you a direct, encrypted P2P link dialed by public key, plus a layer built specifically for watching AI agents.

Zero attack surface

No inbound ports, no port-forwarding, no firewall rules. Your machine is never exposed to the public internet — there's nothing to scan or brute-force.

Encrypted by identity

The connection is dialed by an ed25519 public key and runs over QUIC. The key is the address, so the link is end-to-end encrypted and MITM-proof by default — no certs to manage.

Reaches anything

Hole-punches straight through NAT, CGNAT and mobile networks; falls back to an open relay only when a direct path is impossible. No static IP, no VPN daemon, no extra infra.

Capability agoches SSH apps
Termius · Blink
Tailscale
+ SSH
Mosh Web terminal
ttyd · wetty
VS Code
Remote / Cursor
No open ports / port-forwarding
Works behind NAT / CGNAT out of the box
Dial by key — no IP or DNS needed~
Encrypted & MITM-proof by default~
Survives network change & app kill (session re-attach)~
Agent-aware: tasks, diffs, approvals~
Push notification when a job finishes
Native mobile app (not a web wrapper)
No extra infra (no VPN / signaling / TURN)~~~
full support~ partial / with setup not supported
Get started

Set up in two places

Free while in beta. The daemon runs on your computer; the app lives on your phone. Pair them once with a QR.

1On your computer
$ curl -fsSL https://agoches.app/install.sh | sh copy
Installs the daemon, then run agoches serve — it prints a QR you scan with the app. No SSH, no port-forwarding.
2On your phone

Get the native app, open it, and scan the QR your daemon prints. iOS 16+ · iPadOS · Android 12+.

Coming soon to theApp Store Get it onGoogle Play
Credentials live in Keychain / Keystore, unlocked by Face ID.