footprintjs

Execution provenance for AI agents and software

Build software you can investigate.

Open-source TypeScript libraries that record the steps, state and decisions behind a result as connected notes, and keep the gaps visible.

See the code ↗
  1. The run writes its own notes.

    Built in the pattern, with recorders on, each note is connected as it is written.

  2. Everything else leaves a pile of notes.

    One question, and you reread them all.

  3. You can't rebuild React.

    So stitch in code: bind its events into one action.

  4. Orchestration is a hybrid.

    The flow runs in the pattern. Your trainer stays yours and leaves a receipt.

  5. Same idea at the collector.

    On-prem devices: join what shares an ID, and give every other gap its reason.

  6. The pile stays a pile.

    Code threads through the notes where they lie. A note it can't reach keeps the reason.

  7. Either way, the notes now have edges.

    Two tracks, one kind of record.

  8. Start at the result. Walk back.

    Only the notes behind it light up.

  9. Can't connect it? Say why.

    A labelled gap beats a confident guess.

    Gap hidden
    “No warranty applied.”
    Gap labelled
    “Denied: 45 days¹ is past the 30-day policy². Warranty: unknown³, no order ID to connect it.”
  10. One record. A view for each question.

    Flow for steps. Why for causes. Story for people.

    This page does the same. Try the switch above.

  11. Two ways in. One kind of record.

    Stitched by default, or in code with a reason for every gap.

  12. Walk back. Replay.

    And a side effect: an audit trail for security monitoring.

Recording does not need an LLM. Enable the evidence you need before the run; missing evidence stays unknown.

The footprintjs libraries

footprintjs is a family of open source TypeScript libraries for execution provenance. They record the steps, state and decisions behind a result as connected notes, so people and coding agents can walk back from it, replay it and audit it.

Docs for your agent

Foundations

Run the work and keep the record.

footprintjs

Follow a recorded application decision

Inspect tracked reads, writes and explicit decisions behind an outcome, where the required evidence was captured.

Foottrace

Investigate a supported saved run

foottrace

Query execution records, follow supported dependencies and inspect reported gaps without running an AI model.

Stitched by default

Connected as the work happens.

Built in the pattern

The run keeps its own edges.

AgentFootprint

Investigate an agent’s answer

Inspect the recorded context, model calls, tools and decisions. Test suspected causes rather than treating an explanation as proof.

Blueprint

Compose reusable platform capabilities

footprint-blueprint

A modular platform framework with focused import paths and shared execution evidence.

Smallbusiness

Configure commerce for your shop

smallbusiness-footprint

Reusable commerce workflows built on Blueprint, configurable for different shop types.

StoryReel

Make a film with a making-of record

footprint-storyreel

Build teaching films from a storyboard and recipe, with a seekable timeline, captions and a recorded production workflow.

Stitched in code

For what you cannot rebuild. Every gap keeps its reason.

Framework apps

You can't rebuild React, so bind its events.

HACI Footprint
beta

Make applications agent-operable

hcifootprint

Give agents a typed map of the app's real capabilities while preserving permissions, confirmation gates, and the signed-in user's control.

VizFootprint
alpha

Preserve recorded exploration paths

Keep supported human and agent branches of an analysis, compare paths and replay retained findings. Recording settings and declared statistical obligations still matter.

Orchestrated workflows

Hybrid: the flow is in the pattern, the trainer stays yours.

footprintjs-ml
beta

Keep the evidence behind a model release

FootPrint coordinates the workflow and your trainer keeps its code. Check matching evaluation evidence, then reopen the release decision later. No npm release yet.

Device collectors

The same idea at the collector, for on-prem devices.

Datapipeline

Keep the work behind a data result

footprintjs-datapipeline

Collection and derivation workflows built on FootPrint, with traceable execution evidence.

Walk back and replay

Whichever way it was stitched.

Lenses

Read the record.

Flow Lens

Inspect a recorded run

footprint-explainable-ui

Explore recorded steps, state and supported variable traces. Choose a recorded subflow invocation where the record format supports it.

Why Lens

Inspect context and tools

agentfootprint-lens

Compare recorded messages, prompts, tool activity, decisions and cost while investigating an agent run.

Story Lens

Follow the recorded journey

agentthinkingui

Present a supported agent record as a story a person can replay and inspect. The story explains captured evidence, not a model’s hidden reasoning.

Also in the family

Related tools from the same project.

StoryDeck

One story, several ways to read it

footprint-storydeck

Turn structured content into an article, a scrolling story or a presentation. FootPrint integration is optional.

ContextFootprint

Spot conflicting claims in your context

contextfootprint

Compare supplied assertions by identity and find conflicts. It does not decide which one is true.

Build with a coding agent. Debug from the record.

Use FootPrint in an ordinary application. Your coding agent can inspect its recorded run without putting an AI model inside the application.

  1. Build

    Use named stages, tracked state and explicit decisions.

  2. Record

    Run the application with the required recorders enabled.

  3. Inspect

    Follow the wrong result back through its recorded dependencies.

  4. Verify

    Add a regression test, repair the code and record another run.

Share the relevant trace slice rather than an entire log dump. The context needed depends on the workflow and tooling; no measured token or speed saving is claimed.

Questions

What is footprintjs?

footprintjs is a family of open source TypeScript libraries for execution provenance. Recorders capture the steps, tracked state and decisions behind a result as connected notes, so people and coding agents can walk back from it, replay it and audit it.

What is execution provenance?

It is a record of how a result was produced: which steps ran, what they read and wrote, and which decisions they took, joined by the edges between them. Logs give you facts. Provenance also gives you the links between them.

How is this different from logs and traces?

Logs record messages, and traces record order. A footprintjs record also keeps the decisions and the data behind them, so you can follow one result back through its dependencies instead of searching everything.

How do I debug why an AI agent gave an answer?

Build the agent with AgentFootprint, which records its context, tool calls, model calls and decisions as it runs. Start at the answer and follow the recorded evidence backward, or inspect the run in Why Lens. An LLM can explain those findings, but it does not invent the history.

Do I have to rewrite my app to use it?

No. Software built in the pattern is stitched by default. For what you cannot rebuild, you stitch in code: HACI Footprint and VizFootprint bind a framework's events into actions, Datapipeline does the same at the collector level, and footprintjs-ml coordinates workflows around your existing trainer.

What happens when a link in the record is missing?

It stays a labelled gap with a reason, such as not-collected or no-match. When backward evidence is incomplete, Foottrace withholds the root cause and reports its gaps instead of guessing.

Does recording need an LLM?

No. An ordinary application can keep an execution record without an LLM. You enable the recorders you need before the run.

Can the record be used as an audit trail?

Yes, as a side effect. The same record that lets you walk back and replay gives security monitoring a trail to read. It is evidence of what was observed. It does not by itself prove correctness, compliance or the cause of an outside event.