One command.
The run, recorded.
Every captured run produces a structured directory — a NovaFabric Run Capsule, a portable execution-evidence artifact you own — holding the evidence needed to inspect, compare and replay the execution. No instrumentation for Python workloads; other clients go through nova api-proxy.
Model-call evidence
Model name, prompt, completion, token counts, latency — for API calls where capture is enabled.
Tool invocations
MCP exchanges, function calls, shell commands — the tool-call chain where capture hooks are active.
Environment snapshot
Python version, installed packages and environment variables, secret-scanned — so you can reproduce the execution context.
Execution spans
OpenTelemetry-compatible spans for the execution tree. Queryable, exportable, visualisable.
Secret-scan record
Built-in secret scanning of captured evidence, with a record of what the scan checked and redacted. Rule-based: it catches known key and token formats, not every secret. PEM private keys, JWTs, passwords and connection strings are among the formats it does not detect.
Optional seal
Seal a capsule with your own key (DSSE signature; RFC 3161 timestamp is opt-in) and verify it offline later. A seal shows the record is unchanged since it was signed — not that it is complete. Not a compliance certification.
See what a capsule contains.
Click "run" to simulate a capture. Explore the files a capsule produces.
Five ways to replay.
Read-only. Inspects the capsule and runs nothing. Safe for debugging, auditing, and post-incident investigation.
Re-runs a Python workload and serves recorded model responses from the capsule. Since v0.105.0 that covers OpenAI Chat Completions and Responses API calls and Anthropic messages, sync or async, streamed or not, plus recorded MCP tool results. Other tool calls run live, so they may have side effects.
Does not re-run. Scores how similar the capsule's recorded model responses are to each other (0.0–1.0).
Does not re-run. Reports whether a byte-exact re-run is possible: deterministic environment, seeds, no schema drift. Not available for remote models that can change under you.
Substitute one captured event, re-run downstream under mocked semantics, and record whether the outcome changes. Emits a diffable counterfactual capsule.
Replay modes in depth: what each one reuses and what runs live →
The complete lifecycle.
Wrap any command — script, agent, training run. No code changes; model calls are captured automatically for Python workloads (nova api-proxy for other clients).
Replay a capsule. Forensic mode is read-only. Mocked mode re-runs the command against the recorded responses of supported OpenAI and Anthropic calls; tools run live.
Compare two capsules structurally: what changed in the outputs and the environment.
Verify a sealed capsule's signature, timestamp and Merkle-log inclusion. Needs only the capsule; works offline.
The run happened. Then the world changed.
What changed
Debugging an LLM call used to mean reading one prompt and one response. An agent run now chains several model calls, tool invocations, MCP servers and retrieval steps, and any of them can drift between Tuesday and Wednesday. When a run fails or is questioned later, a log of what scrolled past is not enough: you need the run itself, as an artifact you can reopen, replay and compare.
Who it is for
Engineers building and shipping AI agents, first. Platform and MLOps teams who run them for others. Researchers whose experiments have to reproduce. And whoever later has to answer for what an agent did, who needs the record rather than a recollection.
What it is not
Not an observability platform: tracing shows a run while it happens; NovaFabric keeps it as an artifact you can replay, compare and verify later, so the two are complementary. Not a hosted service: no SaaS, no account. Not a scheduler: it captures what SLURM or Kubernetes runs. And a NovaFabric failure never blocks your workload by default. The boundaries →
The flagship system: capture, replay, diff, and verify AI agent executions.