Guides
Live main and shipping
See everyone's work combined, mark yours ready, and ship it as pull requests that merge in order.
Every workspace has live main unless its owner turns it off. Everyone's work, from a laptop, the browser or a cloud agent, sits in its member's own worktree, and live main combines it all into one version of the project you can open and run. When work is ready, you ship it: each member's worktree becomes their own pull request on GitHub, in live main's order, and someone on your team merges each one there. CoDev never merges them.
Turn live main off or on
The workspace's owner switches Live main in the workspace's settings (General); every member sees whether it's on.
- Off, everyone edits main together, as in a workspace without worktrees. Members' worktrees stay, so turning it back on carries on from them. You can't turn it off while a ship is under way.
- On, main becomes read-only and each member gets their own worktree, made from main's latest commit. Commit what's in main first: uncommitted changes there stay visible but can't be edited.
With live main on and a GitHub repository, shipping is the only way work reaches GitHub: Changes and Review don't offer Push, Open pull request or Merge into main, and the same requests from the chat or an agent are refused.
Your agent keeps up with teammates
Agents hear about teammates' work without being asked. When your agent reads or saves a file a teammate's unshipped worktree also changes, it's told whose work it is; when live main leaves your work out because it collides with work that came first, it's told to fix its side now. It does, and the save puts your work back in live main. It asks you only when fitting both would undo what one of them is for.
Ship from the workspace
At the top of the right-hand panel, above Files, a bar shows where your own work stands: In live main, Ready to ship, Doesn't fit yet (hover it for what it collides with), PR open with your pull request's number, or Shipping…. Beside it are Mark ready and Ship, and under it live main's own state with Open live main. Choose the arrow at its end to open everything the Team panel shows, without leaving your chat.
The Team panel
Choose Board in the top bar, or open the bar at the top of the right-hand panel. Beside the board (above it on a narrow window), the Team panel shows:
- Live main and its state: Checks passed, Checks failed, Live main is rebuilding, or Updates while the workspace runs while it's stopped. Open live main opens the combined version, read-only, with its files, search, terminals and the Browser tab.
- Everyone's work, in live main's order: each member worktree with whose it is, Laptop (and when it last synced) or Browser, its pull request, and where it stands:
- In live main, or In live main · checks fail on it when the repository's checks fail because of its work.
- Doesn't fit yet, with the file, the functions and whose work it collides with. The newer work adapts; its agent is told.
- Nothing to combine yet when it has nothing beyond main.
- Waiting for its files to reach the workspace, Couldn't be read for live main, or Not included yet: live main holds 16.
- Ready: a switch on your own worktree. Turning it on says your work should ship, as your pull request. You can turn it off until it ships.
Every member can read the Team panel. Only editors can mark their own work ready or ship.
Ship
- Ship into picks the branch the pull requests go into: the repository's default branch unless you choose another, such as
dev. - Ship all ready ships every ready worktree that is in live main. Work that doesn't fit yet stays behind, still ready.
- Ship mine ships your own worktree, ready or not. Ship in the bar at the top of the right-hand panel does the same, into the default branch.
CoDev asks you to confirm and lists what ships, in order. Then, in the background:
- When you ship into the default branch, CoDev first brings GitHub's latest into the workspace and rebuilds live main, since others may have pushed in the meantime.
- For each worktree, in live main's order, it commits the worktree's uncommitted work as its member, pushes its branch, and opens a pull request as that member, with their own GitHub account. When a member hasn't connected GitHub, the person shipping opens it for them, with a
Co-authored-byline crediting them. - That's where CoDev stops: it doesn't merge them. Someone reviews and merges each pull request on GitHub, as with any other pull request, ideally in live main's order. CoDev keeps watching them until they merge.
Shipping needs a GitHub repository. A sleeping workspace starts when you open the board, choose Ship, or click in the Team panel. You can't start a second ship while one is under way; Cancel ship in the Team panel stops the one under way (or codev ship cancel <workspace>).
Follow a ship
The Team panel lists the latest ship's pull requests in live main's order, each with its link and where it stands: Waiting to open, Open: merge it on GitHub, Merged, Needs a fix or Stopped.
- A person merges. Merge each pull request on GitHub once it's reviewed and its checks pass; GitHub's reviews, checks and merge queue apply as for any pull request. The ship is done once every one has merged.
- Behind the target branch, a pull request is brought up to date for you, so it stays ready to merge.
- If a pull request stops merging cleanly (someone changed the target branch meanwhile), it goes back to its member's agent, which merges the target in and fixes the conflict. CoDev pushes the fix, and it's ready to merge again. For a branch other than the default, merge the target into the worktree yourself.
- A pull request closed on GitHub stops the ship there. Fix it, then ship again.
- A pull request CoDev can't read on GitHub for half an hour (its repository was renamed or deleted, or its member's GitHub access changed) stops the ship too.
- Cancel ship stops CoDev watching the ship's pull requests, so a new ship can start. Pull requests it opened stay open on GitHub, to merge or close there.
- After each merge, the merged work leaves its worktree (newer work stays), the worktree is no longer marked ready, and live main rebuilds.
Ship from Claude Code or Codex
With CoDev connected to your own agent (see Use CoDev from Claude Code or Codex), you can ask it to:
- show live main and where everyone's work stands (
codev_live_main); - mark your work ready (
codev_mark_ready); - ship everything ready, or only your own work (
codev_ship); - cancel the ship under way (
codev_cancel_shipin ChatGPT and Claude; your local agent runscodev ship cancel).
Marking ready and shipping need the connector's workspace edit access. The workspace panel in ChatGPT and Claude also has a read-only Live main tab.