handmux
open-source · the leading mobile vibe-coding tool

vibe coding
in your hand

Mobile vibe coding: one command on your computer, scan a QR — and the same live session is in your hand. Pick up your build anywhere.

It drives your real tmux panes, so the agent keeps running and you pick up exactly where you left off. No app to install — open the link in your phone's browser and you're in. Works with Claude Code, Codex, aider, any shell — and it pings your phone the moment a pane needs you.

how it works →
a real session, on your phone

No mockup — a real phone browser driving real panes: a push pings you to approve a Claude Code prompt, read rendered docs aloud, review a git diff — all with your thumb.

9:41
handmux on a phone: a Claude Code permission prompt arrives and is approved with a tap
A push pings your phone — a Claude Code permission to approve with a tap.
9:41
handmux on a phone: rendered Markdown doc preview and a full-screen git diff
Open a doc as rendered Markdown — even have it read aloud — then a full-screen git diff.
get going · 2 minutes

Two things on your computer — and if you already use tmux, you're basically set. Your phone needs nothing but a browser.

# 1 · do you have the basics? (run on your computer)
node -v     # need Node ≥ 18   → nodejs.org
tmux -V     # need tmux ≥ 3.0  → brew install tmux / apt install tmux

# 2 · install once, then run it
npm i -g handmux
handmux start            # local / same wifi — nothing exposed

# 3 · scan the QR it prints → you're on your phone, driving your real terminal
# reach it from anywhere: handmux start --tunnel cloudflare  → a public link
deepest with claude code

It drives any agent or TUI — and with Claude Code it goes furthest: it knows the moment a pane needs you.

Pinged when it needs you

A push the instant a pane hits a permission prompt, a plan approval, or finishes — even with the tab closed. No more babysitting a screen.

Every agent at a glance

An inbox of your Claude panes, each tagged working · needs you · done. Jump straight to the one that's blocked.

Approve with your thumb

Answer permission prompts and plan approvals right from the phone — it's driving the real keys, so a tap is a real keystroke.

Talk to it

Voice input to fire off the next prompt, hands-free, from wherever you are.

more than a terminal

The competitors stop at a remote shell. handmux is a full mobile cockpit for your sessions — review code, preview your app, read docs and move files without leaving the couch.

git

Diffs in your hand

A VS Code-style git panel: changes, commit history, any branch — tap for a full-screen colored diff. Multi-repo tabs, read-only, never touches your tree.

preview

See your dev server

Preview a static site from a folder, or a live service by port — your phone renders it with routing, API and HMR intact. Phone or desktop viewport.

docs

Read & hear docs

Tap any path in the terminal to open it — Markdown rendered, font zoom, and read-aloud with sentence-by-sentence highlight.

files

Files both ways

Upload from the chat box (multi-select, path auto-filled), download with a tap, share straight into the app, copy any absolute path.

flow

Ideas & commands

A per-window to-do list you can voice in and one-tap insert, plus a command palette with frequent/recent and slash shortcuts (/compact, /model…).

solid

Built for flaky networks

Reconnect with backoff, a connection-lost banner, an offline page, polling that pauses when hidden — plus a reflow-safe cursor and drag-to-select copy.

and the fundamentals
01

Same session, two screens

Your phone drives the same live tmux as your desk — any TUI, any agent. Step away mid-build and continue from your thumb, exact same state.

02

Two commands

handmux start just runs it; handmux setup configures a tunnel and saves it. The server, the tunnel, the QR — handled.

03

Public or private

Cloudflare quick tunnel for zero-config reach, a named Cloudflare domain, or self-host on your own VPS — all wired up by handmux setup.

04

Token-secured

Every connection needs a token. The QR carries it for one-tap sign-in; the plain link stays token-free, safe to share.

05

Nothing to install

Just open the link in your phone's browser — no App Store, no client. Add to Home Screen for a full-screen PWA if you like; either way it survives flaky networks.

06

Starts at login

service install registers launchd / systemd so the whole thing comes back after reboot.

how it works
Your phone
no app · add to home screen
https
Tunnel
we start it for you · or your own
reverse
Your machine
handmux start
cloudflarezero-config

One outbound connection to Cloudflare's edge hands you a public https link. No ports to open, no IP, no certs. Great to start in seconds.

self-hostedyour domain

A reverse tunnel to your own VPS with your domain and TLS — stable, fully yours, and works where Cloudflare's edge is unreliable.

the whole cli
handmux start [flags]                 # run it — LAN-only by default, no config needed
handmux setup                         # configure tunnel / name / notifications (saved; re-run to change)
handmux stop · restart · status      # control + see the live URL
handmux logs [--follow]              # tail the supervisor log
handmux config                        # show effective config + where each value came from
handmux service install               # start at login

# flags (one-run overrides): --tunnel none|cloudflare|cloudflare-named|ssh  --port  --token  --config