A hash-chained log of every call the agent made, every label it checked and every action it refused, rendered to one HTML file you can scrub in 4D. Your browser recomputes every hash before it shows you the badge. Edit one record and the chain breaks at that exact point. Below: a real agent, 150 attacked runs, 602 records.
Every agent I read about knows what to do when a step errors. Almost none can prove, after the fact, what it actually did on the run where every step passed and the outcome was wrong. Logs get edited, trimmed, "cleaned up". A customer asks what happened and the answer is a screenshot.
BLACKBOX makes the record itself the proof. Each record's hash covers the record and the hash before it, so the log cannot be edited, dropped, inserted or reordered without every later hash going wrong. The replay page ships with the verifier inside it. Nothing leaves the page.
Nobody I can find sells an agent together with its own tamper-evident public record and its own attack bench. Observability products trace runs for the team that owns them. This is the opposite direction: a record built to be handed to the people who did not build the agent.
from blackbox import Recorder with Recorder("run.blackbox.jsonl", agent="front-desk") as rec: send = rec.wrap(send_email, "send_email", sink=True) # any callable rec.event("policy_check", tool="send_email", rule="RecipientIsReader", ok=True) send(to="dana@northwind.example", body="Thursday at 3 works.") $ python3 -m blackbox verify run.blackbox.jsonl # OK 6 records, sealed, head 5e45… $ python3 -m blackbox replay run.blackbox.jsonl -o replay.html
Five tools over stdio: open, event, seal, verify, replay. Claude Code, Claude Desktop, Cursor and BuildShip's MCP tools can record their own runs without a line of glue.
A drop-in node that appends a record and returns the next hash. A test in the repo proves the Python and JavaScript hashes are byte-identical.
If you run agents that touch money, records or customers and you would put a public replay of one on your own site, I want to build that one. Tell me what it does and I will tell you what it would take.