# Comma
> Turn any HTML report into a collaborative workspace — for humans and agents. Comma renders raw HTML from dashboards, notebooks, and AI tools faithfully inside an isolated sandbox, then layers Google-Docs-style anchored commenting on top. Routines re-run the source skill on a cron and post the refreshed output as a new revision, so reports stay live without anyone touching them.
Comma is a SaaS web app at https://commareports.com. The product treats HTML as a document: you paste, upload, or have an agent post HTML, get a shareable link, and your team marks up paragraphs and table cells in context. The same scoped `comma_sk_...` API token works for both the REST API and the Model Context Protocol (MCP) server, so Claude Code, Cursor, and VS Code agents are first-class collaborators.
Built by Nadir Tech LLC. The Comma product is free to use — publishing, collaboration, revisions, and sharing are included at no cost, with no paid plan and no seat count. Enterprise is sales-led and covers organization-scale deployment rather than feature access.
## Machine-readable surfaces
- [Full content](https://commareports.com/llms-full.txt): The documentation cluster in full, plus an index of the remaining content parts at `https://commareports.com/llms-full/.txt` — raw markdown, split so each part fits in a context window.
- [Pricing (markdown)](https://commareports.com/pricing.md): Plans, prices, and limits, generated from the same source as the pricing page.
- [OpenAPI spec](https://commareports.com/api/v1/openapi.json): Machine-readable REST API reference (OpenAPI 3.1).
- Markdown mirrors: every page linked below is also served as raw markdown at `https://commareports.com/md.md` (e.g. `https://commareports.com/md/docs/quickstart.md`).
## Core pages
- [Homepage](https://commareports.com/): Product overview and demo.
- [Pricing](https://commareports.com/pricing): Human-readable pricing.
- [Report types](https://commareports.com/report-types): Every report type with a publishing guide — test results, coverage, security scans, notebooks, generated docs, slides. One page that enumerates the whole library.
- [HTML viewer](https://commareports.com/tools/html-viewer): Free in-browser tool — paste HTML or open an .html file and see it render (CSS, JavaScript, charts) in a sandboxed preview, then turn it into a shareable Comma link.
- [Markdown to HTML](https://commareports.com/tools/markdown-to-html): Free in-browser tool — paste Markdown or open a .md file, get HTML (GFM tables, fenced code, lists), copy it, download a standalone page, or publish it as a shareable Comma link.
- [HTML to Markdown](https://commareports.com/tools/html-to-markdown): Free in-browser tool — paste HTML or open an .html file, get Markdown (headings, nested lists, fenced code with language, GFM pipe tables), copy it or download a .md.
- [CSV to HTML table](https://commareports.com/tools/csv-to-html-table): Free in-browser tool — paste CSV/TSV or a spreadsheet range, get an HTML table (auto-detected delimiter, RFC 4180 quoted fields, numeric alignment) or a Markdown pipe table, then publish it as a shareable Comma link with per-row comments.
- [CSV to chart](https://commareports.com/tools/csv-to-chart): Free in-browser tool — paste CSV or a spreadsheet range and get a bar, horizontal bar, line or pie chart as static SVG (no chart library, no script; currency, thousands separators, percentages and accounting negatives parsed; up to eight series, colorblind-checked palette), download SVG/PNG/HTML, or publish chart + data table as a shareable Comma link with anchored comments.
- [JSON to chart](https://commareports.com/tools/json-to-chart): Free in-browser tool — paste an API response, array of objects, flat {label: number} map, Chart.js {labels, datasets} config or NDJSON and get a bar, horizontal bar, line or pie chart as static SVG (envelopes unwrapped, nested fields flattened, numeric strings parsed), download SVG/PNG/HTML, or publish chart + data table as a shareable Comma link with anchored comments.
- [Excel to HTML table](https://commareports.com/tools/excel-to-html-table): Free in-browser tool — open an .xlsx, .xls or .ods workbook (parsed locally, never uploaded), pick a sheet or all sheets, and get an HTML table with Excel's displayed number/currency/date formats kept, or a Markdown pipe table; publish it as a shareable Comma link with per-row comments.
- [JSON to HTML table](https://commareports.com/tools/json-to-html-table): Free in-browser tool — paste a JSON array, an API response or NDJSON and get an HTML table (keys become columns, nested objects flatten to dot paths, envelopes like {"data": [...]} unwrapped), as HTML or a Markdown pipe table, then publish it as a shareable Comma link.
- [HTML table to CSV](https://commareports.com/tools/html-table-to-csv): Free in-browser tool — paste a page or an .html file, pick any table in it, and get RFC 4180 CSV for Excel and Google Sheets, TSV, a Markdown pipe table, or JSON records; the markup is parsed inertly and nothing uploads.
- [Sortable HTML table](https://commareports.com/tools/sortable-html-table): Free in-browser tool — paste an HTML table, a whole page or CSV and get click-to-sort column headers (numbers, currency, percentages and dates sort by value; data-sort-value overrides), an optional row filter and sticky header, as one dependency-free inline script; the published Comma link stays sortable.
- [HTML formatter](https://commareports.com/tools/html-formatter): Free in-browser tool — beautify minified HTML with 2-space, 4-space or tab indentation, or minify it back down; whitespace inside pre, code, script, style and textarea is preserved byte for byte and broken markup is left as-is rather than re-nested.
- [HTML diff](https://commareports.com/tools/html-diff): Free in-browser tool — compare two HTML, Markdown, CSV, JSON or text documents line by line, with minified markup normalized first so formatting noise doesn't hide the real edit; copy the result as a unified patch or publish it as a commentable Comma link.
- [HTML escape and unescape](https://commareports.com/tools/html-escape): Free in-browser tool — escape & < > and quotes to HTML entity references so markup shows as text, or decode named, decimal and hexadecimal references back to characters; optional non-ASCII escaping and a counter for double-escaped strings.
- [Image to Base64](https://commareports.com/tools/image-to-base64): Free in-browser tool — drop a PNG, JPEG, GIF, WebP, AVIF or SVG and get a data URI, an
tag, a CSS background rule or a Markdown image so the picture travels inside the HTML, or paste Base64 to decode it back to a downloadable file; nothing is uploaded.
- [URL encoder and decoder](https://commareports.com/tools/url-encoder): Free in-browser tool — percent-encode a query value or a whole URL, decode %XX escapes back to text one escape at a time so a malformed one survives, treat + as space for form-encoded strings, and break any absolute URL into scheme, host, port, path, fragment and decoded query parameters.
- [JSON formatter and validator](https://commareports.com/tools/json-formatter): Free in-browser tool — beautify JSON with 2-space, 4-space or tab indentation, minify it to one line, sort keys recursively for byte-identical diffs, and on a parse error get the exact line, column, the offending line with a caret and a plain-English diagnosis (trailing comma, single quotes, unquoted key, Python literal, comment).
- [JSON viewer](https://commareports.com/tools/json-viewer): Free in-browser JSON tree viewer — browse a payload as a collapsible tree with child counts, search keys and values (only matching branches open), click any node to copy its JSONPath or JavaScript/jq accessor, read NDJSON as an array, and publish the tree as a shareable link that folds without JavaScript.
- [Markdown table generator](https://commareports.com/tools/markdown-table-generator): Free in-browser tool — build a GitHub-flavored Markdown pipe table in an editable grid or paste one from Excel, Google Sheets, CSV or an existing Markdown table, set per-column left/center/right alignment, and copy padded Markdown or an HTML table; pipes and line breaks in cells are escaped.
- [SVG viewer](https://commareports.com/tools/svg-viewer): Free in-browser tool — paste SVG code or open an .svg file and see it render on transparent, light or dark backgrounds with its width, height, viewBox and first parse error spelled out; export to PNG at 1×, 2× or 4× or copy as a data URI. The SVG is loaded as an image, so embedded scripts never run.
- [Mermaid viewer](https://commareports.com/tools/mermaid-viewer): Free in-browser tool — paste Mermaid code (or a whole fenced mermaid block from a chat or README) and see flowcharts, sequence, class, state, ER, Gantt, pie and mindmap diagrams render live with the exact syntax error; switch themes and download as SVG or PNG. The diagram source never leaves the browser.
- [CSV to JSON converter](https://commareports.com/tools/csv-to-json): Free in-browser tool — convert CSV, TSV or a pasted spreadsheet range to an array of objects, array of arrays, column map or NDJSON; numbers, booleans and nulls typed while leading-zero values (ZIP codes, IDs) and integers beyond 2^53 stay strings, dotted headers like customer.name nested, blank and duplicate headers renamed instead of overwritten; or publish the rows as a shareable Comma table with anchored comments.
- [JSON to CSV converter](https://commareports.com/tools/json-to-csv): Free in-browser tool — convert a JSON array, an API response wrapped in {"data": […]}, or JSON Lines to CSV or TSV; nested objects flattened to dot-path columns (customer.name), the header is the union of keys across all records, RFC 4180 quoting, comma/semicolon/tab/pipe delimiters, a UTF-8 BOM so Excel shows accents correctly, and an optional CSV-injection guard; or publish the rows as a shareable Comma table with anchored comments.
- [YAML to JSON converter](https://commareports.com/tools/yaml-to-json): Free in-browser tool — convert YAML to JSON or JSON to YAML with the YAML 1.2 core schema (no, on and bare dates stay strings), multi-document streams as a JSON array, anchors and merge keys resolved, and the line and column of any syntax error.
- [XML to JSON converter](https://commareports.com/tools/xml-to-json): Free in-browser tool — convert XML to JSON or JSON to XML; attributes become @-prefixed keys and mixed text #text, repeated elements become arrays with an always-array option for a stable shape, namespace prefixes kept or stripped, numbers and booleans inferred while leading zeros and long IDs stay strings, CDATA read as text, and the parser error for malformed XML.
- [JWT decoder](https://commareports.com/tools/jwt-decoder): Free in-browser tool — decode a JSON Web Token's header and payload, see iss/sub/aud and exp/nbf/iat as dates with time until expiry; the token is never uploaded and signatures are deliberately not verified.
- [Cron expression explainer](https://commareports.com/tools/cron-explainer): Free in-browser tool — translate a five-field cron expression (crontab, GitHub Actions, Kubernetes CronJob) into plain English, break down each field, and list the next runs in UTC or local time; flags the day-of-month OR day-of-week rule and Quartz-only syntax (seconds, ?, L, W, #).
- [HTML to PDF](https://commareports.com/tools/html-to-pdf): Free in-browser tool — paste HTML or open an .html file and save it as a PDF with the browser's own engine: A4, Letter, Legal, A3 or A5, portrait or landscape, margin presets, background colors kept, table rows and charts kept from splitting across pages, and elements hidden by CSS selector; nothing is uploaded.
- [HTML inliner](https://commareports.com/tools/html-inliner): Free in-browser tool — drop a folder (index.html plus its css/, js/, img/ and fonts) and get one self-contained .html with every local stylesheet, script, image, srcset candidate, icon and font embedded; url() in CSS resolves relative to the stylesheet, @import chains are flattened, CDN links are left alone and missing files are listed; nothing is uploaded.
- [HTML to image](https://commareports.com/tools/html-to-image): Free in-browser tool — paste HTML or open an .html file and capture it as a PNG or JPEG: 1200×630 social card, desktop, laptop, tablet, phone or custom width, full-page or fixed-size, 1×–3× density, transparent PNG, canvas and SVG charts included; copy to clipboard or download; nothing is uploaded.
- [Solutions](https://commareports.com/solutions): Who Comma is for — FP&A, marketing, product, agencies.
- [Security](https://commareports.com/security): Sandbox model, access control, and what Comma does not yet have.
- [About](https://commareports.com/about): Who builds Comma and why.
- [Mission](https://commareports.com/mission): What Comma is and what it refuses to be.
## For agents and developers
- [MCP install (bash)](https://commareports.com/install.sh): One-line installer for the `comma` Claude Code plugin, which attaches the MCP server.
- [MCP install (PowerShell)](https://commareports.com/install.ps1): Same installer for Windows.
- [Plugin source](https://github.com/doramirdor/comma-plugin): The `comma` Claude Code plugin (slash commands + MCP attachment). Install the marketplace with `claude plugin marketplace add doramirdor/comma-plugin`.
- [MCP endpoint](https://commareports.com/api/mcp): Streamable HTTP transport. Bearer auth via `comma_sk_...` tokens. Same scopes, revoke, and rate limits as the REST API.
- [REST API docs](https://commareports.com/docs/api): Reports, comments, and billing endpoints under Bearer auth, served from `https://commareports.com/api/v1`.
## Documentation
- [Comma Docs — publish, share, and automate HTML reports](https://commareports.com/docs): Documentation for Comma: quickstart, REST API reference, API tokens and scopes, MCP server setup, the Claude Code plugin, CI publishing, sharing controls, and routines.
- [REST API reference · Comma Docs](https://commareports.com/docs/api): Reference for the Comma Agent API: reports, revisions, diffs, comments, sharing, assets, reviews, routines, skills, connectors, and notifications — with methods and required token scopes.
- [API tokens & authentication · Comma Docs](https://commareports.com/docs/api-tokens): How Comma API tokens work: the comma_sk_ format, granular scopes, default scopes, expiry, instant revocation, and per-token rate limits.
- [Publish from CI · Comma Docs](https://commareports.com/docs/ci): Publish HTML reports to Comma from GitHub Actions, GitLab CI, or any pipeline with one curl. Stable URLs, revision history, and webhook notifications on every push.
- [Claude Code plugin · Comma Docs](https://commareports.com/docs/claude-code-plugin): Install the Comma plugin for Claude Code in one line. Slash commands for publishing, searching, linking, and an interactive in-browser review flow.
- [MCP server · Comma Docs](https://commareports.com/docs/mcp): Attach Comma's hosted MCP server to Claude Code, Cursor, Codex, or Claude Desktop. Full tool list, authentication, and per-client setup links.
- [monday.com app · Comma Docs](https://commareports.com/docs/monday): Install Comma for monday.com, connect your workspace, and send a document from any board item out for review. PDFs get a real text layer so reviewers comment on the sentence they mean.
- [Quickstart — publish your first report · Comma Docs](https://commareports.com/docs/quickstart): Publish an HTML report to Comma in under two minutes: mint a scoped API token, POST the HTML, open the share link.
- [Routines — scheduled report refresh · Comma Docs](https://commareports.com/docs/routines): Routines re-run a skill on a schedule and append the output as a new revision of the same report. Setup, cadence, compute billing, manual runs, and the API surface.
- [Sharing & access control · Comma Docs](https://commareports.com/docs/sharing): Comma's report access model: five visibility levels, link permissions, per-person roles, password-protected links, domain-gated viewing, and zero-knowledge encryption.
## Free tools
- [Free HTML, JSON & Markdown Tools — Convert, Format, Share · Comma](https://commareports.com/tools): Twenty-nine free browser tools for HTML, SVG, Mermaid, Markdown, CSV, JSON, YAML, XML, JWTs and URLs: render an .html or .svg file or a Mermaid diagram, save HTML as a PDF or a PNG, pack a page and its assets into one file, build a Markdown table, convert Markdown to HTML or back, convert a CSV to JSON or JSON to CSV, turn a CSV or JSON array into a table or a CSV into a chart, make any table sortable, format and validate JSON, browse JSON as a searchable tree, convert YAML or XML to JSON, decode a JWT, explain a cron schedule, encode a URL, diff two documents — then publish any of them as a shareable link with anchored comments. Nothing installs, nothing uploads.
## Guides — sharing & review
- [Box Won't Preview HTML Files — What to Do Instead (2026)](https://commareports.com/box-html-preview)
- [How to Leave Anchored Comments on an HTML Report](https://commareports.com/comment-on-html)
- [Dropbox Stopped Rendering HTML Files — What To Use Instead](https://commareports.com/dropbox-html-preview)
- [Emailing an HTML Report — Why It Breaks, and What to Send Instead](https://commareports.com/email-html-report)
- [Embed an HTML Report in Your Own Site — Two Lines, Allow-listed Origins](https://commareports.com/embed-html-report)
- [Embed an HTML Report in Confluence — Cloud Has No HTML Macro](https://commareports.com/embed-html-report-in-confluence)
- [Embed an HTML Report in Notion — A Live Page, Not a Screenshot](https://commareports.com/embed-html-report-in-notion)
- [Google Docs for HTML — anchored comments on rendered reports](https://commareports.com/google-docs-for-html)
- [Where to Host a Single HTML File — Every Option, and Where Each One Breaks](https://commareports.com/host-html-file)
- [My HTML Report Lost Its CSS — The Five Causes, In Order](https://commareports.com/html-report-broken-css)
- [Share an Interactive HTML Report — Charts That Still Work at the Link](https://commareports.com/interactive-html-reports)
- [How To Open an HTML File on iPhone or Android](https://commareports.com/open-html-file-on-iphone)
- [Someone Sent Me an HTML File — How Do I Open It?](https://commareports.com/open-html-file-online)
- [Password-Protect an HTML Report (and Why You Often Shouldn't)](https://commareports.com/password-protect-html-report)
- [Serve an HTML File Locally — and Why localhost Isn't a Share](https://commareports.com/serve-html-file-locally)
- [Share an Accessibility Report — axe, pa11y and Lighthouse Results on a Link](https://commareports.com/share-accessibility-report)
- [How to Share an Allure Report — Hosting Options and the Honest Trade-offs](https://commareports.com/share-allure-report)
- [Share an Altair Chart — Keep the Tooltips, Lose the Screenshot](https://commareports.com/share-altair-chart)
- [Share an Android Test Report — Espresso Results at a URL](https://commareports.com/share-android-test-report)
- [Share an Angular Build — dist/ as a Review URL](https://commareports.com/share-angular-build)
- [Share an Ansible Playbook Report — ARA Output at a URL](https://commareports.com/share-ansible-report)
- [Share an Antora Docs Site — Preview a Multi-Repo Build](https://commareports.com/share-antora-docs)
- [Share an Appium Report — Screenshots and Device Logs Included](https://commareports.com/share-appium-report)
- [How to Share an Applitools Eyes Result Outside the Test Manager](https://commareports.com/share-applitools-report)
- [Share an Artillery Load Test Report](https://commareports.com/share-artillery-report)
- [Share an AsciiDoc / Asciidoctor HTML Document](https://commareports.com/share-asciidoc-html)
- [Share an Astro Build — Preview dist/ Without a Deploy](https://commareports.com/share-astro-site)
- [Share an async-profiler Report — The JVM Flame Graph as a URL](https://commareports.com/share-async-profiler-report)
- [Share AsyncAPI Docs — Event Contracts as a Reviewable Link](https://commareports.com/share-asyncapi-docs)
- [Share an autocannon Report — Latency Percentiles Without a Terminal Paste](https://commareports.com/share-autocannon-report)
- [Share an AVA Test Report — TAP Out, One Link Back](https://commareports.com/share-ava-report)
- [Share an axe Accessibility Report — Violations at a Link, Not in JSON](https://commareports.com/share-axe-report)
- [How to Share Azure ML Job Results Without a Studio Login](https://commareports.com/share-azure-ml-report)
- [Share a BackstopJS Report — Visual Diffs Someone Can Actually Approve](https://commareports.com/share-backstopjs-report)
- [Share a Bandit Report — Python Security Findings Someone Will Triage](https://commareports.com/share-bandit-report)
- [Share a Behave HTML Report — BDD Results Your Product Owner Can Open](https://commareports.com/share-behave-report)
- [Share a Benchmark Report — Make the Regression Reviewable](https://commareports.com/share-benchmark-report)
- [Share a Biome Report — Fast Lint Results, Shareable](https://commareports.com/share-biome-report)
- [Share a Bokeh Plot — Publish the HTML, Keep the Interaction](https://commareports.com/share-bokeh-plot)
- [Share a bookdown Book — All the Chapters, One Link](https://commareports.com/share-bookdown-book)
- [Share a Brakeman Report — Rails Security Findings at a URL](https://commareports.com/share-brakeman-report)
- [How to Share a BrowserStack Test Session With a Client](https://commareports.com/share-browserstack-report)
- [Share a Bruno API Test Report — One Link From bru run](https://commareports.com/share-bruno-report)
- [Share a Bun Test Report — A Link Instead of a CI Log](https://commareports.com/share-bun-test-report)
- [Share a Bundle Analyzer Report — Treemap on a Link, Not a Screenshot](https://commareports.com/share-bundle-analyzer-report)
- [Share a Burp Suite Report — Evidence Intact, Access Controlled](https://commareports.com/share-burp-suite-report)
- [Share a cargo-nextest Report — Rust Test Runs as a URL](https://commareports.com/share-cargo-nextest-report)
- [Share a Catch2 Report — Keep the Expression Decomposition](https://commareports.com/share-catch2-report)
- [Share a CDK Diff — The Change Set, Readable, at a URL](https://commareports.com/share-cdk-diff)
- [Share a Chart.js Chart — A Link, Not a Screenshot of a Canvas](https://commareports.com/share-chartjs-chart)
- [Share a Checkov Report — IaC Findings at a URL](https://commareports.com/share-checkov-report)
- [Share a Checkstyle, PMD or SpotBugs Report](https://commareports.com/share-checkstyle-report)
- [How to Share a Chromatic Build With Reviewers Outside Your Team](https://commareports.com/share-chromatic-build)
- [Share a clang-tidy Report — HTML via CodeChecker, at a URL](https://commareports.com/share-clang-tidy-report)
- [How to Share a ClearML Experiment From a Self-Hosted Server](https://commareports.com/share-clearml-report)
- [Share a Clinic.js Report — Doctor, Flame and Bubbleprof as Links](https://commareports.com/share-clinicjs-report)
- [Share a Clippy Report — Rust Lints as SARIF, Then a Link](https://commareports.com/share-clippy-report)
- [Share a Cobertura Coverage Report — The Drill-Down, Not the Percentage](https://commareports.com/share-cobertura-report)
- [Share a Codeception HTML Report — PHP Test Runs on a Link](https://commareports.com/share-codeception-report)
- [Share CodeQL Results — SARIF Rendered for People Without Repo Access](https://commareports.com/share-codeql-results)
- [How to Share a Google Colab Notebook — Link Sharing, Drive Permissions, and HTML Exports](https://commareports.com/share-colab-notebook)
- [How to Share a Comet ML Experiment With People Outside the Workspace](https://commareports.com/share-comet-report)
- [Share Compodoc Output — Angular Docs at a URL](https://commareports.com/share-compodoc)
- [Share an HTML Coverage Report — Drop the Whole htmlcov Folder](https://commareports.com/share-coverage-report)
- [Share a Cppcheck HTML Report — Findings in the Source, at a URL](https://commareports.com/share-cppcheck-report)
- [Share a Criterion.rs Benchmark Report — Plots and All](https://commareports.com/share-criterion-benchmark-report)
- [Share a CTest Report — Without Standing Up a CDash](https://commareports.com/share-ctest-report)
- [Share a Cucumber HTML Report — One Link, Comments on Failed Scenarios](https://commareports.com/share-cucumber-report)
- [Share a Cypress Test Report — One Link, Comments on the Failures](https://commareports.com/share-cypress-report)
- [Share a D2 Diagram — Links and Tooltips Still Working](https://commareports.com/share-d2-diagram)
- [Share a D3 Visualization — With the Interaction Intact](https://commareports.com/share-d3-visualization)
- [How to Share a Plotly Dash App Without Deploying a Server](https://commareports.com/share-dash-app)
- [Share a Databricks Notebook — Results Without a Workspace Seat](https://commareports.com/share-databricks-notebook)
- [How to Share a Datadog Dashboard — Public URLs, Embeds and Scheduled Digests](https://commareports.com/share-datadog-dashboard)
- [Share dbt Docs With Analysts Who Don't Have a dbt Account](https://commareports.com/share-dbt-docs)
- [Share a Deepchecks Report — Data & Model Validation People Can Argue With](https://commareports.com/share-deepchecks-report)
- [Share a DeepEval Report — LLM Test Results as a Link](https://commareports.com/share-deepeval-report)
- [How to Share a Deepnote Notebook or App With People Outside Your Workspace](https://commareports.com/share-deepnote-notebook)
- [Share a Deno Test Report — Coverage and Results at a URL](https://commareports.com/share-deno-test-report)
- [Share an OWASP Dependency-Check Report — Triage It, Don't Archive It](https://commareports.com/share-dependency-check-report)
- [Share a dependency-cruiser Report — Module Graphs on a Link](https://commareports.com/share-dependency-cruiser-report)
- [Share a detekt HTML Report — Kotlin Findings Somebody Else Can Open](https://commareports.com/share-detekt-report)
- [Share a Detox Test Report — React Native E2E Without the Screen Recording](https://commareports.com/share-detox-report)
- [Share a DocC Archive — Swift API Docs Without a Web Server](https://commareports.com/share-docc-archive)
- [Share a DocFX Site — .NET API Docs Without an App Service](https://commareports.com/share-docfx-site)
- [Share a Docsify Site — The One That Goes Blank on file://](https://commareports.com/share-docsify-site)
- [Share a Docusaurus Build — Review the Docs Before They Ship](https://commareports.com/share-docusaurus-site)
- [Share Dokka HTML Docs — Kotlin API Reference That Opens Anywhere](https://commareports.com/share-dokka-docs)
- [Share a .NET Coverage Report — ReportGenerator's Whole Folder, One Link](https://commareports.com/share-dotnet-coverage-report)
- [Share Doxygen Docs — C and C++ API Docs at a URL](https://commareports.com/share-doxygen-docs)
- [How to Share a draw.io Diagram With Someone Who Won't Install It](https://commareports.com/share-drawio-diagram)
- [Share a D-Tale View — Without Leaving the Server Running](https://commareports.com/share-dtale-report)
- [Share a DVC Report — `dvc plots` Output Someone Else Can Open](https://commareports.com/share-dvc-report)
- [Share an ECharts HTML File — Vendor the Library, Keep the Interaction](https://commareports.com/share-echarts-html)
- [Share an EDA Report — Profiling Output on a Private Link](https://commareports.com/share-eda-report)
- [Share an Elementary Data Report — dbt Test Results Without a Host](https://commareports.com/share-elementary-report)
- [Share an Eleventy Build — _site/ at a Link, No Deploy](https://commareports.com/share-eleventy-site)
- [Share an esbuild Metafile — Bundle Analysis as a Link](https://commareports.com/share-esbuild-metafile)
- [Share an ESLint HTML Report — Something Better Than 4,000 Console Lines](https://commareports.com/share-eslint-report)
- [Share an Evidence.dev Build — BI Without the Deploy Step](https://commareports.com/share-evidence-dev-site)
- [Share an Evidently Drift Report — Model Monitoring Someone Can Actually Open](https://commareports.com/share-evidently-report)
- [How to Share an Excalidraw Drawing as a Link (2026)](https://commareports.com/share-excalidraw-drawing)
- [Share ExDoc Output — Elixir Docs Without Hex or a Bucket](https://commareports.com/share-exdoc)
- [Share an Extent Report — Spark HTML on a Link, With Comments](https://commareports.com/share-extent-report)
- [Share a flake8 HTML Report — A Backlog People Can Claim](https://commareports.com/share-flake8-report)
- [Share a Flame Graph — A Link That Keeps the Zoom and Search](https://commareports.com/share-flamegraph)
- [Share a Flutter Test and Coverage Report](https://commareports.com/share-flutter-test-report)
- [Share a Folium Map — A Live Leaflet Map on a Link](https://commareports.com/share-folium-map)
- [Share a Gatling Report — Publish the Whole Result Directory](https://commareports.com/share-gatling-report)
- [Share a Gatsby Site Preview — Publish public/ Without a Deploy](https://commareports.com/share-gatsby-site)
- [Share a Ginkgo Test Report — Go Specs as a URL](https://commareports.com/share-ginkgo-report)
- [Share a Giskard Scan Report — Model Vulnerabilities as a Link](https://commareports.com/share-giskard-report)
- [Share a Gitleaks Report — Secret Findings Without Leaking Them Further](https://commareports.com/share-gitleaks-report)
- [Share a Go Test Report — HTML Coverage and Results at a URL](https://commareports.com/share-go-test-report)
- [Share Go Package Docs — A Link, Not a localhost Port](https://commareports.com/share-godoc)
- [Share a golangci-lint HTML Report — Go Lint Findings at a URL](https://commareports.com/share-golangci-lint-report)
- [Share a gosec Report — Go Security Findings, Already HTML](https://commareports.com/share-gosec-report)
- [How to Share a Gradio App — share=True, Spaces, and What to Do When the Link Expires](https://commareports.com/share-gradio-app)
- [Share a Gradle Test Report — One Link Instead of build/reports](https://commareports.com/share-gradle-test-report)
- [How to Share a Grafana Dashboard — Snapshots, PDFs and the Digest Pattern](https://commareports.com/share-grafana-dashboard)
- [How to Share a Graphviz Diagram — Dependency Graphs That Open](https://commareports.com/share-graphviz-diagram)
- [Share Great Expectations Data Docs — Without Standing Up a Bucket](https://commareports.com/share-great-expectations-data-docs)
- [Share a Grype Report — Container CVEs Somewhere People Read Them](https://commareports.com/share-grype-report)
- [Share a GoogleTest Report — C++ Results as a Link, Not a Log Tail](https://commareports.com/share-gtest-report)
- [Share a Hex Notebook or App — Outside the Workspace](https://commareports.com/share-hex-notebook)
- [Share a Highcharts Chart — Drilldown and Export Still Working](https://commareports.com/share-highcharts-chart)
- [Share a HoloViews Plot — Keep the Interactivity, Lose the Screenshot](https://commareports.com/share-holoviews-plot)
- [Google Drive Won't Render Your HTML File — Here's What To Do](https://commareports.com/share-html-file-google-drive)
- [Send a Report to a Client Without a PDF, a Login, or a 40 MB Attachment](https://commareports.com/share-html-file-with-client)
- [How to Share a Folder of HTML Files (index.html + assets) in 2026](https://commareports.com/share-html-folder)
- [How to Share an HTML Report with Your Team for Feedback](https://commareports.com/share-html-report)
- [Share an HTML Report in Slack — A Link That Unfurls, Not a Screenshot](https://commareports.com/share-html-report-in-slack)
- [Share an HTML Report in Microsoft Teams — Without the SharePoint Download](https://commareports.com/share-html-report-in-teams)
- [Share a Hugo Site Preview — Send the `public/` Folder as a Link](https://commareports.com/share-hugo-site)
- [Share a hyperfine Benchmark — Numbers With Error Bars, as a Link](https://commareports.com/share-hyperfine-benchmark)
- [Share an Infracost Report — Cloud Cost Diffs on a Reviewable Link](https://commareports.com/share-infracost-report)
- [Share an InSpec Report — Compliance Controls on a Link](https://commareports.com/share-inspec-report)
- [Share an Inspect AI Eval Log — Bundle the Viewer, Send a URL](https://commareports.com/share-inspect-ai-log)
- [Share an Istanbul / nyc Coverage Report — One Link for the Whole Tree](https://commareports.com/share-istanbul-report)
- [Share a JaCoCo Coverage Report — Link, Not a Build Artifact](https://commareports.com/share-jacoco-report)
- [Share a Jasmine Test Report — JUnit XML to a Shareable Page](https://commareports.com/share-jasmine-report)
- [Share Javadoc — Publish API Docs Without Standing Up a Server](https://commareports.com/share-javadoc)
- [Share a Jekyll Build — Preview _site/ Without Deploying](https://commareports.com/share-jekyll-site)
- [Share a Jest HTML Report — Stable Link, Comments on Failures](https://commareports.com/share-jest-report)
- [Share a JMeter HTML Dashboard — A Link Instead of a Zipped Folder](https://commareports.com/share-jmeter-report)
- [Share a JMH Benchmark Report — With the Error Bars Still Attached](https://commareports.com/share-jmh-benchmark-report)
- [Share a jscpd Duplication Report — Copy-Paste Findings on a Link](https://commareports.com/share-jscpd-report)
- [Share JSDoc Output — Host the docs/ Folder Without a Server](https://commareports.com/share-jsdoc)
- [Turn JUnit XML Into a Shareable HTML Report](https://commareports.com/share-junit-report)
- [Share a Jupyter Book — Publish the Built Site as a Link](https://commareports.com/share-jupyter-book)
- [Share a Jupyter Notebook as HTML — nbconvert to a Link](https://commareports.com/share-jupyter-notebook-html)
- [Share a k6 Load Test Report — Stable Link, Run-to-Run Diffs](https://commareports.com/share-k6-load-test-report)
- [How to Share a Kaggle Notebook Outside Kaggle](https://commareports.com/share-kaggle-notebook)
- [Share a Karate Test Report — API Scenarios on a Link](https://commareports.com/share-karate-report)
- [Share a Karma or Angular Test Report — One Link From CI](https://commareports.com/share-karma-report)
- [Share a kepler.gl Map — The Export, With the Map Still Interactive](https://commareports.com/share-kepler-gl-map)
- [How to Share a Kibana Dashboard With People Who Have No Kibana Access](https://commareports.com/share-kibana-dashboard)
- [Share a KICS Scan Report — IaC Findings on a Reviewable Link](https://commareports.com/share-kics-report)
- [Share a ktlint HTML Report — Kotlin Lint at a URL](https://commareports.com/share-ktlint-report)
- [Share a Kubescape Report — Cluster Posture on a Link](https://commareports.com/share-kubescape-report)
- [Share an lcov / genhtml Coverage Report — The Whole Tree on One Link](https://commareports.com/share-lcov-report)
- [Share a Leaflet Map — A URL, Not a File That Opens Blank](https://commareports.com/share-leaflet-map)
- [Share a License Report — The Answer Legal Keeps Asking For](https://commareports.com/share-license-report)
- [Share a Lightdash Dashboard Outside the dbt Team](https://commareports.com/share-lightdash-dashboard)
- [Share a Lighthouse Report — A Link Your Team Can Comment On](https://commareports.com/share-lighthouse-report)
- [Share a LIME Explanation — The Interactive One, Not a Screenshot](https://commareports.com/share-lime-explanation)
- [Share a Locust Load Test Report — One Link Per Run](https://commareports.com/share-locust-report)
- [How to Share a Looker Studio Report — Link Sharing, Credentials and Scheduled Delivery](https://commareports.com/share-looker-studio-report)
- [How to Share a Maestro Mobile Test Report (2026)](https://commareports.com/share-maestro-report)
- [Share a marimo Notebook as HTML — A Link, Not a `marimo run`](https://commareports.com/share-marimo-notebook)
- [Share Marp Slides — Publish a Markdown Deck as a Link](https://commareports.com/share-marp-slides)
- [Share a Maven Site Report — target/site at a URL](https://commareports.com/share-maven-site-report)
- [Share an mdBook — Publish book/ Without a Static Host](https://commareports.com/share-mdbook)
- [Share a memray Report — Send the Memory Flame Graph as a Link](https://commareports.com/share-memray-report)
- [How to Share a Mermaid Diagram So It Actually Renders (2026)](https://commareports.com/share-mermaid-diagram)
- [How to Share a Metabase Dashboard — Public Links, Embeds and Subscriptions](https://commareports.com/share-metabase-dashboard)
- [Share a Minitest Report — Ruby Runs as a Page, Not a Paste](https://commareports.com/share-minitest-report)
- [Share Mintlify Docs for Review — Without a Deploy Preview Seat](https://commareports.com/share-mintlify-docs)
- [Share a MkDocs Site Privately — A Build, Not a Deployment](https://commareports.com/share-mkdocs-site)
- [Share an MLflow Run Report Without Giving Out Tracking Server Access](https://commareports.com/share-mlflow-report)
- [Share a Mochawesome Report — Mocha Results on a URL](https://commareports.com/share-mochawesome-report)
- [Share a MultiQC Report — Sequencing QC on a Link Collaborators Can Read](https://commareports.com/share-multiqc-report)
- [Share a mypy HTML Report — Type Coverage Someone Will Actually Read](https://commareports.com/share-mypy-report)
- [Share a jupyter nbconvert HTML Export — A Link, Not an Attachment](https://commareports.com/share-nbconvert-html)
- [Share a Newman / Postman Run Report — One Link Per Collection](https://commareports.com/share-newman-postman-report)
- [Share a Nextflow Execution Report — Pipeline Runs on a Link](https://commareports.com/share-nextflow-report)
- [Share a Next.js Static Export — Preview a Build Without Deploying It](https://commareports.com/share-nextjs-static-export)
- [Share a Nextra Site — Static Export to a Review URL](https://commareports.com/share-nextra-site)
- [Share a Nightwatch HTML Report — Failures on a Link, Screenshots Intact](https://commareports.com/share-nightwatch-report)
- [Share a Nikto Scan Report — Web Server Findings on a Link](https://commareports.com/share-nikto-report)
- [Share an Nmap Scan Report — HTML Link, Access-Controlled](https://commareports.com/share-nmap-report)
- [Share an npm audit Report — Something Better Than a Terminal Dump](https://commareports.com/share-npm-audit-report)
- [Share a Nuclei Report — Findings at a URL, Not in a Terminal Scrollback](https://commareports.com/share-nuclei-report)
- [Share an NUnit HTML Report — A URL Instead of TestResult.xml](https://commareports.com/share-nunit-report)
- [Share a Nuxt Static Site Preview — A Link Before the Deploy](https://commareports.com/share-nuxt-static-site)
- [Share an Observable Framework Build — Data Apps at Your Own Link](https://commareports.com/share-observable-notebook)
- [Share an Observable Plot — Without the Notebook or the Account](https://commareports.com/share-observable-plot)
- [Share OpenAPI Docs — Redoc or Swagger UI on a Reviewable Link](https://commareports.com/share-openapi-docs)
- [Share an OpenVAS / Greenbone Report — Without Mailing the Host List](https://commareports.com/share-openvas-report)
- [Share an Optuna Dashboard — Hyperparameter Results at a URL](https://commareports.com/share-optuna-dashboard)
- [Share an OSV-Scanner HTML Report — Vulnerability Findings at a URL](https://commareports.com/share-osv-scanner-report)
- [Share a Pa11y CI Accessibility Report — Issues With a URL](https://commareports.com/share-pa11y-report)
- [Share a Pandas DataFrame as HTML — `to_html()` Is a Fragment, Not a Page](https://commareports.com/share-pandas-dataframe-html)
- [Share Pandoc HTML Output — One Self-Contained File, One Link](https://commareports.com/share-pandoc-html)
- [Share a Panel App as HTML — Interactive Dashboards Without a Server](https://commareports.com/share-panel-app)
- [Share a Papermill Notebook Run — One URL per Parameter Set](https://commareports.com/share-papermill-report)
- [Share a Pentest Report — Without Emailing the Findings Around](https://commareports.com/share-pentest-report)
- [How to Share a Percy Visual Diff With Someone Without a Seat](https://commareports.com/share-percy-report)
- [Share a Pest Test Report — From PHPUnit XML to a Link](https://commareports.com/share-pest-report)
- [Share a pgBadger Report — Postgres Log Analysis on a Link](https://commareports.com/share-pgbadger-report)
- [Share phpDocumentor Output — PHP API Docs Without a Web Server](https://commareports.com/share-phpdoc)
- [Share a PHPStan Report — Level 9 Findings as a Link](https://commareports.com/share-phpstan-report)
- [Share a PHPUnit Coverage Report — One Link From CI](https://commareports.com/share-phpunit-report)
- [Share a pip-audit Report — Python Advisories as a Page](https://commareports.com/share-pip-audit-report)
- [Share a PIT Mutation Testing Report — Surviving Mutants, Shared](https://commareports.com/share-pitest-report)
- [Share a pkgdown Site — Package Docs Without a Deploy](https://commareports.com/share-pkgdown-site)
- [How to Share a PlantUML Diagram Without a Server (2026)](https://commareports.com/share-plantuml-diagram)
- [Share a Playwright HTML Report — Stable Link, Comments on Failures](https://commareports.com/share-playwright-report)
- [Share a Plotly Chart as a Link — Interactive, Not a Screenshot](https://commareports.com/share-plotly-html)
- [Share a PMD HTML Report — Java Static Analysis Someone Actually Reads](https://commareports.com/share-pmd-report)
- [How to Share a Power BI Report Without a Pro Licence for Every Reader](https://commareports.com/share-power-bi-report)
- [Share a pprof Profile — Without Telling People to Run go tool pprof](https://commareports.com/share-pprof-profile)
- [Share a Profiling Report — Send the Flame Graph, Not the Number](https://commareports.com/share-profiling-report)
- [Share a promptfoo Eval Report — Publish the Grid, Not a Screenshot](https://commareports.com/share-promptfoo-report)
- [Share a Prowler Report — Cloud Findings Without Emailing a Zip](https://commareports.com/share-prowler-report)
- [Share a Psalm Report — SARIF Out, One URL Back](https://commareports.com/share-psalm-report)
- [Share a Pulumi Preview — The Diff, Reviewable, at a URL](https://commareports.com/share-pulumi-preview)
- [Share a py-spy Profile — Send the Flame Graph, Not a Screenshot](https://commareports.com/share-py-spy-profile)
- [Share a PyCaret Report — Model Comparison Without the Notebook](https://commareports.com/share-pycaret-report)
- [Share a pydeck Map — Keep the Pan, Zoom and Tooltips](https://commareports.com/share-pydeck-map)
- [Share a pyinstrument Report — The Call Tree, Not a Terminal Paste](https://commareports.com/share-pyinstrument-report)
- [Share a Pylint HTML Report — A Link Instead of 4,000 Console Lines](https://commareports.com/share-pylint-report)
- [Share a pytest HTML Report — One Link, Comments on Failures](https://commareports.com/share-pytest-report)
- [Share a Quarto HTML Report — Send the Render, Not the Project](https://commareports.com/share-quarto-report)
- [Share an Amazon QuickSight Dashboard Without an AWS Account](https://commareports.com/share-quicksight-dashboard)
- [Share a Ragas Evaluation — RAG Scores Someone Can Argue With](https://commareports.com/share-ragas-report)
- [Share a Redash Dashboard With Someone Who Has No Redash Account](https://commareports.com/share-redash-dashboard)
- [Share Redoc API Docs — One HTML File, One Review Link](https://commareports.com/share-redoc-api-docs)
- [Share a reg-suit Report — Visual Diffs Without an S3 Bucket](https://commareports.com/share-reg-suit-report)
- [Share a reveal.js Presentation — One Link, Comments on Slides](https://commareports.com/share-revealjs-presentation)
- [Share an R Markdown Report — knitr HTML on a Link, With Comments](https://commareports.com/share-rmarkdown-report)
- [Share a Robot Framework Report — report.html and log.html, on a Real URL](https://commareports.com/share-robot-framework-report)
- [Share a Rollup Visualizer Report — Bundle Size on a Link (Vite Too)](https://commareports.com/share-rollup-visualizer-report)
- [Share an RSpec HTML Report — One Link Per Run](https://commareports.com/share-rspec-report)
- [Share a RuboCop HTML Report — Offenses With a Link, Not a Log Dump](https://commareports.com/share-rubocop-report)
- [Share a Ruff Report as HTML — SARIF In, One Link Out](https://commareports.com/share-ruff-report)
- [Share a Rust Coverage Report — Tarpaulin or llvm-cov at a URL](https://commareports.com/share-rust-coverage-report)
- [Share Rustdoc — Internal Crate Docs Without docs.rs](https://commareports.com/share-rustdoc)
- [How to Share an Amazon SageMaker Notebook Result Without an AWS Account](https://commareports.com/share-sagemaker-notebook)
- [Share a SARIF Report — Turn the Findings Into Something Readable](https://commareports.com/share-sarif-report)
- [How to Share Sauce Labs Test Results Outside Your Org](https://commareports.com/share-sauce-labs-report)
- [Share an SBOM — A Link a Customer Can Actually Open](https://commareports.com/share-sbom-report)
- [Share Scaladoc — API Docs at a URL, No Hosting Step](https://commareports.com/share-scaladoc)
- [Share Scalar API Docs — One HTML File From Your OpenAPI Spec](https://commareports.com/share-scalar-api-docs)
- [Share a Scalene Report — CPU, GPU and Memory in One Link](https://commareports.com/share-scalene-report)
- [Share SchemaSpy Database Docs — A Browsable Schema on a Link](https://commareports.com/share-schemaspy-docs)
- [Share a Schemathesis Report — API Fuzzing Results as a Link](https://commareports.com/share-schemathesis-report)
- [Share a Scout Suite Report — Publish the Folder, Not the Zip](https://commareports.com/share-scoutsuite-report)
- [Share a Security Scan Report — Private Link, Comments on Each Finding](https://commareports.com/share-security-scan-report)
- [Share a Semgrep Report — Findings at a URL, Not a SARIF File](https://commareports.com/share-semgrep-report)
- [Share a Serenity BDD Report — Screenshots, Drill-Down and All](https://commareports.com/share-serenity-report)
- [Share a SHAP Plot — Model Explanations a Reviewer Can Open](https://commareports.com/share-shap-plot)
- [How to Share an R Shiny App — shinyapps.io, Shinylive, and Static Reports](https://commareports.com/share-shiny-app)
- [Share a Sigma Dashboard — A Link That Doesn't Need a Sigma Seat](https://commareports.com/share-sigma-dashboard)
- [Share a SimpleCov Coverage Report — coverage/index.html, With a URL](https://commareports.com/share-simplecov-report)
- [Share a sitespeed.io Report — A Link Instead of `sitespeed-result/`](https://commareports.com/share-sitespeed-report)
- [Share a Slidev Deck — A Link Instead of a Screen Share](https://commareports.com/share-slidev-presentation)
- [Share a Snyk Report — Vulnerabilities Your Team Can Actually Discuss](https://commareports.com/share-snyk-report)
- [Share a SonarQube Report — A Link for People Without a Sonar Login](https://commareports.com/share-sonarqube-report)
- [Share a source-map-explorer Report — Bundle Size Everyone Can Open](https://commareports.com/share-source-map-explorer-report)
- [Share SpecFlow LivingDoc — Feature Files the Business Can Open](https://commareports.com/share-specflow-livingdoc)
- [Share a Spectral Report — API Style Findings as a Link](https://commareports.com/share-spectral-report)
- [Share a speedscope Profile — Without Asking Anyone to Install It](https://commareports.com/share-speedscope-profile)
- [Share Sphinx Docs — A Whole HTML Build on One Link](https://commareports.com/share-sphinx-docs)
- [Share a SpotBugs HTML Report — Java Bug Patterns at a URL](https://commareports.com/share-spotbugs-report)
- [Share a Starlight Docs Site — A Preview Link Before You Deploy](https://commareports.com/share-starlight-docs)
- [Share a Statoscope Report — Bundle Analysis at a URL](https://commareports.com/share-statoscope-report)
- [Share a Static Storybook Build — One Link, With Comments](https://commareports.com/share-storybook-static)
- [How to Share a Streamlit App — Community Cloud, Private Hosting, and Static Snapshots](https://commareports.com/share-streamlit-app)
- [How to Share a Structurizr C4 Model With Non-Engineers](https://commareports.com/share-structurizr-diagram)
- [Share a Stryker Mutation Report — reports/mutation/mutation.html, Hosted](https://commareports.com/share-stryker-report)
- [Share a Stylelint Report — CSS Findings Someone Can Read](https://commareports.com/share-stylelint-report)
- [How to Share an Apache Superset Dashboard Outside Your Superset](https://commareports.com/share-superset-dashboard)
- [Share a SvelteKit Build — A Preview Link From adapter-static](https://commareports.com/share-sveltekit-site)
- [Share Swagger UI Docs — A Reviewable Link for Your OpenAPI Spec](https://commareports.com/share-swagger-ui-docs)
- [Share a Sweetviz Report — Send the Comparison, Not a Screenshot](https://commareports.com/share-sweetviz-report)
- [Share a SwiftLint HTML Report — One Link, No Xcode](https://commareports.com/share-swiftlint-report)
- [How to Share a Tableau Dashboard — Public, Server, and the Middle Ground](https://commareports.com/share-tableau-dashboard)
- [Share a TensorBoard Report — Training Curves Without a Port Forward](https://commareports.com/share-tensorboard-report)
- [Share a Terraform Plan — Readable, Reviewable, Not Truncated](https://commareports.com/share-terraform-plan)
- [Share a Terrascan Report — Policy Violations Somebody Will Read](https://commareports.com/share-terrascan-report)
- [Share a TestCafe HTML Report — Browser Results Without the Artifact Hunt](https://commareports.com/share-testcafe-report)
- [Share a TestNG Report — test-output/ on a Real URL](https://commareports.com/share-testng-report)
- [Share a testssl.sh Report — TLS Findings on a Link](https://commareports.com/share-testssl-report)
- [Share a TFLint Report — Terraform Findings as a Link](https://commareports.com/share-tflint-report)
- [Share a tfsec Report — Terraform Misconfigurations at a Link](https://commareports.com/share-tfsec-report)
- [Share a Trivy Scan Report — Vulnerabilities on a Link, Not in a Log](https://commareports.com/share-trivy-report)
- [Share a TruffleHog Report — Leaked Secrets, Handled Carefully](https://commareports.com/share-trufflehog-report)
- [Share TypeDoc Output — API Docs at a URL, No Site Required](https://commareports.com/share-typedoc)
- [Share an Unlighthouse Report — Site-Wide Lighthouse Scores on a Link](https://commareports.com/share-unlighthouse-report)
- [Share a Valgrind Report — Callgrind and Memcheck Without KCachegrind](https://commareports.com/share-valgrind-report)
- [Share a Vega-Lite Chart — Interactive, Not a PNG](https://commareports.com/share-vega-lite-chart)
- [Share a Vegeta Load Test Plot — Latency on a Link](https://commareports.com/share-vegeta-report)
- [How to Share Vertex AI Results Without Granting Console Access](https://commareports.com/share-vertex-ai-report)
- [Share a Vite Build — Send the dist/ Folder, Not a Screenshot](https://commareports.com/share-vite-build)
- [Share a VitePress Build — Docs Preview at a Link](https://commareports.com/share-vitepress-site)
- [Share a Vitest HTML Report — A Link Instead of a Terminal Paste](https://commareports.com/share-vitest-report)
- [How to Share a Voilà Dashboard — Hosting a Kernel, or Publishing the Output](https://commareports.com/share-voila-notebook)
- [Share a VuePress Site — A Docs Preview Without a Deploy](https://commareports.com/share-vuepress-site)
- [Share a Weights & Biases Report — Without Buying the Reader a Seat](https://commareports.com/share-wandb-report)
- [Share a WebdriverIO Test Report — One URL per Suite](https://commareports.com/share-webdriverio-report)
- [Share a WebPageTest Result — A Link That Won't Expire](https://commareports.com/share-webpagetest-report)
- [Share a whylogs Report — Drift Evidence at a URL](https://commareports.com/share-whylogs-report)
- [Share an Xcode Test Report — .xcresult at a URL Anyone Can Open](https://commareports.com/share-xcode-test-report)
- [Share an xUnit HTML Report — Stop Pasting the .NET Test Summary](https://commareports.com/share-xunit-report)
- [Share YARD Docs — Ruby API Documentation at a Link](https://commareports.com/share-yard-docs)
- [Share a ydata-profiling Report — Send the Profile, Not the 40 MB File](https://commareports.com/share-ydata-profiling-report)
- [Share an OWASP ZAP Report — Findings on a Link, Triage in Place](https://commareports.com/share-zap-report)
- [How to Share an Apache Zeppelin Notebook Outside the Cluster](https://commareports.com/share-zeppelin-notebook)
- [Share a Zola Site Preview — One Binary, One Build, One Link](https://commareports.com/share-zola-site)
- [SharePoint and OneDrive Won't Open Your HTML File](https://commareports.com/sharepoint-html-preview)
- [Stop Screenshotting Reports Into Slack](https://commareports.com/stop-screenshotting-reports)
- [Upload an HTML File and Get a Link — Including the Folder It Came In](https://commareports.com/upload-html-file-get-link)
- [Website Feedback Tool: Comments on a Live Build That Your Coding Agent Can Read](https://commareports.com/website-feedback)
## Guides — AI agents
- [Where AI Agents Publish Their Work — Reports, Comments, Replies](https://commareports.com/agents): Agents generate HTML nobody can open and answer feedback nobody can leave. Give an agent a report URL, a comment thread it can read, and a scoped token — over REST or MCP.
- [Context Budgeting for AI Reports: Cut LLM Token Waste Before You Cut Quality](https://commareports.com/agents/context-budgeting-ai-reports): A practical guide to context budgeting for AI report agents. Learn how to reduce LLM token consumption, preserve prompt cache hits, and avoid paying models to re-read the same report every run.
- [How to Give an AI Agent Feedback — anchored, in place, on its actual output](https://commareports.com/agents/give-an-agent-feedback): Telling an agent 'try again' loses the specifics. Anchored comments on the agent's HTML output give it exactly what it needs to adjust — and Comma's MCP server lets it read those comments back.
- [Let an AI Agent Respond to Anchored Comments on Its Own Output](https://commareports.com/agents/let-an-agent-respond-to-comments): An agent that can read and reply to comments on its own HTML reports closes the feedback loop. Comma's MCP server exposes `list_comments`, `reply_to_comment`, and `set_comment_status` as typed tools.
- [Scoped Tokens for AI Agents — one revoke, every surface](https://commareports.com/agents/scoped-tokens-for-ai-agents): An AI agent needs a credential. That credential needs to be scoped, revocable, rate-limited, and shared across every surface the agent touches. Comma's `comma_sk_…` token is that shape.
- [How to Share an AgentOps Session Replay With Your Team](https://commareports.com/agents/share-agentops-report): AgentOps session replays live behind a dashboard login and tell you what the agent did, not what it produced. Publish a run summary anyone can read and reply to.
- [Share Aider's Output — One curl After the Run](https://commareports.com/agents/share-aider-output): Aider is file-and-git shaped, so its analysis ends up as a commit or a terminal buffer. A three-line publish step turns the run's write-up into a URL with a comment thread.
- [Share What Amazon Q Developer Produced — A Link, Not a Chat Pane](https://commareports.com/agents/share-amazon-q-output): Amazon Q writes the upgrade plan, the IAM review, the cost analysis — into a CLI session or an IDE pane nobody else can open. Publish it to a URL your team can read and comment on.
- [Share Amp's Output — A Thread Is Not a Document](https://commareports.com/agents/share-amp-output): Amp runs in the terminal and the editor and produces long, careful write-ups. Add Comma as an MCP server and put the rule in AGENTS.md so each one ends as a page with a URL.
- [Share What Antigravity Produced — Walkthroughs That Leave the Editor](https://commareports.com/agents/share-antigravity-output): Antigravity writes implementation plans and task walkthroughs into its Artifacts pane, where only you can read them. Publish the walkthrough to a URL your reviewer can open and comment on.
- [Share What Augment Produced — Codebase Analysis With an Address](https://commareports.com/agents/share-augment-output): Augment reads the whole repo and writes the impact analysis, the dependency map, the refactor plan into an editor panel. Publish it to a URL reviewers can open and comment on.
- [Share an AutoGen Run's Output — Publish From the Group Chat](https://commareports.com/agents/share-autogen-output): An AutoGen group chat ends with the answer buried in a message list and any HTML in a code-executor work_dir. Publish the final artifact and return a URL instead.
- [Share a Bolt.new Project for Review — Without Sharing the Editor](https://commareports.com/agents/share-bolt-output): Bolt builds and runs a full-stack app in the browser, which makes it easy to demo and awkward to review. How to hand reviewers a fixed build with anchored comments instead of a link into your workspace.
- [Share a Braintrust Eval Report — One Link, No Seat Required](https://commareports.com/agents/share-braintrust-eval-report): 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 HTML an AI Chat Generated — From Canvas or Artifact to a Real Link](https://commareports.com/agents/share-chatgpt-html-output): ChatGPT canvases and Claude artifacts render beautifully and travel badly. Paste the HTML into Comma to get a shareable URL that renders the real thing, keeps comments on it, and does not require an account to read.
- [Share Claude Agent SDK Output — Add Comma's MCP Server](https://commareports.com/agents/share-claude-agent-sdk-output): A Claude Agent SDK run writes files into a sandbox you don't ship. Attach Comma's MCP server so query() ends with a report URL your reader can actually open.
- [Share Claude Code's Output — A URL, Not a Scrollback Buffer](https://commareports.com/agents/share-claude-code-output): Claude Code writes the audit, the migration plan, the incident timeline — into a terminal only you can see. Give it a publish tool and it hands back a link your team can open and comment on.
- [Share a Claude Desktop Artifact — A Link Instead of a Screenshot](https://commareports.com/agents/share-claude-desktop-output): Claude Desktop builds the dashboard, the write-up, the interactive chart — inside the app on your machine. Give it the Comma MCP server and it publishes to a URL anyone can open.
- [Share Cline's Output — Publish the Plan, Don't Screenshot It](https://commareports.com/agents/share-cline-output): Cline plans, investigates and writes long summaries inside a VS Code panel. Add Comma's MCP server and a .clinerules entry and it publishes the result as a page with a stable URL.
- [Share OpenAI Codex Output — Put the Result Somewhere a Human Can Read It](https://commareports.com/agents/share-codex-output): Codex finishes the task in a sandbox and prints the summary to your terminal. Add one line to AGENTS.md and it publishes the report to a URL your team can open, read and comment on.
- [Share Continue's Output — From the Assistant Panel to a URL](https://commareports.com/agents/share-continue-output): Continue runs in VS Code and JetBrains and takes MCP servers in its config. Add Comma, add a rule, and finished analysis leaves the panel as a page your team can comment on.
- [Share GitHub Copilot's Output — Out of the Chat Panel, Onto a URL](https://commareports.com/agents/share-copilot-output): Copilot's agent mode produces reviews, plans and summaries inside a VS Code side panel. Add an MCP server and a repo instruction file and it publishes them as pages your team can open.
- [Share a CrewAI Crew's Output — Beyond output_file](https://commareports.com/agents/share-crewai-output): CrewAI's output_file writes report.html to the machine that ran the crew. Publish the final task's result instead and the crew kickoff returns a URL anyone can open.
- [Share What Cursor's Agent Produced — A Link, Not a Screenshot of Your Editor](https://commareports.com/agents/share-cursor-output): Cursor's agent writes the migration plan, the audit, the test summary — inside your editor, where nobody else can read it. Have it publish to a URL your team can open and comment on.
- [Share a Deep Research Report — Make the AI's Findings Reviewable](https://commareports.com/agents/share-deep-research-report): Deep research output is long, sourced, and mostly unread. Publish it as HTML in Comma so reviewers can challenge a specific claim in place, and so the next run updates the same link instead of starting a new thread.
- [Share a DeepEval Report — LLM Test Results Someone Else Can Open](https://commareports.com/agents/share-deepeval-report): DeepEval runs on pytest, so it emits a pytest HTML report like any other suite. Publish it to Comma and the failing test cases get a URL, anchored comments and a revision per run.
- [Share Devin's Output — When the Work Happened in Someone Else's VM](https://commareports.com/agents/share-devin-output): Devin works in a cloud workspace and reports back through its own session view. For the write-ups that are not pull requests, one API call gives the result a URL your whole team can read.
- [Share What a Factory Droid Produced — Output From a Machine You Can't Reach](https://commareports.com/agents/share-factory-droid-output): A droid runs its task in Factory's environment and writes the plan, the migration report, the RCA there. Have it publish to a URL you own, with anchored comments it can read back.
- [Share a Gemini Canvas Page for Review — Not Just a Link to the Chat](https://commareports.com/agents/share-gemini-canvas-output): Gemini Canvas builds HTML pages and dashboards beside the chat. How to take the page out of the conversation, share the exact version you mean, restrict who sees it, and collect comments on specific lines.
- [Share Gemini CLI Output — Publish the Answer, Don't Paste It](https://commareports.com/agents/share-gemini-cli-output): Gemini CLI's long answers live in a terminal nobody else has. Attach an MCP server, write the rule into GEMINI.md, and the agent publishes an HTML report and replies with a link.
- [How to Share a Giskard Scan Report (2026)](https://commareports.com/agents/share-giskard-report): Giskard's scan produces an HTML report that renders in a notebook and nowhere else. Publish it so risk, legal and product can read the findings and reply.
- [Share Goose's Output — Add Comma as an Extension](https://commareports.com/agents/share-goose-output): Goose's extensions are MCP servers, so publishing is just another one. Add Comma, add a recipe instruction, and Goose ends a session with a link instead of a terminal buffer.
- [Share Jules's Output — Beyond the Pull Request](https://commareports.com/agents/share-jules-output): Jules works asynchronously on a cloud VM and returns a pull request. For the analysis that is not a diff, a publish step in the workflow gives it a URL and a comment thread.
- [Share Junie's Output — Out of the JetBrains Tool Window](https://commareports.com/agents/share-junie-output): Junie plans and investigates inside IntelliJ, PyCharm or GoLand. Add Comma's MCP server and a guidelines entry and the finished document leaves the IDE as a URL with a comment thread.
- [Share What Kiro Produced — Specs and Design Docs With a URL](https://commareports.com/agents/share-kiro-output): Kiro writes requirements, design and task documents into .kiro/specs and nobody outside your editor reads them. Publish the spec to a link the PM and the reviewer can comment on.
- [Share a Langfuse Eval Result When Langfuse Is Self-Hosted](https://commareports.com/agents/share-langfuse-eval-report): Self-hosted Langfuse is behind your VPN, which is why the reviewer who needs to score the outputs can't see them. Publish the scored table to a URL they can open and comment on.
- [Share a LangGraph Run's Output — Publish From a Node](https://commareports.com/agents/share-langgraph-output): A LangGraph run ends with a report in state and nobody to read it. Add a publish node, return a URL, and let the graph read the comments on its next run.
- [Share a LangSmith Eval Result Without Sharing the Whole Trace](https://commareports.com/agents/share-langsmith-eval-report): A LangSmith public share link exposes the entire run — every prompt, every intermediate output. Publish the comparison your reviewers actually need, on a URL they can comment on.
- [Share a LlamaIndex Workflow's Output — Publish From a Step](https://commareports.com/agents/share-llamaindex-output): A LlamaIndex workflow ends with a StopEvent holding a report nobody can open. Publish from the final step and return a URL — plus the citations that justify it.
- [Share an LLM Eval Report — Make the Score Reviewable](https://commareports.com/agents/share-llm-eval-report): promptfoo, DeepEval and Ragas all produce an HTML view somebody has to run a server to see. Publish the eval to Comma for a link where a reviewer can disagree with a specific grade, on the row it's on.
- [How to Share lm-evaluation-harness Results (2026)](https://commareports.com/agents/share-lm-eval-harness-report): lm-eval prints a markdown table and writes JSON to a path. Publish the table, the config and the sample-level output as a page people can read and argue with.
- [Share a Lovable App for Review — Feedback Pinned to the Screen](https://commareports.com/agents/share-lovable-output): Lovable publishes an app in one click; collecting feedback on it still happens in screenshots and DMs. How to give reviewers a fixed version with comments pinned to the exact element, and route those comments back to the agent.
- [Share What Manus Produced — Your Own URL for the Agent's Deliverable](https://commareports.com/agents/share-manus-output): Manus finishes in its own cloud VM and hands you a file plus a share link on its domain. Republish the HTML to a URL you control, with your access rules and a comment thread.
- [Share a Mastra Agent's Output — A Tool or an MCPClient](https://commareports.com/agents/share-mastra-output): Mastra agents and workflows return text to whatever called them. Add a createTool that publishes, or attach Comma via MCPClient, and every run ends with a URL.
- [Share an n8n Workflow's Output — One HTTP Request Node](https://commareports.com/agents/share-n8n-output): n8n can build the report but not host it. Add an HTTP Request node that publishes the HTML, then send the URL to Slack or email instead of an attachment.
- [Share OpenAI Agents SDK Output — A Tool or an MCP Server](https://commareports.com/agents/share-openai-agents-sdk-output): Runner.run returns final_output and nothing anyone can open. Add a @function_tool or attach Comma's MCP server so the agent ends a run with a URL.
- [Share What opencode Produced — A Link, Not a Terminal Pane](https://commareports.com/agents/share-opencode-output): opencode writes the audit, the plan, the postmortem into a TUI session on your machine. Attach the Comma MCP server and it publishes to a URL your team can open and comment on.
- [Share OpenHands Output — Get It Out of the Sandbox](https://commareports.com/agents/share-openhands-output): OpenHands works inside a container whose filesystem disappears when the session ends. Publishing to a URL is the only exit that survives the runtime — over MCP or one REST call.
- [Share an Opik Eval Report — Comet's LLM Traces at a Plain URL](https://commareports.com/agents/share-opik-eval-report): Opik stores traces and eval results in a Comet workspace. Export the experiment rows to HTML and publish them to Comma so reviewers without a workspace can read and comment on them.
- [Share an Arize Phoenix Trace or Eval — Publish It Instead of Screen Sharing](https://commareports.com/agents/share-phoenix-trace-report): Phoenix runs on localhost:6006 and dies with the notebook. Export the trace or eval table to HTML and publish it to Comma so the spans someone needs to see survive at a URL.
- [Share a PydanticAI Agent's Output — Typed Result, Real URL](https://commareports.com/agents/share-pydantic-ai-output): PydanticAI gives you a validated output type. Make the report a URL in that type: add an @agent.tool that publishes, or attach Comma's MCP server.
- [Share a Qodo Review or Test Report — A Link Reviewers Can Answer](https://commareports.com/agents/share-qodo-output): Qodo's review and test-generation output lands in a PR comment or an IDE pane and scrolls away. Publish the full analysis to a URL with anchored comments the agent can read back.
- [Share a Ragas Evaluation Report — RAG Scores at a URL](https://commareports.com/agents/share-ragas-eval-report): Ragas gives you faithfulness, answer relevancy and context precision as a DataFrame. Export it to HTML and publish it to Comma so the team can argue about the low-scoring rows at one link.
- [Share Replit Agent Output — Without Handing Out a Replit Account](https://commareports.com/agents/share-replit-agent-output): Replit Agent's analysis lives inside a repl, so sharing it means inviting someone into your workspace. Publishing gives the document its own URL and its own access setting.
- [Share Roo Code's Output — Give Architect Mode Somewhere to Publish](https://commareports.com/agents/share-roo-code-output): Roo Code's modes produce plans and reviews that stay in a VS Code panel. Add Comma's MCP server, put the rule in your mode instructions, and each mode ends with a shareable URL.
- [Share What Trae's Agent Produced — A URL Instead of a Side Panel](https://commareports.com/agents/share-trae-output): Trae's builder writes the plan, the review, the analysis into a panel in your editor. Attach the Comma MCP server and it publishes finished work to a link your team can comment on.
- [How to Share a TruLens Evaluation Without the Dashboard](https://commareports.com/agents/share-trulens-report): TruLens runs its leaderboard on a local Streamlit dashboard nobody else can reach. Export the feedback scores and traces into a page and share a URL.
- [Share a v0 Design for Feedback — Comments on the Page, Not in Slack](https://commareports.com/agents/share-v0-output): v0 turns a prompt into a working UI in minutes; getting useful feedback on it takes longer. How to hand a v0 page to reviewers as a fixed version they can comment on, line by line, without a Vercel account.
- [Share What Warp's Agent Produced — A Link, Not a Scrollback Buffer](https://commareports.com/agents/share-warp-output): Warp's agent writes the incident timeline, the query plan analysis, the migration checklist — into a terminal block on your laptop. Publish it to a URL your team can open and comment on.
- [Share a W&B Weave Evaluation — A Link Without a Weights & Biases Seat](https://commareports.com/agents/share-weave-eval-report): Weave keeps evaluations inside a W&B project. Export the comparison table to HTML and publish it to Comma so reviewers without a seat can read the scores and comment on the rows.
- [Share Windsurf Cascade Output — A Link Instead of a Sidebar](https://commareports.com/agents/share-windsurf-output): Cascade's plans, audits and summaries end up in a Windsurf panel only you can see. Attach an MCP server, put the rule in your workspace rules, and it publishes a page with a URL.
- [Share Zed's Agent Output — Publish the Thread's Result](https://commareports.com/agents/share-zed-agent-output): Zed's agent panel produces documents that never leave the editor. Add Comma as a context server and the agent publishes finished work to a URL your team can read and annotate.
- [Where Do Claude Code Routines Post Their Reports?](https://commareports.com/agents/where-do-claude-code-routines-post): Claude Code Routines schedule the agent's work but don't say where a report should land. Session logs, Slack, and PRs each lose the review loop. Comma is the destination: publish via MCP, review with anchored comments, revise on the next run.
- [Where Should My AI Agent Post Its Work?](https://commareports.com/agents/where-should-my-agent-post): A practical guide for AI builders deciding where Claude, Cursor, or custom agents should publish their HTML output. Comparing Slack, S3, custom webhooks, and Comma's MCP-native posting surface.
## Routines & automation
- [Routines — your reports, refreshed on a cron, in the cloud | Comma](https://commareports.com/features/routines): Routines run a Claude skill (or any underlying skill) on a schedule and post the refreshed HTML as a new revision on your report. Hosted, scoped, with bring-your-own Bedrock keys or prepaid credit — unlimited routines at any cadence on every plan.
- [Hosted Cron for AI Agents | Comma Routines](https://commareports.com/features/routines/cron-for-ai-agents): Comma is the hosted cron for AI agents. Scoped tokens, prepaid-credit or bring-your-own Bedrock compute, and a posting surface that reviewers actually open. No Lambda, no GitHub Action, no Mac mini.
- [Daily Claude Eval Refresh, on Autopilot | Comma Routines](https://commareports.com/features/routines/daily-claude-eval-refresh): Run your Claude eval harness every morning. The results post as a new revision on a shared report; reviewers see the diff against yesterday and pin anchored comments. No babysitting.
- [Monthly Compliance Digest from Your AI Pipeline | Comma Routines](https://commareports.com/features/routines/monthly-compliance-digest): Run your monthly compliance checks as a Comma routine. The digest lands as a revision on a board-visible report with revision history, anchored comments, and a clean audit trail.
- [Run a Claude Skill on a Schedule | Comma Routines](https://commareports.com/features/routines/run-claude-skill-on-schedule): Wire any Claude skill to a daily, hourly, or monthly schedule. Comma re-runs it against fresh data and posts the new HTML as a revision on your report. No cron daemon to maintain.
- [Automated HTML Report Delivery on a Schedule | Comma Routines](https://commareports.com/features/routines/scheduled-html-reports): Stop maintaining a Python script that emails the weekly report. Comma routines re-run an underlying skill on a cron and post the refreshed HTML as a revision on a commentable, shareable document.
- [Weekly Analytics Digest, Refreshed in Place | Comma Routines](https://commareports.com/features/routines/weekly-analytics-digest): Replace the Monday morning analytics script with a routine. The digest re-runs on a cron, lands as a new revision on a shared Comma report, and reviewers comment in-place — same link every week.
## CI & pipelines
- [Publish HTML Reports From CI — Every Provider, One Pattern](https://commareports.com/ci): Your pipeline already builds an HTML report and then buries it in an artifact zip. The publish step is one curl. Guides for GitHub Actions, GitLab, Jenkins, CircleCI, Azure DevOps and Bitbucket.
- [Share an HTML Report From Airflow](https://commareports.com/ci/airflow-html-report): Airflow writes the report to a worker's local disk, or to a bucket only the DAG can read, and the UI is behind a login. Publish it from the task so the analyst waiting on it gets a URL.
- [Share an HTML Report From Argo Workflows](https://commareports.com/ci/argo-workflows-html-report): Argo artifacts live in your object store behind the cluster, and the Argo UI is usually behind a VPN. Publish the report from an exit handler so people outside Kubernetes can read it.
- [Share an HTML Report From AWS CodeBuild Without Building a Bucket](https://commareports.com/ci/aws-codebuild-html-report): CodeBuild report groups only understand test result formats, and an HTML artifact in S3 needs a bucket policy, a presigned URL or a static site. Publish it from buildspec.yml instead.
- [Publish an HTML Report from Azure Pipelines (Without a Marketplace Extension)](https://commareports.com/ci/azure-devops-html-report): Azure DevOps won't render an HTML artifact — it downloads as a zip and the run expires on a retention policy. Publish the report to a stable URL with one curl task: comments, revisions, and diffs included.
- [Publish an HTML Report from Bitbucket Pipelines (Artifacts Expire in 14 Days)](https://commareports.com/ci/bitbucket-pipelines-html-report): Bitbucket Pipelines artifacts download as a zip and expire after 14 days, and the Test Reports tab only parses JUnit XML. Publish the report to a stable URL with one curl step — comments, revisions and diffs included.
- [Share a Buildkite HTML Report — Past the Download Prompt](https://commareports.com/ci/buildkite-html-report): Buildkite artifacts download instead of rendering, and annotations only take a slice of markdown. Publish the real HTML report from the step and hand out a URL that renders.
- [Share a CircleCI HTML Report Outside the Artifacts Tab](https://commareports.com/ci/circleci-html-report): CircleCI will render your HTML artifact — for people with an org login, for 30 days, with nowhere to leave feedback. Publish the report to a stable URL from one step in config.yml instead.
- [Share an HTML Report From Dagster](https://commareports.com/ci/dagster-html-report): Dagster stores your HTML as a materialization or an IO-managed asset behind the webserver login. Publish it from the asset so the stakeholder waiting on the data gets a URL.
- [Publish an HTML Report from GitHub Actions (Without Pages or Artifact Zips)](https://commareports.com/ci/github-actions-html-report): GitHub Actions can't render HTML. Artifacts download as zips, expire in 90 days, and need repo access. Publish the report to a stable URL with one curl step — comments, revisions, and diffs included.
- [View an HTML Report from GitLab CI Without Setting Up Pages](https://commareports.com/ci/gitlab-ci-html-report): GitLab.com won't render HTML artifacts inline — the artifact browser serves them as downloads, and Pages is a whole separate project. Publish the report to a stable URL from one curl in your .gitlab-ci.yml.
- [Share an HTML Report From Google Cloud Build](https://commareports.com/ci/google-cloud-build-html-report): Cloud Build has no report viewer — your HTML lands in a GCS bucket that needs IAM, a signed URL or public access before anyone can read it. Publish it from cloudbuild.yaml in one step.
- [Jenkins HTML Report With No CSS? The CSP Fix — and the Better Option](https://commareports.com/ci/jenkins-html-report): Jenkins HTML Publisher strips CSS and JavaScript because of DirectoryBrowserSupport's Content-Security-Policy. Here's the sanctioned fix, why loosening it is risky, and how to publish the report to a stable URL instead.
- [Share an HTML Report From Prefect](https://commareports.com/ci/prefect-html-report): A Prefect flow writes the report inside an ephemeral work pool container and the artifact panel takes markdown, not documents. Publish from the flow so the reader gets a URL.
- [Share a TeamCity HTML Report Without a TeamCity Login](https://commareports.com/ci/teamcity-html-report): TeamCity report tabs render your HTML behind a sandbox and behind a login, and cleanup rules delete it on a schedule. Publish the report from the build step to a permanent, commentable URL.
- [Share an HTML Report From Travis CI — There Is No Artifacts Tab](https://commareports.com/ci/travis-ci-html-report): Travis CI has no artifact viewer at all: your HTML report exists for the length of the job and then the container is gone. One curl in after_script gives it a permanent URL.
## Troubleshooting
- [HTML Report Troubleshooting — Blank Pages, Dead Links, Blocked Assets](https://commareports.com/fix): A report that renders blank, downloads instead of opening, 404s on click-through, or won't preview anywhere. The console message that identifies each cause, and the fix for it.
- [The Agent's Output Is Too Long to Paste Anywhere — What to Do With It](https://commareports.com/fix/agent-output-too-long-to-paste): Claude Code, Cursor and Codex produce reports far past what a Slack message, a PR comment or a ticket will hold. The limits you are hitting, and giving the agent a place to publish.
- [Allure Report Opens as a Blank Page — The Cause and the Fix](https://commareports.com/fix/allure-report-blank-page): Allure's index.html renders blank when opened directly because it fetches its data over XHR, which file:// blocks. Why allure open works, and how to get a report that opens for anyone.
- [Chart.js Chart Not Showing — Every Cause, Matched to the Console Error](https://commareports.com/fix/chartjs-chart-not-showing): A blank canvas where the Chart.js chart should be. Match the console message — can't acquire context, Chart is not defined, not a registered controller, canvas already in use — to its fix, plus the silent cases: zero-height containers, v2 options in v4, and blank PDFs.
- [The CI Artifact Link Expired — Recovering the Report, and Not Losing the Next One](https://commareports.com/fix/ci-artifact-expired): Artifact retention silently 404s every report link you have ever pasted into a PR or an incident doc. What you can still recover, what you can't, and how to make the link permanent.
- [“Blocked by CORS Policy” From Origin 'null' When Opening an HTML File — the Fix](https://commareports.com/fix/cors-error-file-origin-null): Double-click an HTML page that loads a JSON file or a module script and the console says “from origin 'null' has been blocked by CORS policy”. Why file:// pages can't fetch their own folder, and the four fixes that actually work.
- [Coverage Report Links 404 When You Click Through — Fixing the Drill-Down](https://commareports.com/fix/coverage-report-links-broken): The coverage index opens but every file link 404s. Why only index.html travelled, what genhtml, JaCoCo, Istanbul and SimpleCov actually emit, and how to keep the drill-down working.
- [CSV Opens Wrong in Excel — Garbled Characters, One Column, Lost Zeros](https://commareports.com/fix/csv-opens-wrong-in-excel): Excel shows é instead of é, crams every field into column A, strips leading zeros from ZIP codes, or turns IDs into 1.23E+15. Each symptom has one cause and a fix that works without retyping the data.
- [ERR_FILE_NOT_FOUND in Chrome — Why a Local HTML File or Link Won't Open](https://commareports.com/fix/err-file-not-found): Chrome says “Your file couldn't be accessed” with ERR_FILE_NOT_FOUND when you open an HTML file or click a link inside one. The five usual causes — moved files, zip previews, missing sibling pages, # in a file name — and how to fix each.
- [Excel “Save as Web Page” Breaks When You Send It — the _files Folder](https://commareports.com/fix/excel-save-as-web-page-broken): You saved an Excel workbook as a web page, sent the .htm, and it opens blank, unstyled or without its other sheets. Why Excel splits the page into a folder, and three ways to get one file that works.
- [GitHub Actions Artifact HTML Won't Open in the Browser — Why, and What to Do](https://commareports.com/fix/github-actions-artifact-html-not-viewable): GitHub Actions serves every artifact as a zip download, so an HTML report inside one can never render in the browser. The reason, the four workarounds, and the one that produces a link.
- [GitLab Pages Report 404s — The public/ Rule and Everything Else That Bites](https://commareports.com/fix/gitlab-pages-report-404): A pages job that succeeds and a URL that 404s. The public/ directory rule, the deploy delay, branch collisions, and why Pages is a poor fit for per-pipeline reports.
- [HTML File Shows Code Instead of the Page — Five Causes and Fixes](https://commareports.com/fix/html-file-shows-code-instead-of-page): You open an HTML file and see raw tags instead of a rendered page. The five reasons it happens — wrong extension, text/plain Content-Type, a viewer that only shows source, escaped markup, stray wrapping — and how to tell which one you have.
- [The HTML Report Is Too Big to Email — Shrink It, or Stop Attaching It](https://commareports.com/fix/html-file-too-big-to-email): Gmail caps attachments at 25 MB, Outlook at 20, and a self-contained report blows past both. What is actually making the file large, how to cut it, and the delivery that has no cap.
- [Images Not Showing in an HTML File You Sent or Opened Elsewhere — the Fix](https://commareports.com/fix/html-images-not-showing): The page has broken-image icons everywhere except on your own machine. The six path mistakes behind it — relative files left behind, C:\ paths, root-relative URLs, case-sensitive servers, expired signed URLs, http on https — and how to make the images travel with the file.
- [Background Colors Missing When You Print HTML or Save It as PDF — the Fix](https://commareports.com/fix/html-print-backgrounds-missing): Your HTML report prints with white table headers, missing status colors and invisible dark-mode text. Why browsers drop backgrounds when printing, the one CSS property that keeps them, and the other print-only breakages to check.
- [HTML Report Is Tiny on a Phone — The Viewport Tag, and What Else Breaks](https://commareports.com/fix/html-report-tiny-on-phone): Your HTML report opens on a phone as a shrunken desktop page you have to pinch to read. The missing viewport meta tag, the fixed widths and wide tables that survive it, and how to check before you send the link.
- [HTML Table Cut Off or Split Across Pages When Printing to PDF — the CSS Fixes](https://commareports.com/fix/html-table-split-across-pdf-pages): Rows sliced in half at the page break, headers missing on page two, the right-hand columns cut off. What causes each when you print an HTML report or save it as PDF, and the print CSS that fixes it.
- [’ and é in Your HTML Page — Fixing Mojibake and � Characters](https://commareports.com/fix/html-weird-characters): Apostrophes show as ’, accents as é, or everything as black-diamond question marks. Decode the garbage back to the character it was, find which side guessed the wrong encoding, and fix it with one meta tag or one header.
- [Jupyter Widgets Don't Render in the Exported HTML — Why, and What Actually Works](https://commareports.com/fix/jupyter-widgets-not-rendering-in-html): ipywidgets, sliders and interactive output vanish from nbconvert HTML because the kernel is gone. What --embed-images and widget state save, what needs Voilà, and how to share the result.
- [You Sent a localhost Link — Why It Can Never Work, and the Two Real Options](https://commareports.com/fix/localhost-link-doesnt-work-for-others): http://localhost:8080 resolves to the recipient's own machine, so the link is guaranteed to fail. Why tunnels are the wrong tool for a report, and the one-step alternative.
- [Mixed Content Blocked in an HTML Report — Reading the Console and Fixing It](https://commareports.com/fix/mixed-content-blocked-html-report): An HTTPS-served report whose charts and styles silently vanish because a subresource is http://. How to spot mixed content, the difference from a CSP refusal, and the durable fix.
- [“Not allowed to load local resource” in Chrome — What It Means and How to Fix It](https://commareports.com/fix/not-allowed-to-load-local-resource): Chrome refuses a file:/// image, link or iframe on a web page with “Not allowed to load local resource”. Why an http page can never reach your disk, where the C:\ path came from, and how to fix it for good.
- [Outlook Blocked an HTML Attachment — Why, and What to Send Instead](https://commareports.com/fix/outlook-blocked-html-attachment): Outlook and Gmail increasingly block, quarantine or strip .html attachments because phishing kits use them. Why your report got caught, why zipping or renaming it makes things worse, and the link that gets through.
- [Playwright HTML Report Is Blank or Won't Open — Fixes That Survive CI](https://commareports.com/fix/playwright-report-blank): playwright-report/index.html renders empty when opened from disk, and the CI zip makes it worse. Why show-report works, what --reporter=html,open does, and how to get a shareable link.
- [Plotly Chart Missing From the Exported HTML — Every Cause](https://commareports.com/fix/plotly-chart-not-showing-in-html): An exported Plotly figure that shows an empty div, a broken frame, or nothing at all. The include_plotlyjs modes, the offline case, the CSP case, and how to make the export self-contained.
- [S3 Downloads Your HTML Instead of Rendering It — The Content-Type Fix](https://commareports.com/fix/s3-html-downloads-instead-of-opening): An HTML file uploaded to S3 downloads instead of opening because the object's Content-Type is binary/octet-stream. How to fix it on upload, retroactively, and when to stop using a bucket.
- [Slack Won't Preview an HTML File — Why, and What to Post Instead](https://commareports.com/fix/slack-wont-preview-html-file): Upload an HTML report to Slack and you get a download card, not a preview. The security reason Slack refuses to render it, what the snippet view shows, and the link that unfurls properly.
## Editor & agent setup
- [Comma MCP Server — the agent-collaboration surface for HTML reports](https://commareports.com/mcp): Comma exposes a Model Context Protocol server so Claude Code, Cursor, and VS Code agents can publish reports, anchor comments, and reply to reviewers — under one scoped, revocable token.
- [Use Comma with Amp — add a remote MCP server to amp.mcpServers](https://commareports.com/mcp/amp): Attach Comma to Sourcegraph's Amp with an amp.mcpServers entry and a Bearer header, in the CLI or editor extension. Amp threads can publish HTML reports reviewers comment on.
- [Use Comma with Augment Code — auggie mcp add and settings.json](https://commareports.com/mcp/augment): Add Comma to Augment's Auggie CLI with auggie mcp add --transport http --header, or ~/.augment/settings.json. Augment agents can publish HTML reports to a shareable link.
- [Use Comma with Claude Code — publish, comment, link from your editor](https://commareports.com/mcp/claude-code): Install the Comma plugin in Claude Code and your agent can publish HTML reports, search the workspace, and link to reports — over a scoped, revocable token. One-line install.
- [Use Comma with Claude Desktop — publish artifacts your team can open](https://commareports.com/mcp/claude-desktop): Attach the Comma MCP server to Claude Desktop and publish HTML straight from a conversation — no terminal. Reports land behind your chosen access level with anchored comments.
- [Use Comma with Cline — publish HTML reports from the Cline agent](https://commareports.com/mcp/cline): Add Comma to Cline as a remote Streamable HTTP MCP server with a Bearer header. Cline can then publish HTML reports and answer anchored review comments.
- [Use Comma with Codex — publish HTML reports from your agent](https://commareports.com/mcp/codex): Attach the Comma MCP server to OpenAI Codex. Your Codex agent can publish HTML reports, search the workspace, and read and reply to anchored comments under a scoped token.
- [Use Comma with Continue — add a remote MCP server to config.yaml](https://commareports.com/mcp/continue): Attach Comma to Continue with a streamable-http mcpServers entry and a Bearer header in requestOptions. Agent mode can then publish HTML reports and read review comments.
- [Use Comma with GitHub Copilot CLI — copilot mcp add in one line](https://commareports.com/mcp/copilot-cli): Add Comma to GitHub Copilot CLI with one copilot mcp add command, or a type http entry in mcp-config.json. Copilot can publish HTML reports and answer review comments.
- [Use Comma with Cursor — publish HTML reports from your agent](https://commareports.com/mcp/cursor): Add the Comma MCP server to Cursor in one config edit. Your Cursor agent can publish HTML reports, search the workspace, and read and reply to anchored comments under a scoped token.
- [Use Comma with Factory Droid — droid mcp add with a Bearer header](https://commareports.com/mcp/factory-droid): Add Comma to Factory's Droid with droid mcp add --type http --header and --no-oauth, or ~/.factory/mcp.json. Droids can publish HTML reports reviewers comment on.
- [Use Comma with Gemini CLI — publish HTML reports from your agent](https://commareports.com/mcp/gemini-cli): Attach the Comma MCP server to Gemini CLI. Your agent can publish HTML reports, search the workspace, and read and reply to anchored comments under a scoped token.
- [Use Comma with Goose — a remote Streamable HTTP extension](https://commareports.com/mcp/goose): Add Comma to Block's Goose as a remote extension with an Authorization header, via goose configure or config.yaml. Goose runs can publish HTML reports to one stable link.
- [Use Comma with JetBrains AI Assistant — MCP in IntelliJ, PyCharm and friends](https://commareports.com/mcp/jetbrains): Add Comma to JetBrains AI Assistant in IntelliJ IDEA, PyCharm, WebStorm or GoLand. Bridge the Bearer header with mcp-remote and publish HTML reports from the IDE.
- [Use Comma with Junie — remote MCP with headers in .junie/mcp](https://commareports.com/mcp/junie): Add Comma to JetBrains Junie with a url and Authorization header in ~/.junie/mcp/mcp.json. Junie can publish task reports as HTML pages your team comments on.
- [Use Comma with Kiro — publish specs and reviews as HTML reports](https://commareports.com/mcp/kiro): Add Comma to Kiro's mcp.json with a url and Authorization header, user-level or per workspace. Kiro's agent can publish spec reviews and design docs people comment on.
- [Use Comma with LM Studio — let a local model publish HTML reports](https://commareports.com/mcp/lm-studio): Add Comma to LM Studio's mcp.json with a url and Bearer header. A local model with tool use can publish HTML reports to a shareable, commentable link.
- [Use Comma with OpenCode — a remote MCP entry in opencode.json](https://commareports.com/mcp/opencode): Add Comma to OpenCode as a remote MCP server with headers and oauth disabled. The terminal agent can publish HTML reports and read review comments back.
- [Use Comma with Qwen Code — qwen mcp add over HTTP](https://commareports.com/mcp/qwen-code): Add Comma to Qwen Code with qwen mcp add --transport http and a Bearer header, or an httpUrl entry in settings.json. Publish HTML reports from the terminal.
- [Use Comma with Roo Code — publish HTML reports from any Roo mode](https://commareports.com/mcp/roo-code): Add Comma to Roo Code as a streamable-http MCP server, globally or per project in .roo/mcp.json. Architect and Ask modes can publish HTML reports reviewers comment on.
- [Use Comma with Visual Studio — an MCP server for Copilot agent mode](https://commareports.com/mcp/visual-studio): Add Comma to Visual Studio 2022 or 2026 Copilot agent mode with a .mcp.json servers entry and a requestInit Authorization header. Publish HTML reports from the IDE.
- [Use Comma with VS Code — publish HTML reports from Copilot agent mode](https://commareports.com/mcp/vscode): Add the Comma MCP server to VS Code in one command. GitHub Copilot's agent mode can publish HTML reports, search the workspace, and read and reply to anchored comments under a scoped token.
- [Use Comma with Warp — attach an MCP server to Warp's agent](https://commareports.com/mcp/warp): Add Comma to Warp's MCP servers with a url and Authorization header, from Settings or ~/.warp/.mcp.json. Warp's agent can publish terminal work as HTML reports.
- [Use Comma with Windsurf — publish HTML reports from Cascade](https://commareports.com/mcp/windsurf): Add the Comma MCP server to Windsurf's mcp_config.json and Cascade can publish HTML reports, search the workspace, and read and reply to anchored comments under a scoped token.
- [Use Comma with Zed — add a remote context server with a header](https://commareports.com/mcp/zed): Add Comma to Zed's context_servers with a url and Authorization header. Zed's agent panel can publish HTML reports and work through anchored review comments.
## Glossary
- [HTML Report Glossary — The Terms Behind Publishing, Sharing and Reviewing Reports](https://commareports.com/glossary): Plain definitions for the vocabulary that shows up when a report has to leave your machine: artifact retention, SARIF, self-contained HTML, CSP, presigned URLs, MCP and the rest.
- [What Is an Agent Artifact? — The Output That Outlives the Session](https://commareports.com/glossary/agent-artifact): An agent artifact is the durable output of an AI agent run — a report, an audit, a migration plan. Why chat is the wrong container for it, and what a good artifact has that a transcript doesn't.
- [What Is Artifact Retention? — Default Windows and the Four Ways Links Die](https://commareports.com/glossary/artifact-retention): Artifact retention is the policy deciding how long CI keeps a build output before deleting it. Default windows per provider, the three non-retention deleters, and why re-running is not recovery.
- [What Is a Build Artifact? — Definition, Uses and the Document Mistake](https://commareports.com/glossary/build-artifact): A build artifact is a file a CI job produces and stores for later retrieval. What belongs in artifact storage, what doesn't, and why storing a report there gives it an expiry date.
- [What Is a Byte Order Mark (BOM)? — UTF-8 BOM, Excel, and What It Breaks](https://commareports.com/glossary/byte-order-mark): A byte order mark is the invisible U+FEFF character at the start of a text file. Why Excel needs it to read UTF-8 CSVs, why JSON parsers and shell scripts choke on it, and how to add or remove one.
- [What Is Code Coverage? — Line, Branch, Statement and What a Percentage Hides](https://commareports.com/glossary/code-coverage): Code coverage measures which lines and branches a test run executed. The four metric types, the formats (lcov, Cobertura, JaCoCo), and why the number matters less than the drill-down.
- [What Is Content Security Policy? — CSP, Reports and the Refused-to-Load Error](https://commareports.com/glossary/content-security-policy): CSP is an HTTP header that tells the browser which sources a page may load. The directives that matter for published reports, how to read a violation, and why strict hosts break charts.
- [What Is CSV Injection? — Formula Injection in Exported Spreadsheets](https://commareports.com/glossary/csv-injection): CSV injection (formula injection) is when a cell in an exported CSV starts with =, +, - or @ and a spreadsheet runs it as a formula. How the attack works, which characters trigger it, and the escaping OWASP recommends.
- [What Is a Data URI? — Inlining Assets, and the 33% Tax](https://commareports.com/glossary/data-uri): A data URI embeds a file's bytes directly in a document instead of linking to it. The syntax, why base64 inflates by a third, and where inlining stops being a good idea.
- [What Is a Flaky Test? — Definition, Causes and Why the Report Is the Evidence](https://commareports.com/glossary/flaky-test): A flaky test passes and fails on the same code. The six causes worth checking, how retries hide them, and why the run artifacts — traces, screenshots, timings — are the only real evidence.
- [What Is a Flame Graph? — Reading Profiles, and Why the X-Axis Isn't Time](https://commareports.com/glossary/flamegraph): A flame graph visualises aggregated stack samples: width is total time in a function, depth is stack depth, and the x-axis is alphabetical. How to read one, and icicle versus differential.
- [What Is an HTML Report? — Definition, Structure and Why It Rarely Travels](https://commareports.com/glossary/html-report): An HTML report is generated web output presenting the results of a run — tests, coverage, scans, profiles. What is inside one, why it is almost never a single file, and what breaks in transit.
- [What Is an iframe Sandbox? — Running Untrusted HTML Safely](https://commareports.com/glossary/iframe-sandbox): The sandbox attribute strips an iframe of privileges and grants them back one token at a time. What each token does, the allow-scripts + allow-same-origin trap, and why reports need it.
- [What Is an .ipynb File? — Notebook Structure and What Survives Export](https://commareports.com/glossary/ipynb): An .ipynb file is a JSON document of cells and their stored outputs. Why it diffs badly, why GitHub sometimes won't render it, and exactly what is lost when you export to HTML.
- [What Is JSONPath? — Syntax, Examples and JSONPath vs JSON Pointer](https://commareports.com/glossary/jsonpath): JSONPath is a query syntax for picking values out of a JSON document, like $.checks[2].error. The core syntax with examples, how it differs from JSON Pointer and jq, and how to get the path to any value without writing it by hand.
- [What Is JUnit XML? — The Test Format With No Specification](https://commareports.com/glossary/junit-xml): JUnit XML is the de-facto interchange format for test results, emitted by nearly every runner and ingested by nearly every CI system. The element structure, the dialect problem, and its limits.
- [What Is a MIME Type? — The Header That Decides Render vs Download](https://commareports.com/glossary/mime-type): A MIME type tells the browser what a response contains. Why text/html renders and application/octet-stream downloads, how Content-Disposition overrides it, and where reports go wrong.
- [What Is Mixed Content? — HTTP Resources on an HTTPS Page](https://commareports.com/glossary/mixed-content): Mixed content is an HTTPS page requesting an HTTP subresource. Active versus passive, what browsers block versus upgrade, and why generated reports hit it more than hand-written pages.
- [What Is MCP? — The Model Context Protocol, Explained](https://commareports.com/glossary/model-context-protocol): MCP is an open protocol for giving AI agents tools, resources and prompts over a standard interface. What a server exposes, how transports work, and what changes when an agent can publish.
- [What Is Mojibake? — Why Text Turns Into ’, é and �](https://commareports.com/glossary/mojibake): Mojibake is garbled text produced by decoding bytes with the wrong character encoding. How UTF-8 read as Windows-1252 becomes ’ and é, why the reverse gives �, and which kind can be repaired.
- [What Is Mutation Testing? — The Metric That Checks Your Assertions](https://commareports.com/glossary/mutation-testing): Mutation testing changes your code on purpose and checks whether any test notices. Mutation score, surviving mutants, equivalent mutants, and why it exposes what coverage cannot.
- [What Is NDJSON (JSON Lines)? — One JSON Object per Line](https://commareports.com/glossary/ndjson): NDJSON, also called JSON Lines or JSONL, stores one JSON value per line with no enclosing array. Why logs, BigQuery and Elasticsearch bulk loads use it, how it differs from a JSON array, and how to convert between the two.
- [What Is a Presigned URL? — Signed, Time-Boxed Access to a Stored Object](https://commareports.com/glossary/presigned-url): A presigned URL grants temporary access to a private object without credentials. How the signature works, the real expiry ceilings, and why it is a poor fit for a report someone must read.
- [What Is the Same-Origin Policy? — And Why file:// Breaks Reports](https://commareports.com/glossary/same-origin-policy): The same-origin policy stops one origin reading another's data. What counts as an origin, why a file opened from disk has an opaque one, and why that makes report shells load blank.
- [What Is SARIF? — The Standard Format for Static Analysis Results](https://commareports.com/glossary/sarif): SARIF is the OASIS-standard JSON format for static analysis and security findings. What is in a SARIF file, which tools emit it, and why the HTML view still matters.
- [What Is an SBOM? — CycloneDX, SPDX and What a Bill of Materials Is For](https://commareports.com/glossary/sbom): An SBOM is a machine-readable inventory of every component in a piece of software. The two formats, what a complete one contains, and why the readable version is the one people ask for.
- [What Is Self-Contained HTML? — Single-File Reports and Their Ceiling](https://commareports.com/glossary/self-contained-html): Self-contained HTML inlines every stylesheet, script and image into one file so it opens with no sibling directory. How generators produce it, what it costs in size, and where it stops working.
- [What Is Static Site Hosting? — Serving Files Without a Server](https://commareports.com/glossary/static-site-hosting): Static hosting serves pre-built files straight from storage or a CDN, with no application runtime. What it does well, the four things it never handles, and where reports fall between.
## Comparisons & alternatives
- [HTML Report Hosting Alternatives — Honest Comparisons](https://commareports.com/alternatives): GitHub Pages, S3, Vercel, Netlify Drop, nbviewer, Posit Connect, Hex, Mode. What each is actually good at, where it stops, and when a report needs a comment layer instead of a host.
- [Cloudflare Access Alternatives for Sharing Internal HTML (2026)](https://commareports.com/alternatives/cloudflare-access-alternatives): Cloudflare Access is a zero-trust proxy, not a publishing tool. When the goal is 'put this HTML report behind company auth', here are the honest alternatives — managed and self-assembled.
- [Datapane Alternative: Where Did One-Line Report Publishing Go?](https://commareports.com/alternatives/datapane-alternative): Datapane shut down in August 2023. Quarto and marimo replaced the authoring half — nothing replaced upload-and-share. Comma is that layer: publish HTML from any tool, get a link, collect anchored comments.
- [Deepnote Alternatives for Sharing Notebook Output (2026)](https://commareports.com/alternatives/deepnote-alternatives): Deepnote is a full collaborative notebook platform. Alternatives compared for teams who only need to share the rendered result — with access control, comments and a stable URL.
- [Firebase Hosting Alternatives for Private HTML Reports (2026)](https://commareports.com/alternatives/firebase-hosting-alternatives): Firebase Hosting is a fine static CDN and has no per-page access control — gating a report means writing Cloud Functions. Alternatives compared for internal HTML reports.
- [Rendering HTML From a Gist or Repo — And the Alternatives (2026)](https://commareports.com/alternatives/github-gist-html-alternatives): GitHub serves HTML as source, and htmlpreview.github.io is a proxy with real limits. The options for turning an HTML file in a repo into a link someone can actually open, compared.
- [GitHub Pages Alternatives for Private & Internal HTML (2026)](https://commareports.com/alternatives/github-pages-alternatives): GitHub Pages is free — and public. What engineering teams use instead when an HTML report needs access control: honest options, from identity proxies to report-sharing layers.
- [7 Hex Alternatives Worth Looking At in 2026](https://commareports.com/alternatives/hex-alternatives): A practical list of Hex alternatives — for notebook work, for sharing HTML reports, and for letting AI agents post into your team's workspace. Honest tradeoffs included.
- [htmlpreview.github.io Alternatives That Don't Break Your Assets (2026)](https://commareports.com/alternatives/htmlpreview-github-io-alternatives): htmlpreview.github.io renders raw GitHub HTML in the browser — until CSS, fonts or fetch() calls fail, or the repo is private. Alternatives compared for previewing and sharing HTML from a repository.
- [Hugging Face Spaces Alternatives for Sharing Model Results (2026)](https://commareports.com/alternatives/huggingface-spaces-alternatives): Spaces is built for live demos with a runtime, a queue and a sleep timer. Alternatives compared for teams sharing eval results, model cards and benchmark reports rather than a demo.
- [Marker.io Alternatives for Website Feedback (2026): BugHerd, Pastel, Vercel Comments, Comma](https://commareports.com/alternatives/marker-io-alternatives): Honest Marker.io alternatives for collecting feedback on a website or staging build: BugHerd, Pastel, Markup.io, Userback, Vercel preview comments and Comma — which fits a ticket workflow, which fits an AI coding agent.
- [8 Mode Analytics Alternatives Worth Considering in 2026](https://commareports.com/alternatives/mode-alternatives): A practical list of Mode Analytics alternatives — for BI dashboards, for SQL workbenches, for sharing HTML reports, and for AI-agent posting. Honest tradeoffs included.
- [nbviewer Alternatives for Sharing Notebooks (2026)](https://commareports.com/alternatives/nbviewer-alternatives): nbviewer renders a public notebook from a public URL. Alternatives compared for the common case it doesn't cover: a private notebook, shared with named people, that someone can comment on.
- [Netlify Drop Alternatives — For Reports, Not Websites](https://commareports.com/alternatives/netlify-drop-alternatives): Netlify Drop is the fastest way to put a folder on the internet, and the wrong shape for a report: public by default, no comment layer, and a new URL every time you re-drop.
- [ngrok Alternatives for Showing Someone a Local HTML Report (2026)](https://commareports.com/alternatives/ngrok-alternatives): ngrok tunnels localhost so a colleague can see your report — until you close the laptop. Alternatives compared for sharing a locally generated HTML file that has to stay reachable.
- [Posit Connect Alternatives for Sharing R and Python Reports (2026)](https://commareports.com/alternatives/posit-connect-alternatives): Posit Connect is a platform: apps, APIs, scheduling, SSO, a server to operate. If what you actually publish is rendered R Markdown and Quarto documents, the alternatives are much lighter.
- [Quarto Pub Alternatives for Private Quarto Documents (2026)](https://commareports.com/alternatives/quarto-pub-alternatives): quarto publish quarto-pub is one command and one public URL. Alternatives compared for teams that need private Quarto documents, comments on the rendered output, and publishing from CI.
- [raw.githack.com Alternatives for Serving HTML From a Repo (2026)](https://commareports.com/alternatives/raw-githack-alternatives): raw.githack serves GitHub files with the right Content-Type — for public repos, pinned to a ref, with no access control and no review layer. Alternatives compared.
- [Read the Docs Alternatives for Private and Per-Build Docs (2026)](https://commareports.com/alternatives/read-the-docs-alternatives): Read the Docs builds and hosts documentation from a repo. Alternatives compared for private docs, for previewing one build, and for docs someone needs to comment on.
- [RPubs Alternatives for Private R Markdown Reports (2026)](https://commareports.com/alternatives/rpubs-alternatives): RPubs publishes R Markdown in one click — and everything you publish is public, forever, with no comments and no versions. Private alternatives compared for R users who share reports with a team or a client.
- [S3 Static Hosting Alternatives for One-Off HTML Reports (2026)](https://commareports.com/alternatives/s3-static-hosting-alternatives): An S3 bucket for report HTML means bucket policies, signed URLs, CloudFront and a cache invalidation per publish. Lighter alternatives for the case where the artifact is a report, not a site.
- [Streamlit Community Cloud Alternatives for Private Apps and Reports (2026)](https://commareports.com/alternatives/streamlit-community-cloud-alternatives): Community Cloud is free, public-leaning and sleeps when idle. Alternatives compared for teams who need a private URL, an always-on page, or just the output rather than the app.
- [Surge.sh Alternatives for Publishing HTML From the CLI (2026)](https://commareports.com/alternatives/surge-sh-alternatives): surge is one command from a folder to a URL — public, unversioned, no comments. Alternatives compared for teams publishing HTML reports from a terminal or a CI job.
- [Tiiny Host Alternatives With Real Access Control (2026)](https://commareports.com/alternatives/tiiny-host-alternatives): Tiiny Host makes HTML sharing instant — with a shared password at best. Alternatives compared for teams that need identity-based access, comments, and version history on shared HTML.
- [Vercel Alternatives for Sharing Internal HTML Reports (2026)](https://commareports.com/alternatives/vercel-alternatives): Vercel is built to deploy apps, not to share a report with your team. Honest alternatives for putting an HTML file behind access control — with comments, history, and agent publishing.
- [WeTransfer Alternatives for Sending an HTML Report (2026)](https://commareports.com/alternatives/wetransfer-alternatives): WeTransfer moves the file and stops there — the recipient downloads an .html they may not be able to open, the link expires, and nobody can comment. Alternatives compared.
- [Comma vs ChatGPT Canvas: Drafting a Page With AI vs Getting People to Review It](https://commareports.com/vs/chatgpt-canvas): ChatGPT Canvas is a great place to write and render a page with the model. What happens when the page needs other people — anchored comments from reviewers, restricted links, one URL across revisions, agent-side publishing — and when to use each.
- [Comma vs Claude Artifacts: Publishing an AI-Built Page vs Getting It Reviewed](https://commareports.com/vs/claude-artifacts): Claude artifacts publish to a link, and in Claude Code your org can comment on them. Where that stops — public-link viewers can't comment, reviewers outside your org, other agents and CI — and when to use each.
- [Comma vs CodePen: Sharing a Finished HTML Page for Review vs Sharing Code to Play With](https://commareports.com/vs/codepen): CodePen is the classic place to paste HTML, CSS and JS and send a link. When the page is a finished report, dashboard or AI-generated screen that people need to review — anchored comments, restricted links, one URL across revisions — here is when to use each.
- [Comma vs Confluence: Where Should an HTML Report Actually Live?](https://commareports.com/vs/confluence): Confluence Cloud has no HTML macro and serves attachments as downloads. An honest comparison for teams that keep trying to get a generated HTML report onto a wiki page just to collect comments.
- [Comma vs display.dev: Which Should Host Your Agents' Reports?](https://commareports.com/vs/display): Both give agent-generated HTML a URL with comments and an MCP loop. display.dev leads with company auth; Comma adds scheduled routines, skills, and a fully free product. A direct, fair comparison.
- [Comma vs Google Docs: Where Should Your Report Collect Comments?](https://commareports.com/vs/google-docs): Google Docs is the best prose collaboration tool ever shipped — and it can't render your HTML report. An honest comparison for teams pasting report content into Docs just to collect comments.
- [Comma vs Hex: Which Should You Use for Sharing & Reviewing Reports?](https://commareports.com/vs/hex): Hex builds the analysis. Comma renders the HTML, anchors comments, and refreshes it on a cron. A direct, honest comparison for data teams choosing between the two.
- [Comma vs Mode: BI Platform or Report Sharing Layer?](https://commareports.com/vs/mode): Mode is a SQL-first BI platform. Comma is a sharing, comment, and refresh layer for HTML reports — including reports generated by AI tools. A direct, honest comparison.
- [Comma vs Notion: Where Should an HTML Report Actually Live?](https://commareports.com/vs/notion): Notion can't render an uploaded .html file — it downloads it. An honest comparison for teams that keep trying to paste report content into a Notion page just to get comments on it.
- [Comma vs Observable: Sharing a Finished Data Report vs Building It in a Notebook](https://commareports.com/vs/observable): Observable is where you build reactive JavaScript notebooks and data apps. When the chart or report already exists — from Python, R, a CI job or an AI agent — and people need to review it, here is when to use Observable, when to use Comma, and how they fit together.
- [Use Comma with Hex: Faithful Sharing, Anchored Comments, Scheduled Refresh](https://commareports.com/with/hex): Hex builds the analysis. Comma is where your team reviews it. Connect a Hex notebook to a Comma routine so refreshed HTML lands on a commentable, shareable document — same link every cadence.
- [Use Comma with marimo: Export the Notebook, Review It Like a Doc](https://commareports.com/with/marimo): marimo exports reactive Python notebooks to HTML — then leaves sharing to you. Publish the export to Comma for anchored comments, share roles, and revisions on a stable link.
- [Use Comma with Mode: Faithful Sharing, Anchored Comments, Scheduled Refresh](https://commareports.com/with/mode): Mode is the BI platform. Comma is where your team reviews the output. Connect a Mode report to a Comma routine so refreshed HTML lands on a commentable, shareable document — same link every cadence.
- [Use Comma with Quarto: Render the Report, Then Get It Reviewed](https://commareports.com/with/quarto): Quarto renders .qmd to polished HTML — and stops there. Pipe the output to Comma for anchored comments, share roles, and revisions on a stable link. One curl call or one MCP tool.
## Integrations
- [Share a Google Colab Notebook as HTML — Without Sharing the Runtime](https://commareports.com/with/colab): Colab sharing hands people a runtime they can re-execute. Export the notebook to HTML and publish it to Comma instead: a read-only page with outputs frozen, comments anchored to a cell, and a revision per run.
- [Share a Jupyter Notebook as HTML — and Get It Reviewed](https://commareports.com/with/jupyter): Export your notebook with nbconvert, publish the HTML to Comma, and collect comments anchored to specific cells and table rows. Private by choice, revisioned, agent-friendly — an nbviewer alternative for notebooks that aren't public.
## Launches
- [The review layer for AI reports | Comma](https://commareports.com/launch/review-layer-for-ai-reports): AI evaluation is the 2026 discipline. The artifact every team is now staring at is an HTML report regenerated on a schedule — and the missing primitive is review. Here's the category Comma is claiming.
## For
- [Comma by Role — Who Sends Reports, and What Breaks for Them](https://commareports.com/for): Consultants, QA, data scientists, security teams, SREs, freelancers, maintainers. The same problem — an HTML report nobody else can open — arrives differently in each job. The workflow for yours.
- [Report Sharing for Agencies — Many Clients, One Workspace, No Crossed Links](https://commareports.com/for/agencies): Twelve clients, twelve monthly reports, and one link pasted into the wrong Slack channel is a breach. How agencies publish client-facing reports with separation that holds.
- [Client Deliverables That Open in a Browser — Report Sharing for Consultants](https://commareports.com/for/consultants): The audit is a 40 MB zip the client's mail server rejected, and three rounds of feedback live in four email threads. Publish the deliverable to a link, collect comments on it, and keep the revision trail.
- [Share Analysis With Stakeholders — Notebooks and Charts That Stay Interactive](https://commareports.com/for/data-scientists): The notebook renders on your machine, exports to a 30 MB HTML file, and arrives in Slack as an unpreviewable attachment. Publish the analysis to a link where the charts still work and the questions land on the chart.
- [One Link Instead of a Weekly Deck — Reporting for Engineering Managers](https://commareports.com/for/engineering-managers): Assembling the weekly status from six dashboards into a slide deck is a recurring tax on your Friday. Make it a scheduled report at one URL that regenerates itself.
- [Handing Work to a Client Who Will Never Run npm install](https://commareports.com/for/freelance-developers): The client can't open a zip, doesn't have a GitHub account, and replies to your build report with 'it won't open'. Send a URL that works on their phone, and collect the feedback on the page.
- [Coverage, Benchmarks and Build Reports Contributors Can Actually Open](https://commareports.com/for/open-source-maintainers): A contributor's CI run produced a coverage report locked behind an artifact download they may not have permission for. Publish it to a public URL and link it from the PR.
- [Test Reports That Outlive the CI Artifact — Report Sharing for QA](https://commareports.com/for/qa-engineers): The Playwright trace that proved the regression expired in 30 days, and the artifact zip nobody on the team can open anyway. Publish the run to a URL that goes in the PR and stays there.
- [Share Scan and Pentest Findings Without Making Them Public](https://commareports.com/for/security-teams): A Trivy, Semgrep or Burp report is exactly the document you can't drop on a public host. Private-by-default reports, scoped tokens, and a retest revision at the same URL.
- [Postmortems and Incident Reports With the Graphs Still In Them](https://commareports.com/for/sre-teams): The incident review pastes Grafana screenshots into a doc and loses every axis label. Publish the timeline, the dashboards and the profile as one URL responders can annotate.
- [Doc Previews an SME Can Review Before the Merge](https://commareports.com/for/technical-writers): Your reviewer won't check out a branch to read a MkDocs build, so they review the rendered site after it ships. Publish the preview to a link and collect anchored comments on the paragraph.
## What Comma is (and isn't)
Comma is a measuring instrument for HTML reports — a faithful viewer with anchored comments, scheduled refreshes, and an agent-friendly API. It is intentionally not:
- A dashboard builder (BYO report — Looker, Metabase, Tableau, Hex, Mode all output what Comma consumes).
- A notebook environment (start at the HTML output, not the kernel).
- A design or code-review tool (different artifacts).
- A reformatter (the iframe is sacred — Comma does not restyle or re-architect your HTML).
## Plans (summary)
- **Free** — $0 (Free forever, no credit card). Publish, share, and collaborate — free. Best for: Anyone publishing, collaborating, or automating reports.
- **Enterprise** — Let’s talk (Custom, built around your team). For teams that need structure and control. Best for: Teams, regulated industries, on-prem, procurement-led orgs.
Comma is free: unlimited reports, unlimited commenters, revisions, and public share links on every account, with no paid plan, no seat count, and no report cap. Enterprise is sales-led and covers organization-scale deployment (SSO, on-prem, custom domains), not feature access. Full details at https://commareports.com/pricing.md.
## Glossary
- **Report** — A single HTML artifact uploaded, pasted, or posted into Comma.
- **Anchored comment** — A comment pinned to a specific text selection inside the rendered HTML.
- **Routine** — A scheduled re-run of a skill that posts the new HTML as a new revision on a report.
- **Revision** — A snapshot of a report's HTML at one moment; routines append revisions over time.
- **Sandbox** — The opaque-origin iframe that renders uploaded HTML without account access.
- **MCP** — Model Context Protocol; how Claude Code, Cursor, and VS Code agents talk to Comma.
- **`comma_sk_...` token** — A scoped, revocable API token that gates both REST and MCP surfaces.
## Optional
- [Privacy](https://commareports.com/privacy)
- [Terms](https://commareports.com/terms)
- [Acceptable use](https://commareports.com/acceptable-use)
- [Cookies](https://commareports.com/cookies)
- [Sitemap](https://commareports.com/sitemap.xml)