Share an Opik eval report

Opik gives you traces, datasets and scored experiments, and keeps all of it in a Comet workspace or a self-hosted instance. Both are places a reviewer from outside your team does not have access to.

Export the experiment items

import pandas as pd
from opik import Opik

client = Opik()
experiment = client.get_experiment_by_name("support-answers-v3")

rows = []
for item in experiment.get_items():
    rows.append({
        "input": item.dataset_item_data.get("question"),
        "output": item.evaluation_task_output.get("output"),
        **{s["name"]: s["value"] for s in (item.feedback_scores or [])},
    })

pd.DataFrame(rows).to_html("opik.html", index=False, float_format="%.3f", escape=True)

Then publish it:

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 opik.html \
        --arg title "Support answers v3" '{title: $title, html: $html}')"

Why the link matters

  • Anchored threads — the judgment call sits on the row, not in Slack. See commenting on HTML.
  • Revisions — one report id per suite; every run is kept.
  • Access per report — private, team-only, or domain-gated. See the sharing model.

Close the loop with the agent

An agent can read the review back through the MCP server and update the dataset or the prompt — give an agent feedback.

Limits

  • Entry HTML: 5 MB. Truncate long outputs or export per 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 →

Related