Skip to content
CAI
Software that uses CAICheck a score

sindresorhus/ora

51.3

Adequate · 2 October 2026

2.7k

lines of production code

JavaScript

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is the 'ora' library, a utility for displaying and managing animated spinners in terminal environments. It provides features for customizing spinner appearance, handling text prefixes and suffixes, and managing terminal input and output safely. The current version is a complete rewrite to ES modules, requiring Node.js 20 and focusing on improved concurrency and Unicode support.

Behavioural changes

Ora v9: Complete rewrite to ESM with new options and improved terminal handling

This release is a major rewrite of the ora library, migrating from CommonJS to ES modules and requiring Node.js 20. The API has been updated to use a function call \ora()\ instead of \new Ora()\. New options include \prefixText\ and \suffixText\ (supporting strings or functions) for text before and after the spinner, \indent\ for spacing, \isSilent\ to suppress all output, and \discardStdin\ (default true) to prevent input interference. The \color\ option now accepts \false\ to disable coloring. The library now uses native \stripVTControlCharacters\ instead of \strip-ansi\, handles terminal height overflow to prevent garbage output, and improves concurrent spinner support. TypeScript definitions are included in \index.d.ts\.

(repo-wide) · high confidence

Dependencies

ora v9.4.1: Major dependency overhaul and Node.js 20 requirement

The ora package has been upgraded to version 9.4.1, shifting the runtime requirement to Node.js 20 or higher and adopting an ES module ("type": "module") structure. This update replaces several legacy dependencies with modern equivalents: chalk is upgraded from v1 to v5, cli-cursor from v1 to v5, cli-spinners from v0.1 to v3, and string-width from v0.1 to v8. New dependencies such as is-interactive, is-unicode-supported, log-symbols, and stdin-discarder have been added to enhance terminal interaction and Unicode support, while dev dependencies like xo and tsd have been updated to their latest versions.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 43 → 51 (+8.3)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 48 → 49 (+0.1)
  • Architecture 89 → 100 (+10.8)
  • Maturity 50 → 54 (+3.9)
  • Readiness 26 → 38 (+12.3)
  • Security 92 → 94 (+2.0)
  • Performance 100 (new)

Resolved (6)

  • Change coupling: index.test-d.ts ↔ test.js (index.test-d.ts)
  • Hotspot: index.js (index.js)
  • No automated tests
  • No tests found
  • Off-boarding risk: anonymized user #1
  • Test reliability not included

New (1)

  • Off-boarding risk: anonymized user #1

Changes since last survey

  • 1 commits — 1 feature/other, 0 fixes

By area

  • .github/security.md — 1 commit

Notable commits

  • change: Meta tweaks

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

sindresorhus/ora was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit b204360b0df925289759858c93d3d3ca824914c3 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.