SyFI Trace Atlas
Trace assistant
Reading the public SYFI pool
357,161 agent steps across Claude & Codex — public, shareable.
Answers run real DuckDB/Python in a sandbox · code is shown
Coding-agent workloads in the wild

SyFI Trace Atlas

Real Claude Code and Codex sessions, organized by requests, agent steps, tokens, tool calls, cache behavior, and where time is spent.

Dataset snapshot

Distinct users
43
Sessions
4,265
Agent steps
357,161
model calls inside requests
Tool calls
432,510
Total input tokens
54.9B
Cached-read tokens
52.6B
96% served from cache
Append input tokens
2.34B
Total output tokens
186.9M

Provider split

Agent-step counts across 357,161 model calls.

357K STEPS
Claude 140,33839%
Codex 216,82361%

Collection window

First and latest observed rows in the public pool.

Date range
Sep 23 2025 — Jun 4 2026

Analysis figures

SyFI Trace Atlas · public trace pool
Provider cuts

Compare providers.

Provider-level sessions, requests, agent steps, tool use, cache reuse, context growth, and human waits.

Claude Codex Coming soon Same public trace, grouped by provider.
Claude 39% of steps
140,338
Current public-pool agent steps
Codex 61% of steps
216,823
Current public-pool agent steps
DeepSeekMoonshotGLMQwen Soon
More provider columns planned

Provider statistics

Grouped with the same taxonomy as the Atlas figures.
Session
one continuous trace of work, often spanning multiple requests or problems.
Request
one user input through the agent's final response.
Agent step
one model call inside a request.
User-initiated step
an agent step started by user input.
Tool-triggered step
an agent step started by a tool result.
higher is better lower is better Rows without arrows are descriptive totals, shares, or accounting fields.
Metric Claude Codex DeepSeekMoonshotGLMQwen
Trace facts sessions, requests & agent-step coverage
Coverage
Agent steps 140,338 steps 216,823 steps
Sessions 2,676 1,589
Distinct users 37 22
Collection window Oct 3 2025 — Jun 4 2026 Sep 23 2025 — Jun 4 2026
Requests 21,407 20,040
Tool-triggered steps 120,760 (86.0%) 195,268 (90.1%)
Models
Models represented 9 14
Top model Opus 4.7 (63.1%) gpt-5.5 (47.5%)
LLM generation tokens and timing per agent step
Token distributions
Total input tokens 28.5B tok 26.4B tok
Cached-read input tokens 27.3B tok 25.3B tok
Append input tokens 1.19B tok 1.15B tok
Avg total input / agent step 202,840 tok 121,907 tok
Avg cached-read input / agent step 194,361 tok 116,623 tok
Avg append input / agent step 8,479 tok 5,283 tok
Input by step trigger
User-initiated avg total input 275,716 tok 114,510 tok
User-initiated avg append input 36,212 tok 24,945 tok
Tool-triggered avg total input 191,083 tok 122,143 tok
Tool-triggered avg append input 3,998 tok 3,422 tok
Output tokens
Total output tokens 96.9M tok 90.1M tok
Avg output / agent step 690 tok 415 tok
Reasoning tokens 36.8M tok
Avg reasoning / reasoning step 239
Timing
Generation time p50 5.7s 5.8s
Generation time p90 25.8s 19.9s
Total generation time 574 h 567 h
Output decode throughput 46.8 tok/s 33.9 tok/s
Post-reasoning decode throughput 72.0 tok/s
Estimated TTFT from reasoning tokens 4.6s
Tool calls tool volume and latency across agent steps
Activity
Tool calls 142,388 290,122
Agent steps with tool calls 121,145 (86.3%) 198,650 (91.6%)
Tool calls / request 6.7 14.5
Timing
Tool latency p50 125ms 626ms
Tool latency p90 14.5s 12.3s
Total attributed tool time 1.3K h 413 h
Prefix cache cache reuse by agent-step trigger
Cache rates
Overall prefix hit rate 95.8% 95.7%
User-initiated step hit rate 86.9% 78.2%
Tool-triggered step hit rate 97.9% 97.2%
Append vs context growth
User-initiated append tokens 707.0M tok 464.5M tok
User-initiated context increase 25.4M tok 32.1M tok
User-initiated context / append 3.6% 6.9%
Tool-triggered append tokens 482.8M tok 661.2M tok
Tool-triggered context increase 210.3M tok 341.1M tok
Tool-triggered context / append 43.6% 51.6%
All classified append tokens 1.19B tok 1.13B tok
All classified context increase 235.7M tok 373.1M tok
All classified context / append 19.8% 33.1%
Session context context growth across sessions and agent steps
Step-level context growth
Total context increase 235.7M tok 373.1M tok
User-initiated context increase avg / p50 / p90 1,499 / 703 / 3,121 tok 1,882 / 492 / 5,680 tok
Tool-triggered context increase avg / p50 / p90 1,742 / 801 / 3,879 tok 1,766 / 556 / 4,454 tok
Growth / reductions
User-initiated growth share 98.2% 68.6%
User-initiated reduction share 1.7% 31.3%
User-initiated major compaction share 0.8% 0.8%
Tool-triggered growth share 99.8% 99.0%
Tool-triggered reduction share 0.2% 1.0%
Tool-triggered major compaction share 0.2% 0.6%
Human in the loop human waits before the next model response
Timing
Total human wait time 15K h 15K h
Human wait avg / p50 / p90 2815.9 / 116.0 / 1365.6 s 3368.4 / 103.0 / 1400.7 s
SyFI Trace Atlas · provider comparison Per-provider cuts
Local trace analysis

