Share a DVC report

dvc plots diff main is one of the better ML review experiences that exists. It produces dvc_plots/index.html, opens your browser, and stops there — the reviewer, who has neither your working tree nor your remote, gets a paragraph in the PR description instead.

Publish the file DVC already wrote

dvc plots diff main --targets eval/curves.json
# → file:///.../dvc_plots/index.html

Drag dvc_plots/index.html into the app, or from CI:

dvc plots diff main -o dvc_plots

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 dvc_plots/index.html \
        --arg title "Metrics vs main — $GIT_SHA" '{title: $title, html: $html}')"

Then post the link as a PR comment. See publishing from CI for the per-provider wiring, and GitHub Actions for the full job.

Why the review layer matters for a metrics diff

A DVC diff is a claim: this branch is better. Reviewing that claim means arguing about which curve counts, which is a conversation that belongs on the curve:

  • Anchored threads — "this is within run-to-run variance, show me three seeds" sits on the plot. See commenting on HTML.
  • Revisions — one report id per pipeline; drift is visible without a dashboard.
  • Access per report — private, team-only, or domain-gated, which matters because metrics often leak dataset shape. See the sharing model.

Limits

  • Entry HTML: 5 MB. DVC inlines plot data, so a long curve with many revisions can approach it — narrow --targets or downsample the JSON.
  • 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 a DVC report →

Related