Packages
claude_code
0.36.3
0.36.5
0.36.4
0.36.3
0.36.2
0.36.1
0.36.0
0.35.0
0.34.0
0.33.1
0.32.2
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.1
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Claude Agent SDK for Elixir – Build AI agents with Claude Code
Current section
Files
Jump to
Current section
Files
lib/claude_code/history/session_info.ex
defmodule ClaudeCode.History.SessionInfo do
@moduledoc """
Metadata about a Claude Code session, extracted from session file stat + head/tail reads.
This struct provides rich session listing without requiring full JSONL parsing,
matching the Python SDK's `SDKSessionInfo` type.
## Fields
* `:session_id` - UUID of the session
* `:summary` - Display title (`custom_title || summary || first_prompt`)
* `:last_modified` - Milliseconds since epoch
* `:file_size` - File size in bytes
* `:custom_title` - User-set custom title, if any
* `:first_prompt` - First meaningful user prompt (truncated to 200 chars)
* `:git_branch` - Git branch the session was on
* `:cwd` - Working directory of the session
"""
use ClaudeCode.JSONEncoder
defstruct [
:session_id,
:summary,
:last_modified,
:file_size,
:custom_title,
:first_prompt,
:git_branch,
:cwd
]
@type t :: %__MODULE__{
session_id: String.t(),
summary: String.t() | nil,
last_modified: integer(),
file_size: integer(),
custom_title: String.t() | nil,
first_prompt: String.t() | nil,
git_branch: String.t() | nil,
cwd: String.t() | nil
}
end