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/
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.