ClaudeCode.Usage (ClaudeCode v0.36.3)
View SourceToken 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
Types
@type cache_creation() :: %{ ephemeral_5m_input_tokens: non_neg_integer(), ephemeral_1h_input_tokens: non_neg_integer() }
@type server_tool_use() :: %{ web_search_requests: non_neg_integer(), web_fetch_requests: non_neg_integer() }
@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
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}
@spec parse_cache_creation(map() | nil) :: cache_creation() | nil
Parses a cache_creation sub-map from CLI JSON.
@spec parse_server_tool_use(map() | nil) :: server_tool_use() | nil
Parses a server_tool_use sub-map from CLI JSON.