The major AI coding agentsβ€”Claude Code, OpenAI's Codex, and Mistral Vibeβ€”are writing exhaustive session logs to local disk, yet none of them officially document the file formats. This lack of transparency creates a black box for developers trying to understand agent behavior, particularly when sessions spawn sub-agents. Arthur, the developer behind the open-source tool Agent Standup, recently published a technical breakdown of these undocumented logs after reverse-engineering real session data from October 2026.

The Black Box of Local Logging

Claude Code stores sessions in ~/.claude/projects//.jsonl, where the folder name is derived from the project path. Each line is a JSON record with a type field indicating its purpose, such as user, assistant, or system. A critical gotcha for parsers is that token usage is duplicated across every content block within a single assistant message; failing to deduplicate by message ID results in inflated cost metrics. Furthermore, the end of a turn is explicitly marked by stop_reason: "end_turn", meaning silence does not equal completion.

Codex and Mistral Vibe Format Quirks

Codex writes one rollout file per thread in ~/.codex/sessions/YYYY/MM/DD/, using a session_meta record at the top to define the thread's origin and parent. Notably, sub-agents in Codex are often "guardian" processes for automatic reviews, which can flood session lists if not filtered. Mistral Vibe, specifically version 2.26, uses a dual-engine approach: a new event-sourced unified format and a legacy format. The new engine records sub-agent interactions via projection_delta events, while the legacy engine lacks timestamps, requiring readers to infer timing from file save intervals.

Key Takeaways

  • Claude Code's sub-agent reports changed in version 2.1.293 to use a SubagentHandback tool call, breaking simple text-based parsers.
  • Codex's App Server API offers an experimental way to list sub-agent threads, but reading session_meta directly is faster and requires no active process.
  • Mistral Vibe's log location is configurable via session_logging.save_dir, meaning hard-coded paths will fail for customized setups.
  • All three tools use JSONL formats that are undocumented and subject to change, requiring robust error handling and incremental parsing to avoid corrupting user history.

The Bottom Line

The absence of standardized logging formats across leading AI coding agents is a significant friction point for developer tooling. Until Anthropic, OpenAI, and Mistral commit to documenting these disk writes, third-party observability tools will remain fragile, relying on reverse-engineered assumptions that break with every minor version update.