Back to Explore

sindresorhus/ora

GitHub
1 updates · last 90 daysOpen source

Last release:

Ora is a Node.js utility for showing an elegant animated terminal spinner with customizable text, color, spinner style, and output stream (by default, process.stderr). It’s useful for CLI apps to provide responsive progress feedback while work is running, including helpers like oraPromise to automatically mark success or failure.

Project status

  • Actively maintained: the latest update and upstream push were on 2026-10-31, just days before today.
  • Updates have been fairly regular, with several in 2026 and shorter gaps between some earlier updates.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v10.0.0

    Ora v10.0.0 raises the minimum supported Node.js version to 22 and substantially rewrites terminal rendering so the spinner clears only its own frame while preserving program output. The diff also adds terminal-aware text layout and truncation, updates runtime dependencies, and changes the project’s test tooling.

    BreakingFeatures
  • v9.4.1

    v9.4.1 is a small patch release with a release-note claim of “Fix type definitions” only. However, the actual changes include both TypeScript surface updates and runtime behavior adjustments around empty text handling and nullish inputs for oraPromise.

  • v9.4.0

    v9.4.0 adds `successSymbol` and `failSymbol` options to `oraPromise`, allowing callers to customize or disable the resolved and rejected symbols. The implementation also introduces stricter runtime validation for the `interval` and `color` options in the main `ora` spinner.

    Features
  • v9.3.0

    v9.3.0 focuses on reducing flicker during spinner rendering. The implementation changes how output is written to TTY streams by temporarily enabling terminal synchronized output mode around each render cycle.

  • v9.2.0

    v9.2.0 primarily updates the `stdin-discarder` dependency used by `ora`. The only functional code-related change in this release is the dependency version bump in `package.json`.

  • v9.1.0

    ora v9.1.0 adds support for writing to the same stream (for example, console.log, console.error, console.warn) while a spinner is running, so the spinner can clear, print the message, and re-render cleanly. It also replaces the strip-ansi dependency with Node's native stripVTControlCharacters.

    Features
  • v9.0.0

    ora v9.0.0 requires Node.js 20 and includes fixes around clearing, frame rendering, and handling multiline output that exceeds terminal height. The code changes also introduce stricter validation for custom spinner objects and adjust internal prefix/suffix handling during line-count computation.

    Breaking
  • v8.2.0

    v8.2.0 adds support for using a boolean value with the `color` option. The release notes only mention this change. The code diff shows corresponding updates to TypeScript types and the README to reflect the new accepted type.

    Features
  • v8.1.1

    v8.1.1 contains two targeted bug fixes related to spinner rendering: throttling frame updates when render/update is called very frequently, and correctly handling an empty string symbol during persistence. The code changes are small but include internal timing state and an adjustment to how spacing is computed when the symbol is empty.

  • v8.1.0

    v8.1.0 is described in the release notes only as a dependency update. The code diff shows mostly dependency version bumps plus documentation and type-comment text adjustments, with no clear functional code changes in the runtime implementation.

    Breaking
  • v8.0.1

    v8.0.1 is a small maintenance release intended to fix an issue where the process was not exiting. The provided release notes only mention the behavioral fix, with no further details.

  • v8.0.0

    v8.0.0 primarily raises the minimum supported Node.js version to 18 and updates dependencies. The code diff also includes packaging-related metadata changes in package.json (exports and sideEffects) and CI workflow action version bumps.

    Breaking