Getting started

team is a small command-line tool with no runtime dependencies. A project declares its team in .agents/team.yaml: the seats, the model each one runs, how each agent signs its work, the rules it works under, the folders it may touch. Commands then check that file against a machine, a session and a history, and build and watch the team itself. It runs teams in herdr.

Install

Node 22 or later runs the built command.

npm install -g team       # or run it without installing: npx team
team --version            # 0.3.0

The file is private to each clone

team init keeps .agents/team.yaml out of git through .git/info/exclude, never by editing .gitignore: a public repository shouldn't carry its roster. A fresh clone therefore has no team file. Run team init to write one, or team init --restore to bring back the copy you last approved on this machine. A file you receive from someone else runs nothing until you approve it yourself.

Your first team in five minutes

mkdir hello && cd hello && git init
team init                  # the owner: writes .agents/team.yaml, private to this clone
$EDITOR .agents/team.yaml  # name your seats — the example above is a working file
team approve               # the owner: read the file it prints, then type the seat count
team doctor                # what this machine still needs
team up --dry-run          # every command it would run, and every refusal
team up                    # the owner: starts the session and its seats

team init writes a skeleton, one seat and lots of comments; it prints how the file stays private, and leaves your first commit as a commented # since: line. team approve prints the whole file back and asks you to type how many seats it holds, so no file approves itself unnoticed. Then doctor says what is missing on this machine, up --dry-run shows every command the launch would run — and up starts the team, from the owner's terminal outside herdr.