your phone, not a pricey pocket gadget
A dedicated pocket AI-coding device runs hundreds. But your session already lives on your computer — AgentOn just lets the phone in your pocket drive it. Start claude or codex at the desk, walk away, and pick up the same live session on your phone. Free and open source — the web client and the native iOS app both. Tailscale's free plan covers the rest.
free & open source · runs on your own machine, over your tailnet
on your phone
Attached from your phone, agenton works two ways — hands-on in a full terminal, or as a pure landscape controller for the session running on your computer.
A native terminal with real scrollback, a thumb-friendly button pad, and press-to-talk in the message bar — everything you'd do at the keyboard, on glass.
It's fully drivable, not a viewer: type or tap and the agent reflows to your phone.
Flip to Controller and it locks to landscape — a pure button pad, no terminal to squint at. Every tap drives the exact session your computer is showing: accept, reject, stop, arrows to move. A rotate button flips orientation by hand, and the mic sends voice.
controller mode — landscape pad, drive by tap or hold-to-talk
agenton, to go
One tap on the toggle swaps between them — the session never pauses, never reconnects. Drive hands-on at the desk; flip to the controller when you stand up to leave.
no text field on the controller — you drive with the pad or hold-to-talk. One tap on the header toggle and the session keeps running, no reconnect.
the idea
Sessions don't live in your terminal — they live in a background daemon. Each client is just a view onto the same running agent, so you can walk away from your desk and pick up on your phone.
A minimal TUI wrapper. Type straight to the agent; the only extra is session switching with ctrl+t.
A SwiftUI client speaking the same wire protocol. Native scrollback, haptics, an SF-Symbol button pad, press-to-talk, and QR pairing.
where it starts
It begins in a minimal terminal wrapper: list your sessions, attach, and type straight to the agent. The phone picks up whatever you start here — the same live session, no reconnecting.
Each row is a live agent: a short repo label, which agent is running inside, and a pulsing running status. Start one with n, attach with enter.
The list auto-refreshes — a session you start on your phone shows up here on its own.
Attach and every keystroke goes straight to the agent's PTY — exactly as if you'd launched it right here. Scrollback replays instantly on reattach.
ctrl+t is the one reserved key: it pops back to the list and doubles as detach. The session keeps running.
Drive the same session from your phone and the desk terminal freezes its last frame, showing a takeover hint instead of a garbled, wrong-sized screen. Press any key at the keyboard to grab it back — the phone drops to the Controller pad on its own.
Sit back down and attach the TUI and the reverse happens: it reclaims the session and the phone parks to Controller automatically.
the fine print, minus the fine
Small surface, few moving parts — the daemon and its wire protocol do the work, every client is just a view.
Quit any client and the daemon and every agent keep running. Come back with a single agenton.
Attach from the desk and the phone at once. Drive from either; the other watches. Tap the toggle and your phone becomes a pure controller without disturbing the terminal.
Long-press a custom key to rebind it with a tap-to-compose picker — pick a key, a combo, or a literal string. No chording on a touchscreen.
Hold the mic in the message bar and dictate — on-device speech drops the transcript in to review, then send. Skip thumb-typing long prompts.
agenton rides the Tailscale app you already run — no extra node to approve, free plan is fine. Only devices on your tailnet can reach it — that's the whole model.
agenton qr prints a code; the iOS app reads it and you're connected. No IP addresses, no typing.
./install.sh fetches a prebuilt release (or builds from source if Go's present) and puts one small binary on your PATH — no daemon to configure. Then agenton.
Get up mid-run and the same session flips to the pocket controller — nothing stops, nothing reconnects. Land back at the desk and pick up where you left off.