proofs.rs

Preview a report locally

Use cargo proofs preview --draft to review local report text before recording verification, or cargo proofs preview to review recorded evidence before publishing. The recorded mode combines proofs.toml, a successful verification run, and existing report text when revising a report. The browser displays the report, individual claims, reproduction instructions, logs, and a SARIF download using the UI bundled with your installed CLI.

Preview an unverified draft

Before committing or pushing your source, run:

cargo proofs preview --draft

This mode reads the local configuration and Cargo package metadata. It requires Node.js 24 or newer, but no Git repository, recorded run, verification tool, login, or service connection. It makes no service API requests and does not read or update credentials, run records, or publication state.

The report text, environment, assumptions, limitations and Finding drafts are displayed with an Unverified draft banner. For Aeneas, Configured proof mappings lists the API, module, theorem and configured precondition. Each mapping has a local detail page. These are authoring inputs: no theorem audit, API signature, verification result, source commit, execution log or SARIF is supplied by this mode. Other tools display report text without discovering verification harnesses.

To select a configuration beneath the selected package directory:

cargo proofs preview --draft --manifest-path path/to/crate/Cargo.toml \
  --proofs-config aeneas/profiles/stage2/proofs.toml

--proofs-config requires --draft; paths must stay inside the package directory. --draft cannot be combined with --run or --report. Save your configuration and reload the browser to update both prose and mappings. Invalid configuration appears as an error; fix it and reload.

Draft preview never creates publishable evidence. The normal recording and publication checks still apply, and normal preview does not fall back to draft mode when its recording is missing or invalid.

Start the preview

Install Node.js 24 or newer alongside a CLI version that includes preview. Other CLI commands do not require Node.js. No npm installation is needed to use the installed CLI.

From the crate directory, after cargo proofs run has recorded verification:

cargo proofs preview

The command prints a URL such as http://127.0.0.1:54321/report and opens it in your browser. The port is selected automatically; the server is accessible only on your computer. Stop it with Ctrl+C.

For another workspace or a fixed local port:

cargo proofs preview --manifest-path path/to/crate/Cargo.toml --port 8080 --no-browser

Use -p NAME to select a package in a workspace. --no-browser prints the URL without opening a browser. If a fixed port is already in use, choose another or omit --port.

Review the report and claims

Every page is marked Local preview — not published. Under Verified APIs, click an API name or Claim #… to open the local claim page. Check its title, preconditions, explanation, evidence, assumptions, and limitations, including the shared report context. Use the report link to return to the overview.

Report-to-claim navigation, recorded-run pages, and SARIF downloads stay on localhost. Tool details, dependency evidence, and the API catalogue link within a claim open the selected remote service. An unresolved API name has no catalogue link; its Claim #… link still opens locally.

Edit the report fields, including optional [[report.findings]] entries with title and Markdown body, in proofs.toml, save, and reload the browser. Changes to prose do not require another verification run. A configuration error appears as an error page; correct it and reload. The preview has no browser-based editor, publication button, comments, or stars.

Select a run or revise an existing report

By default, preview selects the latest local run when it starts and keeps that selection until restart. Recording another run does not silently switch the open preview. Select one explicitly with:

cargo proofs preview --run <RUN_UUID>

The run must match the package version and tool configuration. A missing or failed run cannot be previewed as publishable evidence. Preview does not run verification.

With valid saved credentials, the CLI selects the same saved publication target as publish. To preview an existing public report explicitly, including without login:

cargo proofs preview --report 123

Replace 123 with your report ID. The report must target the same crate/version. Omitted optional report fields preserve existing Web text; explicitly empty values clear it. Claim text is preserved by matching APIs, while preconditions and evidence come from the recorded run. Local claim pages show this proposed content, including when the claims already have permanent published IDs.

For an existing report, preview shows its published findings. Local report.findings is used only for initial publication; later additions and edits use the website or Findings API. See Add findings.

New reports need no login. If saved authentication is unavailable, automatic report selection is unavailable too: preview explains that it is showing a new report unless you supplied --report. To read another service, pass --server ORIGIN or set PROOFS_SERVER.

Understand warnings and publication checks

Missing or ambiguous API metadata is marked unverified. The recorded API path remains visible, but a signature or existing claim match is not guessed. Missing tool details and dependency evidence are also identified. Pinned dependency reviews are shown; the full direct-dependency catalogue is unavailable locally.

A changed server revision, claims absent from the draft, a withdrawn report, or an interrupted publication is reported without changing publication state. Preview does not resolve these publication conditions for you.

CommandWhat it does
cargo proofs preview --draftDisplays unverified local configuration; no recorded run, service requests or state updates
cargo proofs previewOpens recorded evidence in the local reader UI; only GET requests to the service; no upload or state updates
cargo proofs publish --dry-runPrints prospective publication data; requires authentication and may prepare the API catalogue on the service
cargo proofs publishUploads the recorded SARIF, performs final validation, and publishes or revises the report

The UI matches the CLI release you installed. To pick up a newly built or installed UI bundle, stop and restart preview; browser reload refreshes report data only. For source-checkout instructions, see the CLI documentation.