novafabric.ai/demo

See it work

The whole capability surface, in order. One page, no signup, and the validation below runs in your browser against the real schema.

Everything on this page uses artifacts from the repository — a real capture fixture and the published run-capsule.schema.json. Where something is experimental, it says so. Nothing here is a mock-up of a feature that does not exist.

Prefer your own terminal? pip install novafabric then nova capture python your_agent.py. The whole tour below takes about five minutes for real.

01/

Capture any command

works today

NovaFabric wraps a process. Not a framework integration, not a decorator you add to every call site — a wrapper around whatever you already run. A shell script, a notebook cell, an agent, a SLURM training job.

nova — bash
$ nova capture python review.py --diff examples/sample.diff ✓ Capsule written: ~/.novafabric/capsules/01KR5SQZPDGTKE3MDP3ZRX8WP1 trace.jsonl spans recorded model-calls.jsonl 2 LLM calls tool-calls.jsonl 2 tool invocations env.lock environment snapshot redaction-proof.json no secrets found

The run exits with its own exit code. If NovaFabric fails, your workload still runs — never blocking the user's work is an architectural invariant, not a setting.

02/

Inspect the capsule — and try to break it

works today

Below is the manifest from that capture, validated against the real JSON Schema 2020-12 file from the repository. Ajv compiles the schema in your browser and reports what it finds.

A green check a website could have hard-coded proves nothing, so: break it. Delete a required field, change a type, put a nonsense value in an enum. If the check stayed green, this demo would be worthless — and for a project selling verifiable evidence, an unfalsifiable demo would be the wrong thing to ship.

TRY TO BREAK IT

invalid — undefined errors
{
  "schema_version": "0.1.0",
  "novafabric_version": "0.6.12",
  "run_id": "01KR5SQZPDGTKE3MDP3ZRX8WP1",
  "created_at": "2026-04-15T10:00:00+00:00",
  "finished_at": "2026-04-15T10:00:04+00:00",
  "duration_ms": 4127,
  "command": [
    "python",
    "review.py",
    "--diff",
    "examples/sample.diff"
  ],
  "exit_code": 0,
  "status": "success",
  "capture_mode": "cli-wrapper",
  "working_directory": "~/projects/code-review-agent",
  "host": {
    "arch": "x86_64",
    "os": "linux",
    "python": "3.12.4",
    "cpu_count": 16,
    "memory_bytes": 67108864000,
    "gpu": [],
    "hostname_redacted": true
  },
  "trace_ref": "trace.jsonl",
  "trace_root_span_id": "0123456789abcdef",
  "model_calls_ref": "model-calls.jsonl",
  "tool_calls_ref": "tool-calls.jsonl",
  "assets_ref": "assets.jsonl",
  "environment_ref": "env.lock",
  "replay_policy_ref": "replay.yaml",
  "redaction_proof_ref": "redaction-proof.json",
  "lineage_ref": "lineage.jsonl",
  "model_call_count": 2,
  "tool_call_count": 2,
  "mutating_tool_count": 0,
  "inputs": [
    {
      "name": "diff",
      "path": "inputs/sample.diff",
      "content_hash": "sha256:2a8439e85cae440ff7e28be7009b7056ccff0597d706a093a7e0c44e90f022b7",
      "size_bytes": 1240,
      "media_type": "text/x-diff"
    }
  ],
  "outputs": [
    {
      "name": "review",
      "path": "outputs/review.md",
      "content_hash": "sha256:5d93970a885c44d5babc3cf3dabcbcbd275e1c3df1fdd020f76126bc14bf5819",
      "size_bytes": 612,
      "media_type": "text/markdown"
    }
  ],
  "metadata": {
    "agent": "code-review-agent@0.1.0",
    "prompt": "code-review-prompt@0.1.0"
  }
}

The same check runs locally as nova validate <run-id>.

03/

Replay it

works today

A replay re-executes or inspects the capsule with every external call under NovaFabric's control — and produces a new capsule, so you can diff a replay against the original.

ModeNetworkBest for
forensicnoneAudit and post-incident inspection
mockedserved from cacheCI and regression testing
semanticre-executesRemote LLMs that drift — judges meaning
exactcontrolledLocal / on-prem byte-exact re-run

The limitation, stated up front. NovaFabric does not claim byte-exact replay of remote LLM calls. That needs a deterministic environment and a per-call seed — realistic for a local model, not for a hosted endpoint that can change under you. For remote models that drift, semantic mode scores similarity of meaning on a 0.0–1.0 scale. If you have seen “deterministic replay” advertised for hosted models, this is what the honest version of that claim looks like.

04/

Diff two runs

works today

Something changed between Tuesday and Wednesday and the git diff is empty. Structural diff compares two capsules — model version, environment, tool responses, outputs — rather than diffing log text.

nova — bash
$ nova diff RUN_A RUN_B Diff: 01KR5SQZPDGTKE3MDP3ZRX8WP1 → 01KR5T2A9WKPN6M3T8VZCJDR4Y changed=2 added=0 removed=0 Outputs: ~ outputs/review.md ~ model-calls.jsonl
05/

Trace lineage

works today

A directed provenance graph over runs, assets, and artifacts. It answers the three questions people actually ask:

SQLite by default. Kuzu, Postgres, AGE, and JanusGraph backends exist for cluster scale and are experimental.

06/

Export evidence anyone can verify

works today

The payoff. A signed bundle an auditor verifies offline, with no NovaFabric installed — only sha256sum and an ed25519 verifier. Evidence only its own tool can check is not evidence; it is a database row.

nova — bash
$ nova export-evidence 01KR5SQZPDGTKE3MDP3ZRX8WP1 ✓ evidence-01KR5SQZPD.zip (in-toto DSSE + RFC 3161 timestamp) $ nova seal verify 01KR5SQZPDGTKE3MDP3ZRX8WP1 ✓ signature valid ✓ timestamp valid ✓ redaction proof intact
07/───THE REST OF THE SURFACE

Beyond the core loop. Everything below is implemented; the experimental label means the interface may still move, not that it is vapour.

Asset registry

works today

Versioned models, prompts, datasets and agent configs as name@version, pinned to a git SHA, with eval-gated promotion.

HPC / SLURM capture

works today

No daemon, no root, no privileged access. Compute-node hot paths write to a local spool, never a database.

Compliance exports

experimental

EU AI Act Annex IV, NIST AI RMF, GDPR Art. 30, NIS2, HIPAA, CycloneDX AI-BOM. Evidence workflows — not legal certification.

Cost & energy attribution

experimental

Per-run LLM cost from a local pricing catalog, and energy-anchored action receipts.

Local dashboard

experimental

nova serve --experimental. Read-only, binds to 127.0.0.1 only.

Server mode

experimental

Multi-user REST API, Postgres, object store, tenancy with row-level security.

Cluster-scale collector

experimental

Node spools, parent/child capsules, object capsule store, four lineage backends.

Knowledge graph & diagnosis

experimental

Capsule knowledge graph, causal-graph attribution, counterfactual root-cause search.

Run the whole thing yourself

nova — bash
$ pip install novafabric $ nova capture python my_agent.py $ nova validate <run-id> $ nova replay <run-id> --mode forensic $ nova diff <run-a> <run-b> $ nova export-evidence <run-id>

If any of that does not work for you, that is a bug and we want to hear about it — not a sign you did it wrong.

full walkthrough →documentation →source →