Skip to main content
Current release: 1.11.0 · What’s New → Agent Journal is a Java library for recording agent runs as typed events and analyzing them after execution. It stores immutable execution facts separately from derived analysis, and it can project Claude Code, Gemini CLI, Grok, Codex, Antigravity, and Junie results into a shared journal model. Release 1.11.0 records Claude Code and Codex sub-agents as runs of their own, linked to the spawning run and marked track=subagent, so a parent’s files hold the main loop only and nothing is counted twice. It adds recordOnce for recording an execution at most once, withSessionBaseline for the cost of a later prompt in a multi-prompt Claude Code session, corrects Claude Code token and turn counting, ends a recorder closed without finish() as CRASHED, and stamps the event and analysis streams with the version that wrote them. Jackson moves to 2.22.3 and 3.2.3 for four September 2026 advisories. Several stored values change meaning; see the sub-agent capture guide and the release notes. Release 1.10.1 aligns claude-code-capture with Claude Agent SDK 1.7.0 and gemini-cli-capture with Gemini CLI SDK 0.30.0. Release 1.10.0 adds junie-cli-capture for Junie session traces, bringing six CLI runtimes into the portable trace and cost schema. Agent Client’s Junie provider is wired to this capture module from Client 0.30.0. See the Junie integration release notes. Release 1.8.0 adds tool-trajectory capture for Grok, Codex, and Antigravity, each parsed from that CLI’s own durable JSONL stream into ordered tool and cost events. The three new modules carry no vendor SDK dependency and run on Java 17. The change is additive on the existing event and trace contracts.

Execution journal

LLM calls, tool calls, state changes, metrics, git operations, and custom events in append-only JSONL.

Derived analysis

Cost attribution and step outcomes in a separate analysis.jsonl stream.

Evaluation seam

EvalSubject adapters expose recorded behavior to evaluators such as Agent Judge.

Modules

journal-core uses Jackson 2.22.3 and the SLF4J API; claude-code-capture also carries Jackson 3.2.3 through the Claude Agent SDK. Both versions clear CVE-2026-89407, CVE-2026-89425, CVE-2026-91776 and CVE-2026-91777. The Claude Code and Gemini CLI capture modules also depend on their respective Java SDKs, whose published bytecode requires Java 21.

Install

The seven released artifacts use the io.github.markpollack group ID and are available from Maven Central.

Documentation

Getting started

Record and persist a first run with journal-core.

Core concepts

Understand experiments, runs, event streams, analysis streams, feedback, and storage.

Capture SDK sessions

Project Claude Code, Gemini CLI, Grok, Codex, Antigravity and Junie results into Agent Journal.

Sub-agent capture

Claude Code and Codex sub-agents as linked runs: configuration, accounting, status and limits.

Analyze runs

Query generated journals with DuckDB.

API reference

Stable 1.11.0 entry points, events, storage operations, and capture options.
Journal files and trace files can contain prompts, tool inputs and results, file contents, and command output. Treat them as potentially sensitive operational data. JsonFileStorage is local file storage, not a multi-tenant security boundary.
  • Agent Workflow provides the separate workflow-journal integration module.
  • Agent Judge consumes evaluation subjects derived from recorded behavior.
  • Markov fingerprinting is one downstream analysis technique for tool-call sequences.

Source code

Agent Journal on GitHub (BSL 1.1)