Keep coding when life pulls you away.
English | 繁體中文 | 日本語 | 한국어 | Español | Français
Important
tmuxhop is designed for trusted networks only. It exposes your live terminal to other clients on the network without authentication. Run it only on the same machine, a trusted LAN, or a VPN. See SECURITY.md.
💻 vibe coding
-> 💩 need to poop
-> 📱 open tmuxhop on your phone
-> 🤖 keep coding while sitting on the bowl
-> ✅ stay in flow
git clone https://github.com/<your-org-or-user>/tmuxhop.git
cd tmuxhop
npm install
tmux has-session 2>/dev/null || tmux new -d -s tmuxhop
npm startOpen the app:
http://127.0.0.1:3000/
For phone access on the same local network:
HOST=0.0.0.0 PORT=3000 npm startThen open http://<your-computer-ip>:3000/ from the phone browser.
tmuxhop reads your local tmux session state, exposes it through a small Node server, and renders the selected pane in the browser with xterm.js. The browser UI is touch-friendly, but the underlying session stays the same.
The goal is not full remote desktop access. The goal is to make it easy to hop to another device for a few minutes and keep going.
- Node.js 22+
tmuxinstalled locally- a browser on the same machine, LAN, or VPN
By default, tmuxhop looks for:
tmuxat/opt/homebrew/bin/tmux- a default session named
tmuxhop
You can override those with:
TMUX_BIN: path to thetmuxbinary tmuxhop should useTMUXHOP_SESSION: default session name tmuxhop should look for or suggestTMUXHOP_SCROLLBACK_LINES: how many scrollback lines to keep in the browser terminalHOST: which network interface the backend binds toPORT: which port the backend serves on
- Single-user workflow.
- Built around
tmux, not arbitrary terminal multiplexers. - Browser terminal, not desktop replacement.
- Mobile-first continuity tool, not a full remote access platform.
Run the test suite:
npm testRun type-checking only:
npm run typecheckBuild the client:
npm run buildMIT

