# Claude Session Data Schema Reference

> Claude Code session log schema — JSONL record types, message structure, tool call/result pairing, subagent file locations, team session layout, task/plan/team configuration paths. Use when parsing ~/.claude/projects/**/*.jsonl files, writing PostToolUse hooks that measure response sizes, building session analyzers, or any agent that reads or queries Claude session transcripts.

- Skill: `jamie-bitflight/claude-session-data-schema-reference` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add jamie-bitflight/claude-session-data-schema-reference`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jamie-bitflight/claude-session-data-schema-reference/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: Jamie-BitFlight (https://skillmd.com/u/jamie-bitflight)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/jamie-bitflight/claude-session-data-schema-reference

---


# Claude Code Session Log Schema

Reference skill for the JSONL session log format written by Claude Code under `~/.claude/projects/`.

All claims in the reference are sourced from direct JSONL file inspection and verified against the
LM Assist TypeScript source. No fields are inferred.

## When to Load

Load `./references/schema.md` when you need:

- Directory structure and project-key encoding rules
- Complete record type discriminator (`system`, `user`, `assistant`, `result`, `progress`, `summary`, `file-history-snapshot`)
- Field-level schema for each record type
- Tool call / tool result pairing algorithm
- Subagent and team session file naming conventions
- Task, plan, and team configuration paths
- Hook integration — how `PostToolUse` `tool_response` maps to `tool_result.content`
- What is NOT in the logs (per-tool token costs, streaming events, hook records, per-tool timing)

## Source

Schema verified 2026-03-24. Source reference: `./references/schema.md`.

