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 agentInside sandbox A:
codexGive 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 agentInside sandbox B:
claudeGive 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 agentTo 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/paymentscube forward 3000:3002 --session fix/loginOpen 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/loginPause keeps the disk but stops the agent and services. Kill permanently deletes the disk. See Sandbox lifecycle for persistence and usage.