Analyze your trace.

Drop Claude/Codex session files or a sanitized export. The browser normalizes, sanitizes, and computes the analysis locally — then renders it as an interactive dashboard.

Runs in your browser via Pyodide.
Raw trace rows stay local; analysis runs in a WebAssembly sandbox. Per-round originals never leave the page.
Drop trace files or a sanitized .gz
Claude/Codex sessions, .zip, .tar.gz, .jsonl, or .gz
Don't have a file to drop? Bundle & compress your Claude / Codex sessions →
1 Pack your local sessions into one archive

Claude Code keeps sessions in ~/.claude/projects; Codex keeps them in ~/.codex/sessions. This compresses whichever you have into a single trace.tar.gz in your home folder — then drop that file above.

cd ~ && tar -czf trace.tar.gz $([ -d .claude/projects ] && echo .claude/projects) $([ -d .codex/sessions ] && echo .codex/sessions)
2 Trace is huge, or on a remote server?

Skip the download. Clone the toolkit onto that machine and launch it there — it detects this machine's ~/.claude + ~/.codex and analyzes them in place; nothing is uploaded. Open the URL it prints (forward the port over SSH if the box is remote).

git clone https://github.com/uw-syfi/TraceLab.git && cd TraceLab && ./launch.sh

Your results

Computed locally from the loaded trace — interactive (hover, zoom, export).
Sessions
Agent steps
Total cost
Cache saved
vs. all-fresh billing
Total input
Cached input
prefix served from cache
Uncached input
fresh input tokens
Total output

Providers

How your agent steps and spend divide across providers.

Activity

Per-day steps and when you tend to work (local time).

Daily activity

Steps per day across the trace.

Work rhythm

Hour of day × weekday — darker means more agent steps in that slot.

Cost

By model, split into cached-read · fresh-input · output.

Spend by model

Highlights

Superlatives from your trace. Click one to jump to its session.

Sessions

Filter, then pick a session to replay its token timeline.

Stats

Averages, percentiles & rates across the trace.

Distributions

The classic figures, now interactive (hover, zoom, export PNG).

Contribute to the community pool

Share sanitized, pseudonymous rows with the community pool. Here's exactly what each shared row contains — and what it never does.

Included — safe to share
  • Model per step — e.g. claude-opus-4, gpt-5
  • Token counts — input, output, cached, per step
  • Tool names — which tools ran (Bash, Read, Edit…) and how often
  • Timing — when each step ran and how long tools took
  • Sizes as counts only — how large a message or tool input was, never its text
  • Pseudonymous IDs — random, stable-within-file ids for session / round / project / user
Removed — never leaves your machine
  • Your prompts & the AI's replies — message text is never captured, only counts
  • Tool inputs — shell commands, file contents, search queries, diffs
  • File paths — working directory, repo URLs, session files
  • Your identity — hostnames, real usernames, home directory
  • Any path-like field — cwd, workdir, anything ending in _path

Re-validated on upload — rejected if anything sensitive slipped through.

SyFI Trace Atlas · local analysis Nothing leaves your machine
Community contributions

Contributed traces.

Each contribution adds coverage to the public workload map. Uploaded rows are validated, deduplicated, and credited pseudonymously.

Contributors
0
Agent steps
0
Input tokens
0
Last contribution

Provider split

Claude and Codex agent steps in contributed traces.

1 STEPS
Claude 00%
Codex 0100%

Contribution cadence

Placeholder until contribution history is available.

Add to the pool

Contribute a trace.

Drop raw Claude/Codex sessions or a sanitized .gz. Raw files are normalized and sanitized locally before upload.

Drop a trace to contribute raw sessions or .gz · local sanitization first

Recent contributions

Validated uploads, shown with pseudonymous contributor IDs.
ContributorWhenAgent stepsProvidersStatus
No contributions yet — be the first from the Analyze tab.
SyFI Trace Atlas · contributed pool Pseudonymous rows