Concepts
What JoyMux guarantees
JoyMux is a local persistent execution layer for coding agents. This page is the public contract: observable behavior you can verify. It is not a map of how JoyMux is built.
The job: crash, disconnect, or handoff should not mean reconstructing the work from chat history.
Guarantees
Interrupt. Execution state survives interruption and can be recovered without reconstructing the task from chat history.
Resume. You continue from durable execution state instead of reconstructing the work from conversation.
Hand off. Change coding agents without throwing away the execution state they need.
Shrink context. Keep the complete execution record locally while giving the next agent only the relevant change.
Verify. Execution evidence remains available independently of the model’s memory. Replay is a read of what ran, not a reconstruction of what the model remembers.
Don’t trust this page. Test the invariant.
What JoyMux owns — and what it does not
JoyMux owns execution on your machine: starting, interrupting, and terminating processes you authorize; keeping a durable execution record; replay; checkpoints; and local APIs that agents attach to.
It does not plan agent work, pick coding-agent models, verify missions, or replace Codex, Claude Code, Gemini, or OpenCode. A zero process exit code means only that the process exited normally.
Harnesses sit above a stable local API. They can change. The execution record stays.
Local, not remote
JoyMux runs as your user on your machine. There is no public remote-control plane: nobody off this computer can drive your agents through JoyMux.
Product execution evidence stays under ~/.joymux unless you export it. Billing email is collected on this website for JoyPay; card details never touch joymux.com. See security and privacy.
Failure behavior you need to know
- After a client disappears, the execution record remains available for resume and replay.
- After a daemon restart, resume is from durable evidence. Reattaching a live terminal is not always claimed — some work must be restarted. That limitation is part of the contract.
- Terminal session states are validated so conflicting lifecycle events cannot silently corrupt the recorded execution state.
- JoyMux persists execution evidence before making it available for durable replay.
- Slow clients catch up from a known cursor. They do not stop the process from producing output.
- Resource usage is observed best-effort. Declared limits are not enforced as a sandbox. JoyMux is not a sandbox, syscall isolator, or disk-quota system.
How you attach
Install the CLI, start the local daemon, then use the CLI, SDK, MCP, or HTTP API as documented. Integration needs those surfaces. It does not need JoyMux’s internals.
Narrative of the same contract: What JoyMux guarantees.