Reads .overlane/state/token-ledger.jsonl (one JSON object per tool call: ts, tool, category, inChars, outChars, command) or, with –transcript, a Claude Code transcript (tool_use and tool_result pairs, Bash calls categorised by command: test, typecheck, wrangler, build, git, grep/sed/cat, curl, other). Prints the top categories by estimated tokens (characters / 4) with calls, average and the suggested replacement: grep, cat and sed to overlane code find, show, outline and refs; test, typecheck, build and wrangler to overlane exec; git status and log to overlane brief git. Output is plain text, one fact per line; –json prints the same facts as JSON. Exit 4 when nothing matches.
Usage
overlane tokens report [--since WINDOW] [--top N] [--transcript PATH]Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--since |
string | no | Only calls in this window: 7d, 12h, 30m, 2w or a date | |
--top |
string | no | 10 |
Categories to print (default 10) |
--transcript |
string | no | Read a Claude Code transcript (.jsonl) instead of the ledger |
Examples
overlane tokens report --since 7d
overlane tokens report --transcript ~/.claude/projects/x/session.jsonl --top 5Behavior
- Effect:
read(changes nothing). - Needs credentials: no. Uses the network: no.
- Supports
--dry-run: no. Accepts--force: no. - Machine-readable description:
overlane schema tokens report.
Result
With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.
{
"type": "object",
"properties": {
"source": {
"type": "string"
},
"since": {
"type": [
"string",
"null"
]
},
"calls": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"tokens": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"skipped": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"rows": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string"
},
"calls": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"inTokens": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"outTokens": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"tokens": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"avg": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"suggestion": {
"type": "string"
}
},
"required": [
"category",
"calls",
"inTokens",
"outTokens",
"tokens",
"avg",
"suggestion"
],
"additionalProperties": false
}
}
},
"required": [
"source",
"since",
"calls",
"tokens",
"skipped",
"rows"
],
"additionalProperties": false
}See exit codes for the status the process returns.