How Muxtra works
Muxtra gives each coding agent an isolated Git worktree, launches it with the repository’s operating rules, and only combines work that has passed your project checks.
Describe
Give each agent a focused task. Muxtra creates and tracks its workspace.
Run
Every task receives its own clean workspace, so agents can edit simultaneously without overwriting one another.
Verify
Muxtra checks committed work against the recorded base and your repository’s test, typecheck, and build commands.
Combine
A temporary integration workspace proves that the tasks work together before your primary project advances.
Task branches are retained, failed combinations never touch your primary checkout, and Muxtra never force-pushes your work.
Install Muxtra
Muxtra is currently in public beta and requires Node.js 20 or newer and Git. Install the beta CLI with npm:
npm install --global muxtra@beta
muxtra --version
Beta releases use npm's beta tag. Because this is Muxtra's first npm
release, npm also resolves the untagged package name to this build until a stable
release exists. Use muxtra@beta to stay on the intended prerelease
channel.
Update an npm installation to the newest beta release at any time:
muxtra update
Then open the Git project you want to use and confirm that Muxtra can safely operate it:
cd your-project
muxtra setup
muxtra doctor
Your first parallel run
Open an existing Git project with at least one commit. Prepare it once, then give the task a short tracking title:
cd your-project
muxtra setup
muxtra start "Build the dashboard navigation" --agent codex
Setup creates and commits .muxtra/project.yaml so every isolated agent
sees the same workflow. Muxtra detects common package checks automatically and stops
with clear instructions if your project still needs checks configured.
The quoted title names the workspace, branch, and status entry; it is not sent as the
agent's first user prompt. Give the full request in the native agent session, or use
--prompt when you deliberately want to send it immediately:
muxtra start "Dashboard navigation" --agent codex --prompt "Implement responsive dashboard navigation using the existing design system."
In another terminal, open a separate task with a different provider:
muxtra start "Add dashboard search" --agent claude
muxtra status
muxtra status --details exposes
the underlying Git diagnostics.
Give each responsibility the right model
The design lane owns UI, frontend implementation, responsive behavior, and accessibility. The code lane owns backend logic, state, data, integrations, architecture, and tests. Each lane can use a different CLI provider and an exact model—or rely on that provider’s default model.
muxtra lanes set design --agent claude --model <claude-model>
muxtra lanes set code --agent codex --model <codex-model>
muxtra lanes
muxtra team "Build account settings"
muxtra team creates two linked, isolated workspaces and prints one
muxtra launch command for each native CLI. After both agents commit and
finish verification, run the exact two-task muxtra combine command shown
in the output. The team title is tracking metadata; each agent waits for its own
detailed request after launching.
.muxtra/project.yaml.
Finish, verify, and combine
When an agent has committed its changes, it runs muxtra finish. Muxtra
requires a clean workspace, verifies that it is ahead of and fresh against its
recorded base, runs configured checks, records the exact verified commit, and releases
the agent’s active claims.
muxtra finish dashboard-navigation
muxtra finish dashboard-search
muxtra combine
muxtra combine creates a temporary composition, merges the selected
verified tasks, runs the project checks again, and only then advances the primary
project. If a merge or combined-only check fails, your main checkout remains
untouched.
| Command | What it changes | What it protects |
|---|---|---|
finish |
Records one verified commit | Rejects dirty, stale, uncommitted, or unchecked work |
combine |
Advances the primary project after checks pass | Uses a disposable integration workspace first |
remove |
Removes a managed workspace | Refuses uncommitted changes and keeps its branch |
Use the agent that fits the task
Muxtra can directly launch Codex CLI and Claude Code. The workspace and committed project workflow are supplied automatically, and the agent keeps its complete native interface for reasoning, tool calls, approvals, and conversation.
muxtra start "Fix the checkout" --agent codex
muxtra launch checkout-polish --agent claude --model <model> --prompt "Polish the final UI"
For ChatGPT or another client Muxtra cannot launch directly, generate a portable handoff and paste it into that client:
muxtra instructions checkout-polish --agent chatgpt
One committed source of truth
muxtra init creates .muxtra/project.yaml. Commit it so every
person and agent receives the same install command, development command, healthcheck,
checks, branch policy, and production rules.
version: 1
project:
name: example-app
runtime:
install: pnpm install
development: pnpm dev
healthcheck: /
port_env: PORT
checks:
- pnpm typecheck
- pnpm test
- pnpm build
lanes:
design:
agent: claude
code:
agent: codex
git:
branch_prefix: agent
direct_push_to_main: false
force_push: false
The contract contains commands and policy—not credentials. Machine-local task state is
stored in the repository’s shared Git directory; managed worktrees and logs live under
~/.muxtra/ by default.
Development servers per workspace
Start, inspect, and stop the configured development server without guessing ports or log locations:
muxtra dev dashboard-navigation
muxtra status
muxtra logs dashboard-navigation
muxtra stop dashboard-navigation
Muxtra allocates a port, records the process and log, and waits for the configured health URL. From inside a registered worktree, the workspace name is inferred.
Command reference
muxtra setup
Prepare the current Git project for the guided workflow.
muxtra start <title> [--agent <agent>] [--lane design|code] [--prompt
<prompt>]
Create a titled isolated task and launch its agent.
muxtra lanes [set design|code ...]
View or save local provider and model defaults for each responsibility.
muxtra team <title>
Create linked design and code tasks in separate isolated workspaces.
muxtra update
Update an npm installation to the newest Muxtra beta release.
muxtra status [--details] [--fetch] [--json]
Show active tasks, readiness, freshness, and optional Git diagnostics.
muxtra finish [name]
Verify and record the exact committed result of one workspace.
muxtra combine [names...]
Compose verified tasks and apply them only after all checks pass.
muxtra launch [name] [--model <model>] [--prompt <task>]
Launch an agent in an existing workspace with its operational context.
muxtra instructions [name]
Print a portable handoff for a remote or unsupported client.
muxtra enter <name> --agent <agent>
Create a lower-level managed worktree and branch.
muxtra adopt <path> --agent <agent>
Register an existing worktree without moving or modifying it.
muxtra claim <paths...>
Publish intended file ownership so overlapping agent work is visible.
muxtra who
Show active path claims and their last heartbeat.
muxtra build
Run project checks and relate failing paths to active claims.
muxtra dev / logs / stop
Manage a workspace’s recorded local development process.
muxtra remove <name>
Safely remove or unregister a workspace while retaining its branch.
Muxtra is designed for agents to use, too
Launch instructions tell agents to inspect project context, claim paths before
editing, use the managed development lifecycle, commit their work, and finish
verification. Add the protocol to AGENTS.md only when you want it
committed to the repository:
muxtra agent-guide
muxtra install-guide
# or during initialization
muxtra init --install-guide
Claims are advisory leases, not locks. They reveal overlapping intent without preventing legitimate collaboration, and they expire when an agent stops sending heartbeats.
When something is not ready
finish says the workspace is dirty
Commit or intentionally discard the workspace changes first. Muxtra never guesses which uncommitted work should become the deliverable.
The workspace is stale
Refresh against the recorded base, resolve the update inside the task workspace,
rerun checks, and finish again. Use
muxtra status --fetch --details for the underlying refs.
A combined check fails
Your primary checkout is still unchanged. Fix one or more task branches, finish
them again, and rerun muxtra combine. Use
muxtra combine --abort to discard an unfinished temporary
composition.
An agent cannot be launched directly
Run muxtra instructions <name> --agent <client> and paste
the generated context into that client.