Skip to main content
A team is a coordinator agent with a roster of member agents. These commands manage the roster on an existing agent — there are no roster flags on vetta agent create, so a team is made in two steps.

Commands

--member is repeated once per member on all three writes; it is not a positional argument.

set

Each --member is name@version, a bare name, an agt_ id, or self. The name spelling is resolved here against your org’s agents — the wire only ever carries { type: "agent", id, version? }. Pinning by version keeps the team’s behavior reproducible as members evolve. Omit the version and the server pins the member’s current version at save; it does not float, and what comes back always carries an explicit pin. set replaces the roster outright and is the only one that takes --board, which gives the team a shared board. add and remove keep everything else about the roster as it stands, including its board setting. Removing the last member clears the roster to null — an empty coordinator is not a team. Every one of these is a read-modify-write of one agent under expected_version, so two people editing a roster from two terminals cannot silently overwrite each other.
--member advisor:<model> is accepted here and then refused by the API: advisor roster entries are not yet served. See Coordinator.

add and remove

add skips a member already on the roster rather than duplicating it. remove matches on identity — the same agt_ id, or self — so it does not matter which spelling you used to add it.

show

That is the roster exactly as the wire carries it — a bare agt_ string in a roster you wrote is normalised to the object form before it is stored, so there is only ever one shape to read. null means the agent is not a coordinator. A team coordinates two ways: delegation, and the shared board that --board turns on. See vetta board for reading and moving its cards, and Context & budgets for how spend flows across a team.