The views

Flight Recorder

Every tool call in order, with its Guard decision.

Press 7. Flight Recorder is the answer to "what did it actually do?" — every tool call Claude made, in order, with the Guard decision attached to each one.

Flight Recorder: tool calls in order with their Guard decisions

What it records

The PostToolUse hook writes an entry for every tool invocation to the action ledger at .claude/action-log.json. Each entry carries the tool name, its arguments, the normalized effect Guard computed, the decision and rule that applied, and the outcome.

TimeCallDecision
12:41:02Read src/guard/policy.mjsALLOW
12:41:04Grep -rn TODO srcALLOW
12:41:08Bash npm testALLOW
12:41:16Write ~/.ssh/configASK
12:41:21Bash aws s3 rm s3://acme-prod-assetsDENY

Reading a call

Open any row to see the full call in the drawer. Inside it, j and k step through calls without closing, and Esc closes. The drawer shows the arguments as sent, the effect Guard derived from them, and the rule that produced the decision — which is the fastest way to understand why something was denied.

Correlating with the model traffic

Tool calls and model requests are two different streams: the hook sees the former, the proxy sees the latter. Iris correlates them so you can move from a call in Flight Recorder to the turn that requested it, and read the context that turn carried.

Filtering and export

The header time range — Last hour, Today, This week, This month, All — filters this view along with everything except Optimize. Export writes history, actions or decisions as JSON or CSV to ~/.iris/projects/<id>/exports/.

The ledger is local and yours

Nothing is uploaded. Clear captured data in the UI removes only files this proxy wrote. See Security & privacy for exactly what is stored where.