biome --reporter=github: PR Annotations in Actions
The --reporter=github flag formats Biome diagnostics as GitHub Actions workflow commands so they show up as inline annotations on the PR.
Inline annotations put the error on the exact line in the diff. It is a one-flag improvement to any Biome step running in GitHub Actions.
What it does
With --reporter=github, Biome prints each diagnostic using the GitHub Actions ::error and ::warning workflow command syntax, including file, line, and column. The Actions runner turns those into annotations attached to the matching lines in the pull request.
Common usage
# in a GitHub Actions step
npx @biomejs/biome ci --reporter=github ./src
# also works on check, lint, format
npx @biomejs/biome check --reporter=github .Options
| Reporter | What it does |
|---|---|
| --reporter=github | GitHub Actions annotations (::error/::warning) |
| --reporter=junit | JUnit XML for test-report tooling |
| --reporter=summary | A condensed end-of-run summary |
| --reporter=gitlab | GitLab Code Quality JSON report |
| --reporter=json | Machine-readable JSON diagnostics |
In CI
Add --reporter=github only when running inside GitHub Actions; locally it produces noisy ::error lines. The flag changes output formatting only, not exit codes, so the job still fails on error-level diagnostics exactly as before.
Common errors in CI
If annotations do not appear, the step is probably not running in GitHub Actions, or the diagnostics are warnings while the UI is filtered to errors. The reporter does not change pass/fail; a green job with no annotations simply means no error-level diagnostics. JSON/JUnit reporters write to stdout, so redirect them to a file if a later step consumes the report.