log-lens-reporter is a unified terminal reporter for clear, consistent, and actionable test output. It prints one progress row per file, groups failed test details directly below that row, and finishes with a shared summary table.
Public documentation and issue tracking are available in the public repository. See the changelog for release notes.
The default presentation uses colors, Unicode double borders, category-specific prefixes, and clickable file names in supported terminals. The header, progress body, and summary use connected sections of equal width. They share borders and adapt to the terminal width.
╔════════════════════════════════════════════════════════════╗
║ UNIT · VITEST TEST RUN ║
║ Vitest · tests · 2 files · 14 tests ║
╟────────────────────────────────────────────────────────────╢
║ UNIT tests/auth.spec.ts · 8 tests · 42ms · PASSED ║
║ UNIT tests/store.spec.ts · 6 tests · 91ms · FAILED ║
╟────────────────────────────────────────────────────────────╢
║ SUMMARY ║
╟┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╢
║ Result: FAILED · Duration: 184ms · Passed: 13 · Failed: 1 ║
║ Timed out: 0 · Flaky: 0 · Skipped: 0 ║
╚════════════════════════════════════════════════════════════╝
| Package manager | Command |
|---|---|
| npm | npm install --save-dev log-lens-reporter |
| yarn | yarn add --dev log-lens-reporter |
| pnpm | pnpm add -D log-lens-reporter |
All adapters use the same presentation options:
| Option | Accepted values | Default | Description |
|---|---|---|---|
color |
true, false |
true |
Enables or disables ANSI colors |
border |
true, false |
true |
Enables or disables the Unicode frame |
borderStyle |
'double', 'single' |
'double' |
Produces ╔══╗ or ┌──┐ when borders are enabled |
sectionWidth |
number |
terminal | Sets the shared inner width for all three blocks |
showDescription |
boolean |
true |
Shows generated provider, base path, file, and test metadata |
terminalWidth |
number |
detected | Overrides terminal detection |
terminalMargin |
number |
4 |
Keeps output away from the terminal auto-wrap edge |
pathWidth |
number |
available space | Optionally limits the path column before adaptive shortening |
links |
boolean, LinkConfig |
automatic | Controls clickable file links |
kindStyles |
Record<string, KindStyle> |
built-in palette | Customizes category colors |
reportDetail |
'full', 'summary', or 'status' |
'full' |
Selects the full report, summary block, or one status line |
See the configuration reference for complete types, color support, link settings, custom categories, and examples.
Projects with several runners can add one loglensreporter.config.json at the repository root. Root options apply to every adapter. Provider sections override the root options, and inline reporter options have the highest priority. See project configuration for the schema and discovery rules.
The optional log-lens-reporter/run entry point runs external test or build stages. It shows separate loader labels for preparation and execution. Full reports can be printed after completion or streamed one stable file row at a time. Compact summary and status reports remain buffered while the loader shows the live percentage and completed test count. Hidden warning summaries link to details in a configurable local log directory.
The npm package requires Node.js 20 or newer.
| Runner | Entry point | Requirement | Guide |
|---|---|---|---|
| Vitest | log-lens-reporter/vitest |
Vitest 4 | Setup and options |
| Jest | log-lens-reporter/jest |
Jest 30 | Setup and options |
node:test |
log-lens-reporter/node |
Node.js 20+ | Setup and options |
| Mocha | log-lens-reporter/mocha |
Mocha 10+ | Setup and options |
| Playwright | log-lens-reporter/playwright |
Playwright 1.58-compatible reporter API | Setup and options |
| Go | log-lens-reporter/go |
Go available on PATH |
Setup and options |