novafabric.ai/novafabric
experimental

Use NovaFabric for local-first capture, replay, diff, validation, and audit evidence workflows. Interfaces and schemas may change before v1.0. Production-scale and compliance-sensitive deployments require independent validation.Not claimed: million-agent readiness · HSM/X.509 enterprise PKI · compliance guarantee · stable v1.0 schema

Your agent ran for 3 hours and failed at step 47. You have no trace, no replay, no way to know if it was the model call or the tool call or the prompt. You rerun it. It fails differently.

This is a NovaFabric problem.

Capture the run.
Replay it later.

Wrap any command. NovaFabric captures the environment and the model calls and tool exchanges it can see — automatically for Python workloads, through nova api-proxy for other clients. One command. A portable, secret-scanned Run Capsule you can seal.

$pip install novafabricpip
$uv add novafabricuv

requires Python 3.12+

nova — bash
01/
what gets captured

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.

capsule structure
~/.novafabric/capsules/01HXAY7M5JZ8R7K4P9DPBYK2WX/
capsule.yaml← run manifest — id, status, timing
trace.jsonl← execution spans
model-calls.jsonl← LLM calls captured
tool-calls.jsonl← tool invocations captured
env.lock← environment snapshot
redaction-proof.json← record of the secret scan
replay.yaml← replay policy
lineage.jsonl← lineage edges for this run
inputs/
outputs/
stdout.txt
stderr.txt
⟶

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.

02/
interactive demo

See what a capsule contains.

Click "run" to simulate a capture. Explore the files a capsule produces.

nova — bash
$ nova capture python agent.py

What is inside a Run Capsule, file by file →

03/
replay modes

Five ways to replay.

forensic
$ nova replay --mode forensic

Read-only. Inspects the capsule and runs nothing. Safe for debugging, auditing, and post-incident investigation.

mocked
$ nova replay --mode mocked

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.

semantic
$ nova replay --mode semantic

Does not re-run. Scores how similar the capsule's recorded model responses are to each other (0.0–1.0).

exact
$ nova replay --mode exact

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.

intervention · experimental
$ nova replay --mode intervention

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 →

04/
four commands

The complete lifecycle.

$nova capture python my_agent.py

Wrap any command — script, agent, training run. No code changes; model calls are captured automatically for Python workloads (nova api-proxy for other clients).

$nova replay <run-id> --mode forensic

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.

$nova diff <run-a> <run-b>

Compare two capsules structurally: what changed in the outputs and the environment.

$nova verify ~/.novafabric/capsules/<run-id>/

Verify a sealed capsule's signature, timestamp and Merkle-log inclusion. Needs only the capsule; works offline.

read the getting-started guide →
05/
why replayable runs

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 →

novafabric

The flagship system: capture, replay, diff, and verify AI agent executions.

← back to home