Multi-agent workflow
M8Shift now supports a configurable roster with more than two agents, while keeping a single shared pen. That is the important distinction:
- shipped: N agents can be named in
--agents, and a turn can hand off to any other roster member; - still degree 1: only one agent writes in the shared repository at a time;
- parallel feature work: use
m8shift-worktree.py, which creates isolated git worktrees and serializes integration through one integration pen.
python3 m8shift.py init --agents claude,codex,gemini
python3 m8shift.py next claude
python3 m8shift.py append claude --to codex --ask "Implement the parser." --done "Specified it."
python3 m8shift.py next codex
python3 m8shift.py append codex --to gemini --ask "Review implementation." --done "Implemented parser."🟣 N-agent roster · one shared pen
Roles are conventions
The core CLI records handoffs, asks, done summaries, files, branches, commits, tests, and custom fields. It does not enforce role permissions or dependency graphs. If you need an architect/reviewer/integrator split, write that contract into the --ask, --next, task ledger, or protocol prompt.
Multi-vendor fleets
Since v3.61.0 the runtime companion can bootstrap and supervise a whole roster batch declaratively. Roster identities are data, not a fixed pair: managed provider launches dispatch through the vendor-neutral m8shift.agent-cli-adapter.v1 registry (launch_argv / stop / resume / health), Codex and Claude migrated behind adapters byte-identically, and a registered Gemini validated stub proves a third vendor can join without a core change. fleet apply stays holder-attributed through core roster add, fleet stop never removes membership, and fleet supervise --detach keeps the batch alive through a native service backend — still one shared pen. See the CLI reference.
When you need real parallelism
Use the worktree companion for isolated branches:
python3 m8shift-worktree.py claim feature-parser codex --base main
python3 m8shift-worktree.py status
python3 m8shift-worktree.py integrate feature-parser claude --into main --to codexThe companion keeps feature work isolated and still serializes the merge/integration step. It does not turn one shared directory into a safe multi-writer workspace.