ClaudeCode.Usage (ClaudeCode v0.36.3)

View Source

Token usage statistics from the Claude API.

Matches the BetaUsage type from the Anthropic SDK. Parsed from CLI JSON payloads in both AssistantMessage and ResultMessage.

Fields

  • :input_tokens - Number of input tokens consumed
  • :output_tokens - Number of output tokens generated
  • :cache_creation_input_tokens - Tokens used to create cache entries
  • :cache_read_input_tokens - Tokens read from cache
  • :server_tool_use - Server-side tool usage stats (web search/fetch)
  • :service_tier - Service tier used ("standard", "priority", "batch")
  • :cache_creation - Ephemeral cache creation token breakdown
  • :inference_geo - Geographic region where inference ran
  • :iterations - Per-iteration usage breakdown
  • :speed - Inference speed mode ("standard", "fast")

Summary

Functions

Parses a usage map from CLI JSON into a t/0 map.

Parses a cache_creation sub-map from CLI JSON.

Parses a server_tool_use sub-map from CLI JSON.

Types

cache_creation()

@type cache_creation() :: %{
  ephemeral_5m_input_tokens: non_neg_integer(),
  ephemeral_1h_input_tokens: non_neg_integer()
}

server_tool_use()

@type server_tool_use() :: %{
  web_search_requests: non_neg_integer(),
  web_fetch_requests: non_neg_integer()
}

t()

@type t() :: %{
  input_tokens: non_neg_integer(),
  output_tokens: non_neg_integer(),
  cache_creation_input_tokens: non_neg_integer(),
  cache_read_input_tokens: non_neg_integer(),
  server_tool_use: server_tool_use() | nil,
  service_tier: String.t() | nil,
  cache_creation: cache_creation() | nil,
  inference_geo: String.t() | nil,
  iterations: [map()],
  speed: String.t() | nil
}

Functions

parse(data)

@spec parse(map() | nil) :: t()

Parses a usage map from CLI JSON into a t/0 map.

Examples

iex> ClaudeCode.Usage.parse(%{"input_tokens" => 100, "output_tokens" => 50})
%{input_tokens: 100, output_tokens: 50, cache_creation_input_tokens: 0,
  cache_read_input_tokens: 0, server_tool_use: nil, service_tier: nil,
  cache_creation: nil, inference_geo: nil, iterations: [], speed: nil}

parse_cache_creation(arg1)

@spec parse_cache_creation(map() | nil) :: cache_creation() | nil

Parses a cache_creation sub-map from CLI JSON.

parse_server_tool_use(data)

@spec parse_server_tool_use(map() | nil) :: server_tool_use() | nil

Parses a server_tool_use sub-map from CLI JSON.