Skip to main content

Profile Editor

Status: πŸ§ͺ Beta

A project profile (.agent-teams/project.profile.yml) defines the technology context, path mappings, commands, and base agent overrides for a workspace. It feeds into the composition engine when resolving kit placeholders and applying project-level defaults.


Opening the Profile Editor​

Dashboard β†’ sidebar β†’ Profile Editor

If no profile exists yet, the dashboard home page shows a Configure project profile prompt. Click it to open the editor directly.


Filling Out the Profile​

The editor groups its settings into seven collapsible accordion sections. Click any section header to expand or collapse it β€” each header shows a live summary of the current values so you can scan the whole profile at a glance without opening every panel.

Basic Information​

FieldDescription
Project IDUnique identifier for this project (kebab-case)
NameHuman-readable project name
VersionProject version string
TypeProject type: frontend, backend, fullstack, monorepo, or library

Technologies​

List the technologies your project uses. These are used in template conditionals ({{#if technology:react}}).

  • Click Add technology to add an entry manually
  • Click Detect to have the extension scan your workspace and suggest technologies automatically

Paths​

Named path mappings used in template variables ({{path:src}}).

  • Add key-value pairs (e.g. src β†’ src/, tests β†’ tests/, components β†’ src/components/)
  • Click Detect to auto-fill paths based on your project structure

Commands​

Named command mappings used in template variables ({{command:build}}).

  • Add key-value pairs (e.g. build β†’ pnpm build, test β†’ pnpm test, lint β†’ pnpm lint)
  • Click Detect to auto-fill based on your package.json or other config files

Context Packs​

Select which context packs are active for this project. These are embedded in every agent that belongs to this project unless overridden at team level.

Use the Preview button to simulate the budget algorithm before syncing. The preview shows:

  • A progress bar with characters used vs the configured agents_md_budget (default 8 000 chars)
  • Inlined packs (green) β€” essential packs always inlined; standard packs inlined until the budget is exhausted
  • Referenced packs (amber) β€” standard packs that overflow the budget, plus all reference packs; listed in the root context file as headings without full content
  • A separate GitHub Copilot note β€” Copilot has no budget limit and copies all selected packs as individual files under .github/context/

The preview refreshes automatically whenever you check or uncheck a pack while the panel is open.

Sync Targets​

Choose which AI tools this project's agents should be synced to. Each target generates its output in the expected location for that tool:

TargetOutputDescription
Claude Code.claude/agents/ + AGENTS.mdPer-agent files and a root context file for Claude Code
CodexAGENTS.mdRoot context file for OpenAI Codex
Gemini CLIGEMINI.mdRoot context file for Gemini CLI. Context packs are inlined by priority (essential always, standard up to budget, reference as links)
OpenAI Agents SDKAGENTS.mdRoot context file for OpenAI Agents SDK. Same inlining behaviour as Gemini
GitHub Copilot.github/agents/Per-agent markdown files and a Copilot instructions file

Each target has an optional Add to .gitignore toggle that appears when the target is enabled. Use it to exclude that target's output from version control β€” useful when you want generated files to stay local.

Gitignore​

Toggle this option to add the .agent-teams/ configuration directory to your project's .gitignore. Useful when you want to keep your agent configuration local to your machine.


Saving the Profile​

Click Save at the bottom of the editor. The profile is written to .agent-teams/project.profile.yml. Changes are picked up automatically on the next sync.


Import / Export​

The Import / Export page in the dashboard manages both the global agent catalog (stored in VS Code global storage) and the project profile. This is separate from saving the profile β€” it lets you back up and share configuration across workspaces.

Catalog (JSON)​

ActionDescription
ExportSaves the full catalog to a JSON file you choose
ImportMerges entries from a JSON file into the existing catalog (non-destructive)
ResetPermanently deletes the entire catalog β€” use with caution

Profile (ZIP)​

ActionDescription
Export Profile as ZIPPackages the entire .agent-teams/ directory β€” agents, teams, context packs, skills, and profile config β€” into a portable ZIP file
Import Profile from ZIPRestores a previously exported ZIP into the current workspace. Files that already exist prompt for confirmation before being overwritten

Reference: Profile YAML Format​

The dashboard writes and reads this format automatically. You can also open .agent-teams/project.profile.yml directly in VS Code.

project:
id: my-project
name: My Project
version: "1.0.0"

technologies:
typescript: true
react: true

paths:
src: src/
tests: tests/
components: src/components/

commands:
build: pnpm build
test: pnpm test
lint: pnpm lint

context_packs:
- project-conventions

sync_targets:
- claude_code
- gemini

gitignore_targets:
- gemini

overrides:
vitest-worker:
context_packs:
- testing-setup

Fields​

FieldRequiredDescription
project.idβœ…Project identifier (kebab-case)
project.nameβœ…Project display name
project.versionβœ…Version string
technologiesβ€”Technology flags for template conditionals ({{#if technology:react}})
pathsβ€”Named path mappings for template variables ({{path:src}})
commandsβ€”Named command mappings for template variables ({{command:build}})
context_packsβ€”Default context packs applied to all agents in this project
sync_targetsβ€”Platforms to sync to. Valid values: claude_code, codex, gemini, openai, github_copilot. Defaults to claude_code and github_copilot if omitted
gitignore_targetsβ€”Subset of sync_targets whose output paths are added to .gitignore
overridesβ€”Per-agent field overrides applied at project level (lower priority than team overrides)