ClaudeCode.Types (ClaudeCode v0.16.0)
View SourceType definitions for the ClaudeCode SDK.
These types match the official Claude SDK schema for messages returned from the CLI with --output-format stream-json.
Summary
Types
@type cache_creation() :: %{ ephemeral_5m_input_tokens: non_neg_integer(), ephemeral_1h_input_tokens: non_neg_integer() }
@type message() :: %{ id: String.t(), type: :message, role: role(), content: [ClaudeCode.Content.t()], model: model(), stop_reason: stop_reason(), stop_sequence: String.t() | nil, usage: usage() }
@type message_content() :: String.t() | [ClaudeCode.Content.t()]
@type message_param() :: %{content: message_content(), role: role()}
@type model() :: String.t()
@type model_usage() :: %{ input_tokens: non_neg_integer(), output_tokens: non_neg_integer(), cache_creation_input_tokens: non_neg_integer() | nil, cache_read_input_tokens: non_neg_integer() | nil, web_search_requests: non_neg_integer(), cost_usd: float() | nil, context_window: non_neg_integer() | nil, max_output_tokens: non_neg_integer() | nil }
@type permission_mode() :: :default | :accept_edits | :bypass_permissions | :plan
@type result_subtype() ::
:success
| :error_max_turns
| :error_during_execution
| :error_max_budget_usd
| :error_max_structured_output_retries
@type role() :: :user | :assistant
@type server_tool_usage() :: %{ web_search_requests: non_neg_integer(), web_fetch_requests: non_neg_integer() }
@type session_id() :: String.t()
@type stop_reason() :: :end_turn | :max_tokens | :stop_sequence | :tool_use | nil
@type usage() :: %{ input_tokens: non_neg_integer(), output_tokens: non_neg_integer(), cache_creation_input_tokens: non_neg_integer() | nil, cache_read_input_tokens: non_neg_integer() | nil, server_tool_use: server_tool_usage() | nil, service_tier: String.t() | nil, cache_creation: cache_creation() | nil }