Claude Code, many sessions, all at once. Faster.
A multi-session dashboard on tmux.
Browser, mobile, terminal — one seamless workflow.
Every session, in one dashboard.
As sessions multiply, tracking state gets harder.
purplemux gathers every session onto one screen so you can see what's running and where your input is needed at a glance.
Your quota, in real time.
Hitting a limit mid-focus breaks your flow. Work stalls while you wait for the next reset.
purplemux keeps 5-hour and 7-day quotas pinned to the sidebar. Colors shift at 50% and 80%, so you can pace yourself before you hit the wall.
Away from your desk, unchanged.
You don't need to stay at your desk just to watch a long task run. Open a mobile browser, add to home screen, and it behaves like a native app. Close the tab and task-completion / needs-input notifications still arrive via Web Push.
Add to home screen (PWA)
Open in a browser and add to the home screen to get a full-screen app icon.
- Open
http://<host>:8022in Safari - Tap the Share button at the bottom
- Choose Add to Home Screen
- Tap Add in the top right
- Open the URL in Chrome
- Open the ⋮ menu in the top right
- Choose Install app or Add to Home Screen
Turn on push notifications
- Enable Settings → Notification → On and grant browser notification permission
- Delivered via Web Push, even in the background
- Alerts for task completion and input needed
- Tap a notification to jump straight to the session
External access via Tailscale
For access outside your network, Tailscale Serve is the cleanest route. WireGuard encryption and HTTPS certificates come for free.
$ tailscale serve --bg 8022
Then reach https://<machine>.<tailnet>.ts.net from anywhere.
iOS Safari requires HTTPS for PWA and Web Push to work.
Every usage metric, on one screen.
Today's tokens, this month's cost, usage by project, breakdown by model — scattered numbers gathered in one place to show the rhythm and cost structure of your work.
Your day, auto-summarized.
When the day is done, session logs are gathered and an LLM writes a one-line brief and a detailed summary. Saved as Markdown — drop it straight into retros, reports, or 1:1s.
- Designed the eight-section structure with Hero / Why / Mobile / Stats layouts
- Made the purple brand color an OKLCH variable
- Applied desktop / mobile screenshot mockup frames
- Reproduced real spinner / pulse indicators on the multi-session dashboard
- Tightened Git Diff, workspace, and self-hosted mockup CSS
- Added the Tailscale access diagram animation
Brief + detailed, together
The one-line brief lives on the dashboard; expand to the detailed view with one click. It's Markdown — paste it straight into a retro or a report.
Batch & regenerate
Fill missing days in a single batch, or regenerate any single day on its own. The LLM processes session by session so context never gets lost.
Anywhere, fast
Lives in the sidebar as Notes, and opens with Cmd ⇧ E (macOS) / Ctrl ⇧ E (Linux).
Stored locally — nothing leaves your machine.
Every feature you need, nothing you don't.
- Split panesHorizontal · vertical splits, drag to resize
- Tab managementMultiple tabs, reorder, auto title from process name
- ShortcutsSplit · switch tab · move focus
- ThemesDark / light · multiple color sets
- WorkspacesSave & restore panes · tabs · working paths
- Git diff viewerSide-by-side · syntax highlighting
- Web browser panelBuilt-in Electron preview
- Real-time statusIn progress / needs input, instant transitions
- Sidebar session modeWorkspace ↔ Sessions toggle, status-grouped views
- Live session viewMessages · tool calls · tasks · permission prompts
- One-click resumePick up interrupted sessions right from the browser
- Auto restoreRecovers previous sessions on server restart
- Quick promptsRegister favorites, run with one click
- Message historyReuse previous messages
- Usage analyticsTokens · cost · per project · daily reports
- Rate limit countdown5h / 7d remaining · time to reset
- Limit usage warningsSidebar bar shifts to amber / red at 50% / 80%
- Responsive UITerminal · timeline on phones and tablets
- PWAAdd to home screen · native-app feel
- Web PushNotifications even after closing the tab
- Multi-device syncWorkspace changes reflected in real time
- TailscaleHTTPS-safe external access
- Password authscrypt hashing
- i18n한국어 · English · 日本語 · 中文 · 11 languages total
- ThemesLight / Dark / System auto
- Font sizeNormal · Large · X-Large
- Custom CSSFull override via CSS variables
- Terminal themesSeparate color sets for light / dark
- Sidebar reorderShow/hide items · drag to reorder
- Quick prompts libraryAdd custom prompts · drag to sort
- Editor integrationExternal editor via code-server URL
- Notification controlSystem notifications on/off
- Claude optionsToggle CLI options like skip permissions
Browser ↔ Node.js ↔ tmux · Claude Code.
xterm.js connects to node-pty over WebSocket, and node-pty attaches to a tmux session on the dedicated purple socket.
State is tracked by Claude Code hooks and a JSONL log watcher together.
Beyond remote control — a unified workspace.
Official Remote Control is a remote-access tool for continuing Claude Code sessions from another device. purplemux adds a multi-session dashboard, terminal extensions, and usage analytics on top — a self-hosted operating environment.
| Feature | Official Remote Control | purplemux |
|---|---|---|
| Concurrent session view | Open one at a time from a list | All sessions, all states, on one dashboard |
| Status indicators | Online / offline | Busy · Review · Needs-input · Idle in real time |
| Push notifications | Requires Claude mobile app | Web Push · any browser, no install |
| Terminal persistence | Only while the claude process is running | tmux-backed · auto recovery after restart |
| Bundled tools | Claude Code session only | Split terminal · Git diff · workspace save |
| Usage analytics | — | Tokens · cost · per project · AI daily report |
| Strengths | Official from Anthropic · Claude mobile app integration · auto-update | Third-party OSS · manual install & maintenance |
30 seconds, start to finish.
All you need is Node.js 20+ and tmux. One line to install, then open your browser.
Run
Start right away with npx. A global install also works.
$ npx purplemux
Open the browser
Default port is 8022. Override with the PORT env var.
→ http://localhost:8022
Remote access (optional)
For external access we recommend Tailscale Serve. WireGuard encryption and automatic certificates are included.
$ tailscale serve --bg 8022
Native app (optional)
On macOS you can also use the Electron build. Apple Silicon and Intel both supported.
Download the latest release →Things you might be wondering.
Does it save me money?
It makes your usage transparent. Today's, this month's, and per-project cost; per-model token breakdowns; 5h / 7d rate-limit remaining — all on one screen, so you can tune spending yourself.
Can I approve permission prompts from my phone?
Yes. purplemux intercepts Claude Code permission dialogs from the terminal and forwards them to the dashboard and mobile notifications. Approve from anywhere — no more stalled tasks.
If my system crashes, do I lose my sessions?
Closing the browser or losing the network is fine — tmux keeps the sessions alive. Even after a full reboot, purplemux scans the workspace layout and recovers previous Claude sessions in parallel. No manual restore required.
Where is my data stored?
All settings and session data are stored locally under ~/.purplemux/.
Nothing is sent to external servers. Authentication is kept as a scrypt hash in config.json.
Does it work on Windows?
Not officially. Due to tmux and node-pty platform constraints, only macOS and Linux are supported. It may work under WSL2, but that's outside our test coverage.
Does it conflict with my existing tmux sessions?
purplemux runs an isolated tmux instance on a dedicated purple socket.
It is fully independent from your existing tmux sessions and ~/.tmux.conf.
How do I access it from outside my network?
Tailscale Serve is recommended — you get WireGuard-based encryption and automatic HTTPS certificates.
If you prefer your own reverse proxy, make sure to forward the Upgrade and Connection headers in Nginx / Caddy.
Is there any cost?
purplemux itself is MIT-licensed open source and free. Claude Code usage is billed separately.
Is it actually usable on mobile?
Yes. Responsive UI, PWA, and Web Push are built in. Add it to the home screen for a native-app feel; close the tab and you'll still receive task-completion and input-needed notifications.
Is it localized?
11 languages supported: 한국어 · English · 日本語 · 简体中文 · 繁體中文 · Deutsch · Español · Français · Русский · Português (Brasil) · Türkçe.
One line is all it takes.
With Node.js 20+ and tmux ready, you can be running in 30 seconds.
On your machine, yours to own.
purplemux is a self-hosted tool that runs locally.
Session data, settings, and history live only in ~/.purplemux/ and never leave your machine.
The full source is MIT-licensed — read it, change it, contribute.