Documentation
Start at Install and read forward, or jump to a section below.
Have an agent set it up
Paste this to Claude Code, Codex, or any agent that can fetch a URL. It reads a guide written for that job: install, first run, the concepts worth explaining, and what leaves the machine.
Help me understand and set up swe-mux. Read https://swemux.dev/agent-guide.md first, then walk me through it step by step.
The guide is https://swemux.dev/agent-guide.md, plain Markdown rather than a page, so an agent gets the text and not a layout. It tells your agent to ask before it installs anything.
Getting started
Installing it, getting a first agent session running, and reaching it from a phone. About half an hour end to end, and none of it needs a checkout.
- InstallInstall swe-mux from PyPI with uv, pipx, or pip, on Windows, Linux, or macOS. What each method leaves you with, and the two things no method does.
- Your first sessionCreate a Project, open a terminal, and promote it into an agent session by typing the command you already type. What to expect the first time.
- Reach it from your phoneThe phone client is the same application over your own Tailscale tailnet: no relay, no swe-mux login. How to set it up, and what the access boundary actually is.
- Have an agent set it upPaste one line into Claude Code, Codex, or any agent that can fetch a URL, and it reads a guide written for walking a person through installing swe-mux.
Concepts
The four ideas the rest of the application is built on. Worth reading once, in order, because every later page assumes them.
- Projects and GroupsA Project binds a folder to sessions, layout, notes, files, history, and its own settings. What that means in practice, and which switches are per-Project.
- Sessions, terminals, and harnessesA session is one pseudoterminal with a process in it. What swe-mux owns, what survives a restart, and what a recognised harness gets that an unrecognised one does not.
- Session statusWorking, ready, awaiting, blocked: one status vocabulary across every vendor's CLI, how it is read, and why awaiting is the one to watch.
- What the control plane isThe layer that decides which session you look at next: deterministic facts, model-free detectors, attention ranking with an interrupt budget. Off by default, per Project.
Working in it
What each surface does and where its controls are, one page per subsystem.
- Panes, tabs, and the drawerThe workspace is a mixed tree of panes, tabs, and splits, with a utility drawer beside it. What each drawer tab acts on, and how the phone projects the same tree.
- The prompt queueStage ordered messages against a session that is mid-turn. Durable, head-of-line, and with automatic delivery off by default. What turning it on actually means.
- Git, worktrees, and landingStatus and diff review beside the terminal, a worktree map, commit-level provenance split into committer and contributor, and a land queue that fast-forwards only.
- Notes, files, and previewsProject-owned notes in a real Markdown editor, a bounded file tree with editors, leased watches, and dev-server previews proxied so a phone never needs a raw port.
- History and transcriptsOne search and one resume across every supported harness, read from the vendors' own transcript files, which are never moved, rewritten, or deleted.
- Voice and the assistantRead aloud in three policy layers, hands-free conversation with local transcription and wake words, and an assistant whose confirmation floor is not configurable.
- Automation and alertsModel-backed observers that watch a run and report, an attention inbox with a hard daily interrupt budget, and push notifications to the device you are actually at.
- Accounts, usage, and budgetsSwitching between provider accounts you own, the three spend pots that are never summed, where a model call goes, and what a cap can and cannot enforce.
Reference
Every setting, every command, every default chord, and every file swe-mux writes.
- PluginsInstall versioned external-process plugins, understand their authority, and publish a standalone repository to the validated swe-mux catalog.
- Settings referenceEvery Settings tab, what it owns, and the rule that decides whether a switch is global, per Project, or per device.
- Command line referenceEvery mux subcommand, every muxd flag, the exit-code contract scripts branch on, and how the CLI resolves which daemon to talk to.
- Keyboard and the command paletteEvery default chord, the command palette that reaches the rest, and how rebinding and mobile gestures work.
- Where data lives, and what leaves the machineThe data directory and what each part of it holds, exactly which network requests swe-mux makes, what is worth backing up, and what an uninstall leaves behind.
Help
What actually goes wrong, and what to do about it.
- TroubleshootingThe things that actually go wrong: a blank page, nothing on PATH, a daemon that will not start, sessions that look lost, a phone that cannot use the microphone.
- Developing swe-muxMaintainer material: running from a checkout, the verification gate a change has to pass, the DCO sign-off, and the extra rules a dependency change carries.
For changing swe-mux rather than using it, Developing swe-mux is the maintainer page, and the only one here that sends you into the repository.