Configuration
Everything lives in one YAML file. Here's every field and option.
On this page
The .teamrc.yaml file
This is your team definition. It lives in your project root and describes your entire team. You can edit it directly, or let the web UI and CLI manage it. Here's a complete example:
version: 1
name: my-project
# Optional: link to a relay team
teamId: team_abc123
relay: https://relay.teamrc.dev
platforms:
- claude-code
- cursor
members:
- name: frontend
role: Frontend development
soul: |
You are the frontend specialist...
skills:
- code-style
- testing
- name: reviewer
role: Code review
skills:
- code-review
skills:
- id: code-style
title: Code Style Guide
alwaysApply: true
body: |
Follow the project's existing patterns.
Use TypeScript strict mode.
- id: testing
title: Testing Requirements
globs:
- "*.test.ts"
- "*.spec.ts"
body: |
Write tests for all new functions.
- id: code-review
title: Code Review
body: |
Review for correctness, readability,
and security vulnerabilities.
Top-level fields
version
Always
1
. Reserved for future schema changes.
name
Your team name. 1-64 characters, alphanumeric with spaces, hyphens, and underscores.
teamId
Optional. The relay team ID. Set automatically by
init
and
join
.
relay
Optional. Relay server URL. Defaults to the URL in
~/.teamrc/config.json
.
platforms
Optional. List of platforms to target. If omitted, all detected platforms are used.
members
List of team members (see below).
skills
List of team skills (see below).
Member fields
name
Required. Lowercase, hyphenated identifier. Used as the filename (e.g.
trc-frontend.md
).
role
Required. One-line description of what the agent does.
description
Optional. Capability-based description used by AI platforms for task routing.
Pattern: "[What it does]. Use when [trigger]."
Auto-populated from the template catalog. Falls back to role if absent.
soul
Optional. Markdown instructions that define the agent's identity and behavior.
This is the same concept referred to as "instructions" elsewhere in the guide.
skills
Optional. List of skill IDs to assign to this member. Must reference skills defined at the team level.
Skill fields
id
Required. Unique identifier. Used as a filename.
title
Optional. Human-readable label.
description
Optional. Short explanation of what the skill does.
body
Required. The instructions, written in markdown. You can also reference an external file with a source path.
alwaysApply
Optional boolean. When true, applies to all agents automatically.
globs
Optional list of file patterns. The skill activates only for matching files.
Global config (~/.teamrc/)
The
~/.teamrc/
directory stores machine-level configuration:
Project vs global scope
Teams can be scoped to a project (default) or global.
.teamrc.yaml
in the project root. Config files written to the project directory.
This is the default for most workflows.
~/.teamrc/team.yaml
. Config files written to global platform directories
(e.g.
~/.claude/agents/
). Applies to all projects on the machine.
Use
--global
flag.
Project scope takes precedence when both exist. The CLI resolves scope automatically:
if
.teamrc.yaml
exists in the current directory, it uses project scope.
Environment variables
TEAMRC_RELAY
Override the relay server URL. Takes precedence over config.json and .teamrc.yaml.
Validation limits
The relay enforces these limits for the web UI and sync endpoints:
The local CLI can accept larger YAML files in some cases. But anything sent to the relay must fit within these limits.