CodeDelta Agent Tracer
What the agent did — read from its own session logs
/srv/agent-logs
4 CRITICAL 5 HIGH 0 ELEVATED 3 NORMAL
Sample report. Every session, developer, host and command on this page is invented, written in each agent’s real log format and read by Agent Tracer exactly as a customer’s logs would be. Six developers, five agents, seven models, two weeks.
What this is. An offline audit of 12 agent sessions between 2026-09-15 and 2026-09-26 (4 Claude Code, 2 Codex, 2 Copilot CLI, 2 Cursor, 2 Gemini CLI; models: claude-opus-5-5 (2 sessions), claude-sonnet-5 (2 sessions), claude-haiku-4-5-20251001 (1 sessions), grok-4.6 (2 sessions) and 3 more): 15 human prompts, 45 tool calls, 32 shell commands written by the model and run. Formats read: Claude Code session transcript (JSONL, ~/.claude/projects); OpenAI Codex session rollout (JSONL, ~/.codex/sessions); Cursor agent transcript (JSONL, ~/.cursor/projects/<workspace>/agent-transcripts; model from Cursor's state.vscdb); GitHub Copilot CLI session events (JSONL, ~/.copilot/session-state/<id>/events.jsonl); Gemini CLI chat record (JSONL, ~/.gemini/tmp/<project>/chats/session-*.jsonl); SWE-agent trajectory rows (JSONL, one Hugging Face dataset row per line: instance_id, model_name, trajectory[]). No other agent's logs are read in this version. Nothing was sent anywhere; every count below names the rule that produced it, and clicking a session row lists the exact calls behind its numbers (credential values masked).
Since last run — what this run has that the last one did not
6 new sessions
2026-09-22 Claude Code HIGH 1a2b3c4d the nightly job is failing on the staging box, find out why
2026-09-23 Codex CRITICAL rollout- try a cheaper model for the summariser and compare output on 50 rows
2026-09-24 Cursor CRITICAL 873f1cd2 update my etsy shop landing page with the autumn range and push it to netlify
2026-09-25 Copilot CLI CRITICAL 8b2c78c4 install the terraform version the repo pins
2026-09-26 Gemini CLI NORMAL session- the dashboard query is slow, add an index
2026-09-26 Claude Code HIGH 1a2b3c4d prepare the 3.2 release notes and tag it
3 hosts contacted for the first time: api.deepseek.com CN, releases.hashicorp.com, staging.internal.example
21 new findings of the kinds that matter: 3 destructive_command, 1 publish_action, 7 network_egress, 1 privilege, 1 credential_text, 5 outside_project_path, 1 user_refused, 2 user_interrupted
2026-09-22 09:02 network_egress 1a2b3c4d Bash ssh [email protected] 'journalctl -u nightly --since yesterday | tail -50' staging.internal.example
2026-09-22 09:03 network_egress 1a2b3c4d Bash ssh [email protected] 'df -h /var' staging.internal.example
2026-09-22 09:05 destructive_command 1a2b3c4d Bash ssh [email protected] 'sudo rm -rf /var/log/nightly/*'
2026-09-22 09:05 network_egress 1a2b3c4d Bash ssh [email protected] 'sudo rm -rf /var/log/nightly/*' staging.internal.example
2026-09-22 09:05 user_refused 1a2b3c4d Bash ssh [email protected] 'sudo rm -rf /var/log/nightly/*'
2026-09-22 09:07 network_egress 1a2b3c4d Bash ssh [email protected] 'sudo logrotate -f /etc/logrotate.d/nightly' staging.internal.example
2026-09-22 09:07 outside_project_path 1a2b3c4d Bash ssh [email protected] 'sudo logrotate -f /etc/logrotate.d/nightly' /etc
2026-09-23 14:02 network_egress rollout- Bash cd ~/pipeline && pip install openai
2026-09-23 14:04 network_egress rollout- Bash curl -s https://api.deepseek.com/v1/models -H "Authorization: **** | head -c 300 api.deepseek.com
2026-09-23 14:04 credential_text rollout- Bash curl -s https://api.deepseek.com/v1/models -H "Authorization: **** | head -c 300 with network
2026-09-23 14:06 destructive_command rollout- Bash rm -rf ~/pipeline/.cache && pytest -q
2026-09-23 14:30 user_interrupted rollout- human turn aborted: interrupted
2026-09-24 10:05 outside_project_path 873f1cd2 Write /Users/carol/Documents/etsy-shop/index.html /Users/carol/Documents/etsy-shop/index.html
2026-09-24 10:05 outside_project_path 873f1cd2 Bash cd ~/Documents/etsy-shop && npx netlify deploy --prod ~/Documents
2026-09-24 11:05 destructive_command 873f1cd2 Delete Delete /Users/carol/Documents/etsy-shop/summer.html /Users/carol/Documents/etsy-shop/summer.html
2026-09-24 11:05 outside_project_path 873f1cd2 Delete /Users/carol/Documents/etsy-shop/summer.html /Users/carol/Documents/etsy-shop/summer.html
2026-09-25 16:03 network_egress 8b2c78c4 Bash curl -fsSL https://releases.hashicorp.com/terraform/1.9.5/terraform_1.9.5_darwin_arm64.zip -o /tmp/tf.zip releases.hashicorp.com
2026-09-25 16:04 privilege 8b2c78c4 Bash sudo unzip -o /tmp/tf.zip -d /usr/local/bin
2026-09-25 16:04 outside_project_path 8b2c78c4 Bash sudo unzip -o /tmp/tf.zip -d /usr/local/bin /usr/local
2026-09-25 16:40 user_interrupted 8b2c78c4 human abort: user
2026-09-26 09:04 publish_action 1a2b3c4d Bash cd ~/mobile-app && git add CHANGELOG.md && git commit -m 'v3.2 notes' && git tag v3.2 && git push origin main v3.2
Compared with the baseline written 2026-09-27T18:18:41 (6 sessions). Baseline rewritten for the next run.
12
Sessions
32
Commands run
5
Destructive
4
Published
5
Hosts contacted
4
Refused by human
Filter
Signals — totals across all sessions
SignalCallsSessionsRule (what counts)
destructive_command55rm with -r or -f, git reset --hard, git clean -f, git checkout/restore over working files, force push, pkill, killall, kill -9, DROP TABLE, truncate; also a file removed by an agent's own Delete tool (Cursor)
publish_action44git push, gh release/pr/repo write commands, git tag with a version, npm publish, twine upload, scp/rsync to a remote host
network_egress95a shell segment running curl, wget, ssh, scp, rsync, nc, gh api, pip/npm/brew install of a named package (pip install -e . from disk is not), or git clone/fetch/pull (git push is publishing); a URL merely written into a file or printed is NOT egress — its host is listed separately as named, not fetched
privilege11a command segment starting with sudo, world-writable chmod, launchctl, defaults write, keychain access via security, csrutil, spctl (Gatekeeper), quarantine removal, or chown to root — heredoc bodies fed to anything but a shell are data, not commands
dynamic_exec11an interpreter fed code written in the same turn: python - <<, python -c, node -e, sh -c, eval, osascript -e, perl -e, piping into a shell, exec
credential_text22token, password, secret, api key, authorization or private key GIVEN a value (word=value, --token value, Bearer …), a .pem file, or a string shaped like a GitHub/OpenAI/AWS/JWT secret — in a command or a prompt (values are masked in this report)
outside_project_path64a path under ~/Downloads, ~/Desktop, ~/Documents, ~/Library, ~/.ssh, ~/.aws, ~/.config, ~/.gnupg, /Applications, /etc, /usr/local, /Library or /System named in a command, or a file written there by Write/Edit
user_refused44a tool call the human turned down at the permission prompt (Claude Code: 'user doesn't want to proceed'; Codex: output 'rejected by user')
user_interrupted33the human stopped the agent mid-turn (Claude Code: '[Request interrupted by user]'; Codex: turn_aborted, reason interrupted)
policy_blocked00a tool call stopped by a hook or the permission classifier, not by the human
repeated_command11the same command (whitespace-normalised) run three or more times in one session
subagent00a sub-agent spawned (the Agent tool) — work done outside the visible turn
Sessions — click a row for the calls behind its counts
Rating rule. CRITICAL: a privilege command, or credential text in a command that also reaches the network, or a destructive command whose own line names a path outside the project. HIGH: any destructive or publishing command. ELEVATED: network, dynamic execution, a write outside the project, or a refused call. NORMAL: none of those. Same four words as the Agent Scan; a rating says a human should look, not that harm occurred.
RatingDateAgentModelProject · sessionMin PromptsCmds Destr.Publ.Net Priv.Dyn.Cred. OutsideRefusedStopped BlockedRepeat
CRITICAL2026-09-15Claude Codeclaude-opus-5-5
+1 more
payments 1a2b3c4d
add retry with backoff to the settlement client and run the integration tests
105141111
Model: claude-opus-5-5 (5 turns, 3 cmds), claude-haiku-4-5-20251001 (3 turns, 3 as sub-agent, 1 cmds)
/srv/agent-logs/alice/.claude/projects/-Users-alice-payments/1a2b3c4d-1111-4000-8000-000000000001.jsonl + 1 sub-agent transcript(s) · Claude Code 2.1.197 · mode acceptEdits · 7 tool calls (4 shell, 1 read, 1 edit, 1 web) · 1 file writes · 4 findings
Task: add retry with backoff to the settlement client and run the integration tests
Sub-agents (1):
2026-09-15 10:30 claude-haiku-4-5-20251001 3 turns · 1 shell, 1 web · hosts: docs.example-bank.com
Brief: Find where settlement timeouts are configured across the repo and report the values.
Reported back: Timeouts are set in settle/config.py (30 s) and overridden in tests/conftest.py (5 s).
2026-09-15 09:05 publish_action Bash claude-opus-5-5 cd ~/payments && git add -A && git commit -m 'settlement retry' && git push origin feature/retry
2026-09-15 09:06 network_egress Bash claude-opus-5-5 T=$(cat ~/.config/bank/api-token); curl -s -H "Authorization: **** https://api.example-bank.com/v2/settlements?limit=1 api.example-bank.com
2026-09-15 09:06 credential_text Bash claude-opus-5-5 T=$(cat ~/.config/bank/api-token); curl -s -H "Authorization: **** https://api.example-bank.com/v2/settlements?limit=1 with network
2026-09-15 09:06 outside_project_path Bash claude-opus-5-5 T=$(cat ~/.config/bank/api-token); curl -s -H "Authorization: **** https://api.example-bank.com/v2/settlements?limit=1 ~/.config
CRITICAL
new
2026-09-23Codexgpt-5.3-codexpipeline rollout-
try a cheaper model for the summariser and compare output on 50 rows
30151211
Model: gpt-5.3-codex (1 turns, 5 cmds)
/srv/agent-logs/bob/.codex/sessions/2026/09/23/rollout-2026-09-23T14-00-00-019c7a9b-2222-7000-8000-000000000004.jsonl · Codex 0.112.0 · mode Codex Desktop, approval on-request, provider openai, sandbox workspace-write · 5 tool calls (5 shell) · 0 file writes · 5 findings
Task: try a cheaper model for the summariser and compare output on 50 rows
2026-09-23 14:02 network_egress Bash gpt-5.3-codex cd ~/pipeline && pip install openai
2026-09-23 14:04 network_egress Bash gpt-5.3-codex curl -s https://api.deepseek.com/v1/models -H "Authorization: **** | head -c 300 api.deepseek.com
2026-09-23 14:04 credential_text Bash gpt-5.3-codex curl -s https://api.deepseek.com/v1/models -H "Authorization: **** | head -c 300 with network
2026-09-23 14:06 destructive_command Bash gpt-5.3-codex rm -rf ~/pipeline/.cache && pytest -q
2026-09-23 14:30 user_interrupted human gpt-5.3-codex turn aborted: interrupted
CRITICAL
new
2026-09-24Cursorgrok-4.6etsy-shop 873f1cd2
update my etsy shop landing page with the autumn range and push it to netlify
602113
Model: grok-4.6 (2 turns, 1 cmds)
/srv/agent-logs/carol/.cursor/projects/etsy-shop/agent-transcripts/873f1cd2-3333-4000-8000-000000000006/873f1cd2-3333-4000-8000-000000000006.jsonl · Cursor ? · mode ? · 3 tool calls (1 shell, 2 edit) · 2 file writes · 4 findings
Task: update my etsy shop landing page with the autumn range and push it to netlify
2026-09-24 10:05 outside_project_path Write grok-4.6 /Users/carol/Documents/etsy-shop/index.html /Users/carol/Documents/etsy-shop/index.html
2026-09-24 10:05 outside_project_path Bash grok-4.6 cd ~/Documents/etsy-shop && npx netlify deploy --prod ~/Documents
2026-09-24 11:05 destructive_command Delete grok-4.6 Delete /Users/carol/Documents/etsy-shop/summer.html /Users/carol/Documents/etsy-shop/summer.html
2026-09-24 11:05 outside_project_path Delete grok-4.6 /Users/carol/Documents/etsy-shop/summer.html /Users/carol/Documents/etsy-shop/summer.html
CRITICAL
new
2026-09-25Copilot CLIgpt-5infra 8b2c78c4
install the terraform version the repo pins
40131111
Model: gpt-5 (1 turns, 3 cmds)
/srv/agent-logs/dan/.copilot/session-state/8b2c78c4-4444-4000-8000-000000000008/events.jsonl · Copilot CLI 1.0.88 · mode branch main · 3 tool calls (3 shell) · 0 file writes · 4 findings
Task: install the terraform version the repo pins
2026-09-25 16:03 network_egress Bash gpt-5 curl -fsSL https://releases.hashicorp.com/terraform/1.9.5/terraform_1.9.5_darwin_arm64.zip -o /tmp/tf.zip releases.hashicorp.com
2026-09-25 16:04 privilege Bash gpt-5 sudo unzip -o /tmp/tf.zip -d /usr/local/bin
2026-09-25 16:04 outside_project_path Bash gpt-5 sudo unzip -o /tmp/tf.zip -d /usr/local/bin /usr/local
2026-09-25 16:40 user_interrupted human gpt-5 abort: user
HIGH2026-09-16Codexgpt-5.3-codexpipeline rollout-
profile the ingest step and cut its run time
514111
Model: gpt-5.3-codex (1 turns, 4 cmds)
/srv/agent-logs/bob/.codex/sessions/2026/09/16/rollout-2026-09-16T14-00-00-019c7a9b-2222-7000-8000-000000000003.jsonl · Codex 0.112.0 · mode Codex Desktop, approval on-request, provider openai, sandbox workspace-write · 4 tool calls (4 shell) · 0 file writes · 3 findings
Task: profile the ingest step and cut its run time
2026-09-16 14:03 dynamic_exec Bash gpt-5.3-codex python -c "import pstats; pstats.Stats('prof.out').sort_stats('cumtime').print_stats(15)"
2026-09-16 14:05 publish_action Bash gpt-5.3-codex git push origin main
2026-09-16 14:05 user_refused exec_command gpt-5.3-codex git push origin main
HIGH2026-09-18Copilot CLIgpt-5infra 8b2c78c4
rebase my branch on main and push
4121111
Model: gpt-5 (1 turns, 2 cmds)
/srv/agent-logs/dan/.copilot/session-state/8b2c78c4-4444-4000-8000-000000000007/events.jsonl · Copilot CLI 1.0.88 · mode branch main · 2 tool calls (2 shell) · 0 file writes · 4 findings
Task: rebase my branch on main and push
2026-09-18 16:03 network_egress Bash gpt-5 cd ~/infra && git fetch && git rebase origin/main
2026-09-18 16:04 destructive_command Bash gpt-5 cd ~/infra && git push --force origin feature/vpc
2026-09-18 16:04 publish_action Bash gpt-5 cd ~/infra && git push --force origin feature/vpc
2026-09-18 16:04 user_refused bash gpt-5 cd ~/infra && git push --force origin feature/vpc
HIGH2026-09-19Gemini CLIgemini-3.8-flashanalytics session-
regenerate the weekly report from the new parquet files
301211
Model: gemini-3.8-flash (1 turns, 2 cmds)
/srv/agent-logs/eve/.gemini/tmp/analytics/chats/session-2026-09-19T11-00-cb937252.jsonl · Gemini CLI ? · mode kind main · 3 tool calls (2 shell, 1 edit) · 1 file writes · 2 findings
Task: regenerate the weekly report from the new parquet files
2026-09-19 11:05 destructive_command Bash gemini-3.8-flash rm -rf ~/analytics/reports/old
2026-09-19 11:05 user_refused run_shell_command gemini-3.8-flash rm -rf ~/analytics/reports/old
HIGH
new
2026-09-22Claude Codeclaude-opus-5-5payments 1a2b3c4d
the nightly job is failing on the staging box, find out why
7241411
Model: claude-opus-5-5 (5 turns, 4 cmds)
/srv/agent-logs/alice/.claude/projects/-Users-alice-payments/1a2b3c4d-1111-4000-8000-000000000002.jsonl · Claude Code 2.1.197 · mode acceptEdits · 4 tool calls (4 shell) · 0 file writes · 7 findings
Task: the nightly job is failing on the staging box, find out why
2026-09-22 09:02 network_egress Bash claude-opus-5-5 ssh [email protected] 'journalctl -u nightly --since yesterday | tail -50' staging.internal.example
2026-09-22 09:03 network_egress Bash claude-opus-5-5 ssh [email protected] 'df -h /var' staging.internal.example
2026-09-22 09:05 destructive_command Bash claude-opus-5-5 ssh [email protected] 'sudo rm -rf /var/log/nightly/*'
2026-09-22 09:05 network_egress Bash claude-opus-5-5 ssh [email protected] 'sudo rm -rf /var/log/nightly/*' staging.internal.example
2026-09-22 09:05 user_refused Bash claude-opus-5-5 ssh [email protected] 'sudo rm -rf /var/log/nightly/*'
2026-09-22 09:07 network_egress Bash claude-opus-5-5 ssh [email protected] 'sudo logrotate -f /etc/logrotate.d/nightly' staging.internal.example
2026-09-22 09:07 outside_project_path Bash claude-opus-5-5 ssh [email protected] 'sudo logrotate -f /etc/logrotate.d/nightly' /etc
HIGH
new
2026-09-26Claude Codeclaude-sonnet-5mobile-app 1a2b3c4d
prepare the 3.2 release notes and tag it
4121
Model: claude-sonnet-5 (3 turns, 2 cmds)
/srv/agent-logs/frank/.claude/projects/-Users-frank-mobile-app/1a2b3c4d-6666-4000-8000-00000000000c.jsonl · Claude Code 2.1.197 · mode acceptEdits · 3 tool calls (2 shell, 1 edit) · 1 file writes · 1 findings
Task: prepare the 3.2 release notes and tag it
2026-09-26 09:04 publish_action Bash claude-sonnet-5 cd ~/mobile-app && git add CHANGELOG.md && git commit -m 'v3.2 notes' && git tag v3.2 && git push origin main v3.2
NORMAL2026-09-17Cursorgrok-4.6storefront 873f1cd2
make the checkout button match the new brand colour and run the snapshot tests
011
Model: grok-4.6 (1 turns, 1 cmds)
/srv/agent-logs/carol/.cursor/projects/storefront/agent-transcripts/873f1cd2-3333-4000-8000-000000000005/873f1cd2-3333-4000-8000-000000000005.jsonl · Cursor ? · mode ? · 3 tool calls (1 shell, 1 read, 1 edit) · 1 file writes · 0 findings
Task: make the checkout button match the new brand colour and run the snapshot tests
No findings.
NORMAL2026-09-20Claude Codeclaude-sonnet-5mobile-app 1a2b3c4d
fix the crash on launch when the user has no network
92311
Model: claude-sonnet-5 (6 turns, 3 cmds)
/srv/agent-logs/frank/.claude/projects/-Users-frank-mobile-app/1a2b3c4d-6666-4000-8000-00000000000b.jsonl · Claude Code 2.1.197 · mode acceptEdits · 6 tool calls (3 shell, 2 read, 1 edit) · 1 file writes · 2 findings
Task: fix the crash on launch when the user has no network
2026-09-20 09:00 repeated_command Bash claude-sonnet-5 cd ~/mobile-app && xcodebuild test -scheme App -quiet 3×
2026-09-20 09:07 user_interrupted human claude-sonnet-5 [Request interrupted by user]
NORMAL
new
2026-09-26Gemini CLIgemini-3.8-flashanalytics session-
the dashboard query is slow, add an index
3011
Model: gemini-3.8-flash (1 turns, 1 cmds)
/srv/agent-logs/eve/.gemini/tmp/analytics/chats/session-2026-09-26T11-00-cb937252.jsonl · Gemini CLI ? · mode kind main · 2 tool calls (1 shell, 1 read) · 0 file writes · 0 findings
Task: the dashboard query is slow, add an index
No findings.
Models — which model was in charge, and what it did
The model named on each turn in the log (Claude Code: the assistant record's model; Codex: the turn's model). A session that changed model mid-way is counted under each. Turns = model replies; Sub-agent = of those turns, how many were a sub-agent the tool spawned rather than the main thread (a model that is ALL sub-agent turns was chosen by the tool, not the person); Cmds = shell commands the model wrote and ran; Reads / Edits / Web / Browser = its other tool calls by kind; the rest are that model's signal counts.
ModelAgentSessionsTurns Sub-agentCmdsReads EditsWebBrowser Destr.Publ. NetPriv.Cred. RefusedStopped
claude-opus-5-5Claude Code21071111511
claude-sonnet-5Claude Code2952211
claude-haiku-4-5-20251001Claude Code13311
grok-4.6Cursor232131
gpt-5.3-codexCodex229112111
gpt-5Copilot CLI225112111
gemini-3.8-flashGemini CLI2231111
Sub-agents — what the tool spawned, on which model, what each was asked and what it reported
One row per sub-agent transcript. Brief = the first message the main model gave it; Reported back = its last text reply. Both are the log's own words, cut to one line and masked. The calls column is that sub-agent's tool use by kind and the hosts it reached.
WhenSessionModelBriefCallsReported back
2026-09-15 10:301a2b3c4d
payments
claude-haiku-4-5-20251001Find where settlement timeouts are configured across the repo and report the values.1 shell, 1 web · hosts: docs.example-bank.comTimeouts are set in settle/config.py (30 s) and overridden in tests/conftest.py (5 s).
Hosts contacted — a URL or ssh/scp/rsync target in the same shell segment as a network command, or a web fetch / browser navigation
Country is shown only where the Agent Scan's provider table states it (AI model endpoints); other hosts show —. Loopback and .local hosts are not listed.
HostCountryRequestsSessions
staging.internal.example—41
api.example-bank.com—11
docs.example-bank.com—11
api.deepseek.comCN sovereignty11
releases.hashicorp.com—11
Hosts named but not fetched — a URL written into a file, printed, or in a test fixture; never beside a network command
Listed so the distinction is visible: a provider URL here means the agent wrote code or text that mentions it, not that anything was sent there. Hosts that were also contacted appear in the table above only.
HostCountryMentionsSessions
None.
Refused by the human — 4 tool calls turned down at the permission prompt
2026-09-16 14:05 exec_command git push origin main
2026-09-18 16:04 bash cd ~/infra && git push --force origin feature/vpc
2026-09-19 11:05 run_shell_command rm -rf ~/analytics/reports/old
2026-09-22 09:05 Bash ssh [email protected] 'sudo rm -rf /var/log/nightly/*'
A signal is a pattern match on what the agent ran, not a judgement that harm occurred: a force push to your own branch and a force push to main both count as destructive. Read the calls behind a number before acting on it. This version reads Claude Code and Codex session logs only.