Token Usage & Cost Tracking
⚠️ Experimental — Squad is alpha software. APIs, commands, and behavior may change between releases.
Squad can track token usage and estimated cost for each agent spawn, roll that data up by session, and expose it through orchestration logs, terminal summaries, and telemetry backends.
Overview
- Squad tracks token usage (input/output tokens) and estimated cost per agent spawn
- Usage data is recorded in orchestration logs and available via
squad costCLI - Optional budget limits can be configured per agent or per session
How It Works
- The
CostTrackerclass (packages/squad-sdk/src/runtime/cost-tracker.ts) accumulates token data - Each orchestration log entry includes a Token usage row
- OTel metrics (
squad.tokens.input,squad.tokens.output,squad.tokens.cost) are emitted when telemetry is enabled
The orchestration log template stores usage in a markdown table row like this:
| **Token usage** | 12,450 in / 3,200 out — $0.0234 |
Viewing Costs
squad cost # current session costs
squad cost --all # all historical costs
squad cost --agent fenster # costs for specific agent
Example output:
=== Squad Cost Summary ===
Total input tokens: 12,450
Total output tokens: 3,200
Estimated cost: $0.0234
--- By Agent ---
fenster: 12,450in / 3,200out ($0.0234) [1 turns, model: claude-sonnet-4.5]
--- By Session ---
session-abc123: 12,450in / 3,200out ($0.0234) [1 turns]
Budget Configuration
import { defineSquad, defineAgent, defineBudget } from '@bradygaster/squad-sdk';
export default defineSquad({
defaults: {
budget: defineBudget({
perAgentSpawn: 50000,
perSession: 500000,
warnAt: 0.8,
}),
},
agents: [
defineAgent({
name: 'fenster',
role: 'Core Dev',
budget: defineBudget({ perAgentSpawn: 100000 }),
}),
],
});
perAgentSpawnlimits an individual agent invocationperSessionlimits the total budget for the coordinator sessionwarnAtemits warnings when usage reaches a fraction of the configured limit
OTel Integration
- Token metrics are exported as OpenTelemetry counters when telemetry is enabled
- Compatible with Aspire dashboard, Grafana, and any OTel-compatible backend
- Metrics:
squad.tokens.input,squad.tokens.output,squad.tokens.cost