# Share an Inspect AI Eval Log — Bundle the Viewer, Send a URL

Canonical: https://commareports.com/share-inspect-ai-log
Published: 2026-08-30

> inspect view bundle turns an eval log directory into a static site. Publish that bundle to Comma so reviewers can open the samples, read the transcripts, and comment — without installing Inspect.

# Share an Inspect AI eval log

Inspect writes `.eval` logs and gives you `inspect view` to read them — a
local server, on your machine, pointed at your log directory. Which is fine
until the interesting result is the one somebody else needs to look at.

The escape hatch is already in the CLI:

```bash
inspect view bundle --log-dir logs --output-dir dist
```

That writes a **self-contained static viewer**: the log viewer app plus the
logs it reads. Everything a reviewer needs, in one directory, and still
unopenable by double-clicking — the viewer fetches its logs as modules, and
`file://` origins block that.

## Publish the bundle

Drag `dist/` (or a zip of it) into [the app](https://commareports.com/):

- `index.html` becomes the report body.
- The viewer bundle and every log file upload as assets, with their relative
  references rewritten to the uploaded copies.
- Scripts run inside a sandboxed iframe (`allow-scripts`, no
  `allow-same-origin`), so the sample list, the transcript panes and the score
  filters all work.

From a pipeline, zip it and POST/PATCH through [the API](/docs/api) against a
stable report id so each eval run appends a revision instead of scattering
links.

## Keep the transcripts private on purpose

Eval logs are not marketing assets. They contain full model transcripts,
often on prompts you would rather not have indexed. Every report is private
until you say otherwise; from there the choices are team, email-domain gate,
named reviewers, or a public link — see the [sharing model](/docs/sharing)
and, for a link you want gated by a password rather than an account,
[password-protecting a report](/password-protect-html-report).

## Review is the point

The disagreement in an eval review is almost never about the headline score.
It is about individual samples:

- **Anchored threads** on the sample whose grade is wrong — see
  [commenting on HTML](/comment-on-html).
- **Revisions** — one report id per eval, one revision per run, so a scorer
  change is a diff rather than two tabs and a squint.
- **Agent loop** — the agent that runs the eval can read those comments back
  through [MCP](/docs/mcp) and adjust the task or the grader.

## Limits

- **Entry HTML: 5 MB.** Assets: 25 MB per file, 250 MB and 500 files total,
  500 files max. A bundle over many hundreds of samples can hit the file
  count — bundle a filtered log directory instead of everything.
- **60 requests/minute per token.**

## Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision
history.

**[Publish an eval bundle →](https://commareports.com/)**

### Related

- [Share an LLM eval report](/agents/share-llm-eval-report) · [Share a promptfoo report](/share-promptfoo-report)
- [Share a deep research report](/agents/share-deep-research-report) · [Scoped tokens for AI agents](/agents/scoped-tokens-for-ai-agents)
- [Daily eval refresh routine](/features/routines/daily-claude-eval-refresh) · [MCP setup](/docs/mcp)
