---
title: "overlane tokens report"
description: "Where tool-call tokens went, by category, with the terse command that replaces each"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.overlane.app/llms.txt
> Use this file to discover all available pages before exploring further.

# overlane tokens report

{/* Generated by apps/docs/scripts/generate.mjs (CLI pages from the command registry in packages/cli). Do not edit; run `pnpm --filter @overlane/docs gen`. */}

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

```sh
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

```sh
overlane tokens report --since 7d
overlane tokens report --transcript ~/.claude/projects/x/session.jsonl --top 5
```

## Behavior

- 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.

```json
{
  "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](/cli/#exit-codes) for the status the process returns.

Source: https://docs.overlane.app/cli/tokens-report/index.mdx
