Documentation

From parallel tasks
to one verified result.

Start with a task in plain language. Muxtra handles isolated workspaces, project context, verification, and safe composition.

Start here

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.

01

Describe

Give each agent a focused task. Muxtra creates and tracks its workspace.

02

Run

Every task receives its own clean workspace, so agents can edit simultaneously without overwriting one another.

03

Verify

Muxtra checks committed work against the recorded base and your repository’s test, typecheck, and build commands.

04

Combine

A temporary integration workspace proves that the tasks work together before your primary project advances.

The important part

Task branches are retained, failed combinations never touch your primary checkout, and Muxtra never force-pushes your work.

Installation

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
Quick start

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
Task mapping is recorded automatically. Muxtra generates the internal names, branches, and workspace locations. muxtra status --details exposes the underlying Git diagnostics.
Design + code

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.

Personal choices stay local. Lane preferences are stored in Muxtra’s machine-local state, so choosing a model does not dirty the project. Teams can commit shared provider defaults in .muxtra/project.yaml.
Core workflow

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
Providers

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
Muxtra currently ships as a CLI. Agent conversation stays inside the provider’s native interface; Muxtra coordinates workspaces and outcomes without capturing or storing it.
Repository contract

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.

Local runtime

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.

Reference

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.

Agent protocol

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.

Troubleshooting

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.