Part of the TeamAI CLI Usage Guide.
teamai pull commits session and usage counts into the team repo, and teamai workflow commits run records. Turn that off with:
# teamai.yaml
usageReport: falseOne machine overrides it in ~/.teamai/config.yaml, and one workspace in its own config.yaml (see Member settings):
usageReportEnabled: falseteamai doctor says whether reporting is on and where that comes from.
If an automatic report is not confirmed, the data stays local. teamai status
shows auto-report: pending since <time> and suggests teamai pull --verbose
to retry and see why. Repeated failures keep the first timestamp. A successful
report, or a pull after reporting is disabled, clears the notice. Disabling
reporting keeps the local data. A retained usage file alone does not mean reporting failed.
See the team's week:
teamai digestββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Team AI Weekly Digest β
β 2026-10-05 β 2026-10-12 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π₯ Active members: 4
π Session trends (7d vs prior 7d):
Session success: 71% β 80% Β· 18 ended
Avg prompts/session: 6.2 β 5.4
Avg active duration: 12m β 9m
Avg LLM request cost (est.): $0.042 β $0.031
Cache read share: 40% β 55%
Correction rate: 18% β 11%
π Most Used Skills:
β
β
β
β
β
deploy-helper (42 uses)
β
β
β
β
β code-review (17 uses)
π Total skill invocations: 59
π§ Unique skills used: 2
π Session Highlights:
Fix duplicate project-level Hook injection...
π New Learnings This Week: 1
β’ Port conflict on local preview
π€ Session Autonomy (Human Intervention):
Team avg: 1.20 interventions/session (18 sessions, 22 interventions)
Breakdown: interrupt 8 Β· reject 6 Β· correction 8
By run mode: attended 15 Β· unattended 1 Β· not recorded 2 sessions
π¦ Session Outcomes (finished sessions):
runMode outcome sessions tokens/session interventions/session
attended pr 12 410.0K 6.1
attended learning 5 220.0K 3.0
attended none 31 95.0K 2.2
unattended pr 20 380.0K 0.4
not recorded none 7 120.0K 1.9
A session with a pull request and a learning is in both rows, so rows do not add up.
π¬ Lifetime Conversation & Token Usage:
Lifetime human prompts: 320
By run mode: attended 280 Β· unattended 8 Β· not recorded 32 prompts
Lifetime tokens: 1.2M (input 400.0K Β· output 80.0K Β· cache read 700.0K Β· cache write 20.0K)
By run mode: attended 1.1M Β· unattended 30.0K Β· not recorded 70.0K tokens
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Generated by teamai digest
With no reported data yet, the command prints No team usage data available yet.
The counts cover only your own sessions. A session teamai launched itself, such as a workflow step or a judge, counts in none of them, and a session of yours that a step continued counts only up to that step. A session your tool started for a skill-driven run, such as a subagent or a worktree task, still counts as yours: only its worktree or its teamai/<run>/β¦ branch shows where it came from.
Each session records its run mode, and stats/<member>.yaml splits the counts by it:
prompts: 430 # every prompt of your own sessions
attended:
prompts: 395 # recorded as attended
unattended:
prompts: 3 # recorded as unattended, such as your hooks in CIinterventions, prompts, tokens, and daily work the same way. What neither mode holds, here 32 prompts, was recorded without a mode: counts reported before teamai recorded modes, and sessions that recorded nothing after teamai was upgraded. The turns a session added since the last report count in the mode of its latest event. teamai digest and the dashboard show it as not recorded.
A session of yours is added to outcomes, by its run mode and by what it delivered, by the next report once it has been idle for 6 hours. An unattended session is also added by the teamai score --drain that ends its job, so an ephemeral runner reports its sessions:
outcomes:
attended:
pr: { sessions: 12, tokens: { input: β¦, output: β¦ }, interventions: 73 }
learning: { sessions: 5, tokens: { input: β¦, output: β¦ }, interventions: 15 }
none: { sessions: 31, tokens: { input: β¦, output: β¦ }, interventions: 68 }
unattended:
pr: { sessions: 20, tokens: { input: β¦, output: β¦ }, interventions: 8 }
notRecorded:
none: { sessions: 7, tokens: { input: β¦, output: β¦ }, interventions: 13 }| Outcome | What the session delivered |
|---|---|
commit |
Commits made with your git identity in the session's checkout, between its start and its last Stop |
pr |
The pull request of the last branch the session stopped on that holds one of those commits, open when a report looked it up. A Stop on a detached HEAD, as in a rebase, keeps the branch before it. Each report looks until it finds one, so one merged before the session is finished still counts. It uses the credentials deliver: pr uses; a lookup that fails leaves it out |
learning |
A learning teamai contribute recorded for the session (--session-id, else the agent's session) |
none |
Nothing of the above |
A session with a pull request and a learning is in both rows, so rows do not add up. Each session is added once: reported-outcomes.json, beside the other report baselines, flags it. Your first report on a release with outcomes adds none of the sessions already finished, since the release that recorded them kept no commit or learning of theirs. The report publishes counts only; the session id, commit shas, pull request URLs and learning ids stay in this machine's dashboard events.
A skill use is counted when the agent calls its skill tool, reads a skill's SKILL.md, or the prompt names the skill: /code-review at the start of the prompt, $code-review in Codex, /skill:code-review in Pi, @command://code-review in CodeBuddy. Only skills installed for the tool count, and each skill counts once per prompt. Paths such as /Volumes/External/project and URL components are not skill invocations. Previously recorded usage stays.