# Share a Biome Report — Fast Lint Results, Shareable

Canonical: https://commareports.com/share-biome-report
Published: 2026-09-15

> Biome lints a monorepo in under a second and prints to a terminal. Use its JUnit reporter, convert it, and publish to Comma so the findings reach people who aren't at that terminal.

# Share a Biome report

Biome replaced ESLint and Prettier in a lot of repos for one reason: it
finishes before you look away. That speed is local, though. The reviewer on
the pull request, the person who owns the package you just touched, the
contributor on a fork — none of them are watching your terminal.

## JUnit reporter → HTML

```bash
npm i -D @biomejs/biome
pip install junit2html

npx biome ci . --reporter=junit > biome.xml || true
junit2html biome.xml biome.html
```

`biome ci` runs the formatter, the linter and the import sorter in a single
pass without writing files — the right command for a pipeline. `|| true` keeps
the job alive long enough to publish; keep a separate, unmuted `biome ci` step
as the gate.

## Publish it

Drag `biome.html` into [the app](https://commareports.com/), or from CI:

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

One report id per repo or package, PATCHed on every run.

## Migrations are the case for a URL

The findings worth sharing are almost never the day-to-day ones — those get
fixed on save. They are the migration runs: `biome migrate eslint`, the first
pass over a package that was never linted, the rule set someone wants to
enable across a monorepo.

Those produce a list long enough that the only way through it is to split it:

- **Anchored threads** on a rule group — "we're keeping `noExplicitAny` off in
  the generated clients" — next to the findings instead of buried in
  `biome.json`. See [commenting on HTML](/comment-on-html).
- **Revisions**, so the count going down is visible at the same URL.

## Limits

- **Entry HTML: 5 MB.** Assets: 25 MB per file, 250 MB and 500 files total.
  A first pass over a large monorepo is the one that approaches it — publish
  per-package reports instead.
- **60 requests/minute per token.**

## Try it

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

**[Publish a lint report →](https://commareports.com/)**

### Related

- [Share an ESLint report](/share-eslint-report) · [Share a Stylelint report](/share-stylelint-report)
- [Share a jscpd report](/share-jscpd-report) · [Share a dependency-cruiser report](/share-dependency-cruiser-report)
- [Share a Vitest report](/share-vitest-report) · [Publish from CI](/docs/ci)
