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.