Copy pageSign up

Parallel engineering

Run independent tasks and coding agents in separate branch sandboxes.

Use one sandbox per task so agents can edit, build, and test independently. For example, implement payments while another agent investigates a login bug. Each task gets its own checkout, dependencies, services, and terminal processes.

Start two tasks

After installing and signing in, open two local terminals in the same repository. Configure the agents you want to use once before launching them.

Local terminal A:

cube start feature/payments --tmux agent

Inside sandbox A:

codex

Give the agent a task such as: “Add validation to the payment form and test invalid amounts.” Detach with Ctrl+B, then D to leave it running.

Local terminal B:

cube start fix/login --tmux agent

Inside sandbox B:

claude

Give this agent an independent task, such as: “Reproduce the expired-session login failure, fix it, and add a regression test.” You can use the same agent in both sandboxes instead. The tmux name agent is local to each VM.

Follow progress

Local: list the Sessions or return to an agent's terminal:

cube sessions
cube connect feature/payments --tmux agent

To inspect a checkout without attaching to the agent's terminal, open another shell or run a command:

cube connect fix/login
# Or, from a local terminal:
cube connect fix/login --command 'git status --short'

Multiple terminals in one Session share files. Use separate Sessions for tasks that should change code independently.

Preview both applications

Start each project's development server inside its sandbox. Both can use remote port 3000. Then run these locally, each in its own terminal:

cube forward 3000:3001 --session feature/payments
cube forward 3000:3002 --session fix/login

Open http://127.0.0.1:3001 and http://127.0.0.1:3002 to compare the apps. Check the printed addresses if a requested local port was already occupied. Keep both commands running while you use the previews.

Review and finish each task

Inside each sandbox, inspect the diff and run the repository's tests. Commit and push the changes you want to keep using your normal Git workflow. Separate sandboxes isolate execution; normal Git review and conflict resolution still apply when combining their branches.

Local: pause unfinished work or delete a finished sandbox after saving it:

cube pause feature/payments
cube kill fix/login

Pause keeps the disk but stops the agent and services. Kill permanently deletes the disk. See Sandbox lifecycle for persistence and usage.

On this page