Skip to content

overlane tokens report

Where tool-call tokens went, by category, with the terse command that replaces each

Updated View as MarkdownOpen in ChatGPTOpen in Claude

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

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

Navigation

Type to search…

↑↓ navigate↵ selectEsc close

Overlane Agent

Ask about the docs. Answers are quoted from the pages, with links. This panel cannot change anything.

    Questions are answered in your browser from the docs index. Nothing you type here is stored or sent anywhere.