Agent Teams: stable discovery manifest for external monitoring tools
Summary
Agent Teams uses ~/.claude/teams/{team-name}/config.json as its internal coordination file. External tools that monitor Claude Code sessions (VS Code extensions, dashboards, IDE integrations) want to discover and group Agent Teams sessions, but config.json has several properties that make it unreliable as a monitoring contract.
Problem
Four specific issues with using config.json for external monitoring:
- No version field — external parsers can't gate on schema changes or fail gracefully when the format evolves
- No teammate session IDs — config.json has
agentId(name@teamformat) but not the UUID that maps to the teammate's JSONL file. Tmux-mode teammates get separate top-level JONLs, but the only way to associate them with a team is scanning every JSONL and reading the first record to check forteamName/agentNamefields - Members removed on completion — instead of marking agents as completed, they're removed from the members array. An external monitor that polls config.json loses the full team roster once agents finish, making completed teams look empty
- No lifecycle timestamps — no
completedAt,exitStatus, orupdatedAtfields to track when agents finished or how
Proposed changes
Any of these would significantly improve external monitorability:
- Add a
versionfield to config.json (or emit a separate stable manifest) - Include teammate session UUIDs in the member entries (the UUIDs exist — they're used for the JSONL filenames)
- Retain completed members with
completedAt/exitStatusinstead of removing them - Add an
updatedAttimestamp so monitors can skip unchanged files
Context
We build Serac, a VS Code extension that monitors Claude Code sessions. Source is at github.com/snowmeltio/serac. We currently support multi-agent team grouping via sidecar manifests (for MCP orchestrators like Cornice) and want to extend this to Agent Teams. The current config.json schema requires heuristic JSONL scanning and shadow state caching to work around the limitations above.
Environment
- Claude Code v2.1.87
- macOS (darwin arm64)
- Tested both
in-processandtmuxteammate modes
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