TeamAPI latest
On this page
  1. Install
  2. Quick start
  3. Commands
  4. The TeamAPI toolchain
  5. License
TeamAPI

@jgalego/teamapi

npm CI Node License: MIT

Who owns this? Just curl your org.

Write your org as Team API as Code — one teamapi.yml per team declaring services, roles, members, interactions and cognitive load, reviewed in pull requests and versioned in git — and teamapi turns it into organigrams, org-health checks, a REST API with a live dashboard, an MCP server for LLM assistants, a chat persona per team, trend reports over your git history, and config for tools like CrewAI and Backstage.

Install#

npm install -g @jgalego/teamapi

Quick start#

teamapi init my-org                       # scaffold a whole org repo: config, CI, first teams
teamapi validate examples/acme-org
teamapi render examples/acme-org --scope topology
teamapi serve-api examples/acme-org --port 3000   # REST API + dashboard at /dashboard
teamapi serve-mcp examples/acme-org       # point Claude Desktop/Code at this command
teamapi chat examples/acme-org --team stream-checkout --ask "is payments overloaded?"

<patterns> in every command accepts a file, a glob, or a directory to auto-discover every teamapi.yml/.yaml under it — or comes from teamapi.config.yml so the everyday commands take no arguments at all.

Commands#

Author and validate

Command Purpose
teamapi init [dir] Scaffold a whole org repository: config, CI workflow, first teams
teamapi scaffold <id> --type <type> --out <file> Generate one minimal, schema-valid document
teamapi validate <patterns...> Resolve every $ref transitively; report unresolved refs and conflicts
teamapi fmt <patterns...> [--check] Rewrite documents into canonical form (comment-preserving)
teamapi migrate <patterns...> Bring documents up to the latest teamApiVersion
teamapi schema Print the document JSON Schema for editors and CI

Check the org's shape

teamapi assess <patterns...> combines every check into text, JSON, HTML or SARIF, with optional baseline comparison.

Command Purpose
teamapi gaps <patterns...> Report accountability holes between teams — unowned event contracts, vacant seats, unowned agents
teamapi policy <patterns...> Check declared policies[], and report the ones nothing enforces
teamapi topology <patterns...> Report Team Topologies design smells — overrunning collaborations, inverted platform flow
teamapi shadow-ai <patterns...> --scan <dir> Report AI adoption found in repositories against what teams declare in agents[]

The individual checks take --format text|json|sarif. assess also supports a self-contained HTML report and --state <file> for stable new/resolved finding comparison. See the evaluation guide for a bounded adoption workflow.

See and track it

Command Purpose
teamapi render <patterns...> --scope topology|hierarchy|context-map|org-hierarchy Render a Mermaid/DOT diagram
teamapi diff <patterns...> --against <ref> Diff the resolved org graph against a git revision
teamapi history <patterns...> --period week Trends over git history: cognitive load, agent adoption, supervision, churn
teamapi digest <patterns...> [--webhook <url>] Gaps/policy/topology findings and what moved since last run, to Slack or email

Serve it

Command Purpose
teamapi serve-api <patterns...> REST API + dashboard; opt-in --metrics, --mcp, --embeddings, --propose-to, --watch
teamapi serve-mcp <patterns...> MCP server over stdio, for Claude Desktop/Code
teamapi chat <patterns...> --team <id> [--ask <q>] Chat as a team or member — Anthropic or any OpenAI-compatible endpoint

Connect it to everything else

Command Purpose
teamapi import github-org|backstage|okta|slack|csv <arg> --out <dir> Bootstrap documents from the systems an org already has
teamapi generate crewai|backstage|paperclip|codeowners|agents-md|port|otel <patterns...> --out <dir> Generate config for another tool from the org graph
teamapi apply <patterns...> --org <github-org> [--yes] Reconcile GitHub teams/memberships (plan by default)
teamapi apply-to slack|okta|pagerduty <patterns...> [--yes] Reconcile membership in Slack usergroups, Okta groups, PagerDuty
teamapi slack-sync <patterns...> [--yes] Set each declared Slack channel's topic to name the owning team
teamapi okta-drift / pagerduty-drift / paperclip-drift Read-only drift reports against live systems
teamapi doctor github|slack|pagerduty|okta|paperclip Check a live integration: auth, the read, field shapes, pagination

See teamapi.dev (or the main README) for the full walkthrough, rendered diagrams, REST/MCP reference, and the extended spec.

The TeamAPI toolchain#

One org graph, seven doors into it — install only the ones you need:

Package What it does
@jgalego/teamapi (this package) The CLI — validate, diagram, check, import, reconcile, serve and chat with your org
@jgalego/teamapi-core The engine: $ref resolution, the org graph, scoring, checks, diagrams, generators
@jgalego/teamapi-schema Zod schemas and TypeScript types for the extended spec
@jgalego/teamapi-rest-api REST API, live dashboard, Swagger UI, Prometheus metrics
@jgalego/teamapi-mcp-server The org graph as MCP tools for LLM assistants
@jgalego/teamapi-chat Chat as a team or member — Anthropic or any OpenAI-compatible endpoint
@jgalego/teamapi-backstage Live Backstage catalog entity provider

Docs, examples and the extended spec: teamapi.dev · github.com/JGalego/TeamAPI

License#

MIT