roamcode.ai

self-hosted · open source · MIT

RoamCode streams the real claude TUI from your machine to any browser. Your subscription, your hardware — no cloud in the middle.

You started a 40-minute refactor. Now you have to leave. Your agent shouldn't notice.

playground

This is what your pocket sees.

A replay of a real session — same renderer the app ships (xterm.js), same key bar. Go ahead, type something.

roamcode — ~/dev/api — claude

Replay, not a sandbox — the real thing attaches to a live claude on your own machine. Sessions run in tmux: close the tab, land at your desk, pick up mid-thought.

ergonomics

A terminal you can drive by thumb.

Termux-style key bar — Esc, Tab, arrows, a sticky Ctrl that turns your next tap into a chord. Two fingers scroll the transcript. Tap-to-select copies.

Full-screen TUIs are miserable on glass. This is the part everyone else skipped.

✳ Welcome to Claude Code!
────────────────────────
make the auth flow not suck
⏺ Reading src/auth/…
⏺ Edit(login.ts) +22 -9
Simmering… (↓ 3.2k tokens)
esctabctrl

splits

iTerm2 splits, in a browser tab.

On desktop, drag sessions into panes. Three claudes on three repos, one glance. Each pane is a live session — not a screenshot of one.

roamcode — workspace
api · working
migrate the webhook queue
⏺ Write(queue.ts)
Churning… ↓ 8.1k
web · needs you
Do you want to proceed?
1. Yes 2. No
infra · idle
✓ 34 tests passed

presence

Know when claude needs you.

The rail reads each session's screen: working, blocked on you, done. Push notifications deep-link straight into the session that asked.

Walk away. The phone buzzes only when your hands are actually required.

ROAMCODE

claude needs you

api — “Do you want to proceed?”

sessions
api ↓ 8.1k tokens
web waiting 2m
infra done 14:32
blog done 11:05

trust

Self-hosted in the strictest sense.

RoamCode is a small server you run on your own machine. The only party in the loop is you.

Your subscription, not an API bill

Drives the claude CLI you already log into. No keys uploaded, no per-token markup.

Token auth + origin guard

32-byte access token, CSWSH-safe WebSockets, rate limiting. Public exposure is your explicit choice.

Zero telemetry

The server phones home to exactly one place: your own git remote, when you ask it to update.

MIT, readable in an afternoon

Small TypeScript monorepo. The security-relevant paths are documented and tested.

install

Sixty seconds to your first remote session.

needs macOS or Linux · Node ≥ 24 · tmux · the claude CLI — prints a connect link for your phone. Manual path →