# Share a Braintrust Eval Report — One Link, No Seat Required

Canonical: https://commareports.com/agents/share-braintrust-eval-report
Published: 2026-09-12

> Braintrust keeps your eval history behind a login. Export the run you need to show and publish it to Comma so a reviewer with no Braintrust seat can read the scores and comment on the failing cases.

# Share a Braintrust eval report

Braintrust is good at the part that is genuinely hard: scoring runs, diffing
experiments, keeping the trace. What it cannot do is get a domain expert who
does not work here to look at eleven specific rows.

That is a sharing problem, and it is solved by a link rather than by another
invite.

## Export the rows you need reviewed

```python
import braintrust, pandas as pd

experiment = braintrust.init(project="support-answers", open=True, experiment="run-1042")
rows = [
    {
        "input": r["input"]["question"],
        "output": r["output"],
        "expected": r.get("expected"),
        **{k: v for k, v in (r.get("scores") or {}).items()},
    }
    for r in experiment.fetch()
]

df = pd.DataFrame(rows).sort_values("factuality")
df.to_html("braintrust.html", index=False, float_format="%.3f", escape=True)
```

Sort ascending on the score you care about so the worst cases are at the top
of the page. Then publish:

```bash
curl -fsS -X PATCH "https://commareports.com/api/v1/reports/$REPORT_ID" \
  -H "Authorization: Bearer $COMMA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --rawfile html braintrust.html \
        --arg title "Support answers — run 1042" '{title: $title, html: $html}')"
```

## Why the review layer is the missing half

Scores tell you something moved. They do not tell you whether the reference
answer was right in the first place — and the person who knows that is rarely
the person with the eval tooling open.

- **Anchored threads** — "expected is wrong, the model is right" sits on the
  row. See [commenting on HTML](/comment-on-html).
- **Revisions** — one report id per experiment family; each publish appends a
  run rather than replacing it.
- **Access per report** — private, team-only, or domain-gated. Eval sets carry
  customer text; see the [sharing model](/docs/sharing).

## Close the loop with the agent

The corrections are structured feedback, and an agent can read them back
through [the MCP server](/docs/mcp) to fix the eval set —
[give an agent feedback](/agents/give-an-agent-feedback) covers the shape of
it.

## Limits

- **Entry HTML: 5 MB.** Full model outputs per row add up; truncate the output
  column or split the export by scorer.
- **Assets: 25 MB per file, 250 MB and 500 files per report.**
- **60 requests/minute per token.**

## Try it

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

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

### Related

- [Share an LLM eval report](/agents/share-llm-eval-report) · [Share a LangSmith eval report](/agents/share-langsmith-eval-report)
- [Share a Langfuse eval report](/agents/share-langfuse-eval-report) · [Share a Ragas evaluation report](/agents/share-ragas-eval-report)
- [Share a pandas DataFrame as HTML](/share-pandas-dataframe-html) · [Where should my agent post?](/agents/where-should-my-agent-post)
