backdraft

backdraft

Every number, one click from its source.

Backdraft creates shareable, self-contained documents with clickable citations.

Shipped as a skill and a CLI, it's a general toolkit to use with any agent.

Point it at your files, and your agent is verifiably factually-grounded.

$ uv tool install "backdraft[vlm]"

Citations clickable for every reader.

Click a claim below for an example sourcing.

Bridgeview Commons: Screening Memo

Prepared from the T12 summary and underwriting model

Trailing performance supports the request. Net operating income for the trailing twelve months was $1,429,6001, and physical occupancy was 96.4% in the most recent month2.

The sponsor's model carries a purchase price of $24.85 million3 with a 65% loan, which puts the request comfortably inside covenant at trailing income.

Numbers open spreadsheets, prose opens pages. In the full artifact the cited page images are in here too.

Reference 1

T12 Summary

Page 1

Total operating expenses were $1,254,800, or $9,803 per unit per year. Net operating income for the trailing twelve months was $1,429,600.

token bd:t12-summary:p1.c3:f10b

Reference 2

T12 Summary

Page 1

The resulting economic occupancy of 90.3% reflects an average physical occupancy of 94.1% offset by concessions, bad debt, and vacancy loss. Physical occupancy was 96.4% in the most recent month and has not fallen below 92.0% in any month of the period.

token bd:t12-summary:p1.c2:7f11

Reference 3

Underwriting Model

Assumptions · B10

AB
8Vacancy and credit loss0.0700
9Replacement reserve250
10Purchase price24,850,000
11Loan amount16,152,500
12Interest rate0.0615

token bd:underwriting-model:assumptions!B10:964a

All packaged in one small HTML file, ready to share.

A backdraft artifact carries its own receipts: the verbatim quotes, the cited page images, the spreadsheet cells with their neighbors, all embedded in one file a couple of megabytes big. It works offline, it survives forwarding, and the person reading it needs zero explanation.

Quickstart.

  1. Install the CLI

    $ uv tool install "backdraft[vlm]"
  2. Give your agent the skill

    $ backdraft skill install

    Drops the writing skill into ~/.claude/skills/ (add --project for a repo's .claude/skills/). Any other agent can work from backdraft.dev/llms.txt, a compact plain-text reference.

  3. Ask for cited work

    "Write me a screening memo from ./deal-docs, with citations."

    The agent ingests the folder, reads through the gate, writes with a token on every claim, and hands you the artifact.

How it works.

  1. Point it at your documents

    Ingest a folder and backdraft snapshots every file: PDFs page by page (a vision model reads glossy layouts and scans, so the receipts are clean), spreadsheets cell by cell. Every paragraph and every cell gets a stable, content-addressed citation token.

    $ backdraft ingest deal-docs/*
  2. Your agent reads through a gate, and cites as it writes

    The skill routes all source reading through backdraft, which stamps a token on everything it shows and records what was shown. So the agent can only cite things it actually read. A made-up citation isn't possible, and a citation to something it never opened gets caught at bind time.

    [net operating income of $1,429,600](bd:t12-summary:p1.c3:f10b)
  3. Bind checks everything, render ships one file

    Every citation resolves or gets reported, nothing drops silently. Then render produces the artifact: document, receipts, and evidence in a single HTML file. Send it to anyone.

    $ backdraft bind memo.md && backdraft render memo.md
Caught in the field

The memo said 7.7%. The model said 7.6%.

On a real financing memorandum, the marketing page advertised a 7.7% year-one debt yield. The underwriting model's cell held 0.0765, which rounds to 7.6%. Backdraft's optional number check reads through commas, currency, percentages and rounding, and it names exactly what it could not find. This is the kind of thing that takes an analyst an afternoon to catch, when it gets caught at all.

# the claim cites the marketing page and the model cell
Figures pass: the figure appears in this source.
Figures fail: not found in this source: 7.7%.
# the cell holds 0.0765, which rounds to 7.6%

Built to be trusted.

Failures stay visible

A clean document says nothing extra. But a claim citing something the writer never read, a source that changed after writing, or a citation that names nothing gets announced on the document's face and kept in the record. Backdraft never hides a problem to make a report look good.

Your documents stay yours

Everything runs locally. The artifact makes zero network requests, and the browser enforces that with a Content-Security-Policy, not a promise. Backdraft never reads ambient API keys, so nothing gets sent to a provider you didn't explicitly configure.

Spreadsheet cells are real citations

A cited cell renders selected inside its own sheet, with row labels, headers and neighbors, and opens into the full sheet scrolled to the highlight. If your numbers live in Excel, your citations should too.

The format outlives the tool

Every artifact embeds a machine-readable record with a legend that teaches a cold reader, human or model, how to decode and check it. The spec is three markdown files. Nothing about your documents depends on this software existing.