A Node.js library that logs to the terminal by overwriting the previous output, making it useful for progress bars, animations, spinners, and other in-place CLI updates. It supports clearing, “done” to persist the final output, and “persist” methods for writing permanent lines (optionally to stderr), with utilities to target a specific output stream.
Project status
- Actively maintained, based on recent GitHub updates in 2026 (e.g., v8.0.0 on 2026-04-05, then prior updates in February 2026).
- Update cadence appears fairly steady for this period, with multiple updates across 2026 (about monthly in February, then again about a bit over 2 months later in April), and the last upstream push on 2026-04-05.
AI summary generated
Recent updates
v8.0.0
log-update v8.0.0 raises the minimum supported Node.js version to 22 and includes a fix for terminal cursor alignment when output is clipped by terminal height. The code changes go beyond a simple alignment tweak, including a reworked height-clipping algorithm and cursor movement/patch positioning logic.
Breakingv7.2.0
v7.2.0 makes a small package metadata bump and updates several dependencies. The release notes only state that dependencies were updated, without detailing which packages changed or the potential impact of those version jumps.
v7.1.0
This release adds synchronized output rendering by emitting terminal control sequences to bracket each rendered update when the output stream is a TTY. The core rendering logic was refactored to route writes through a new helper that conditionally wraps output with the synchronized output enable and disable sequences.
Featuresv7.0.2
v7.0.2 is a small bug fix release for log-update, focused on how partial/animated updates handle trailing newlines. The changes are localized to the terminal patching logic and add a regression test for preserving trailing lines during animated updates.
v7.0.1
v7.0.1 focuses on correcting terminal rendering when updates partially redraw, and on preserving user-provided trailing newlines in log output. The code changes also affect how the library decides between partial redraw versus full erase, especially when output gets clipped by terminal row limits.
v7.0.0
v7.0.0 updates log-update to require Node.js 20 and introduces a new rendering strategy that performs partial redraws to reduce flicker. It also adds a `.persist()` method for writing permanent output to scrollback, plus `defaultWidth` and `defaultHeight` options for environments where terminal dimensions are unavailable.
BreakingFeaturesv6.1.0
v6.1.0 is presented as a dependency update. The actual code changes are small refactors in the terminal sizing and state-reset logic, but there are also notable dependency version bumps and one package metadata change.
v6.0.0
v6.0.0 is a major release that explicitly raises the minimum supported Node.js version to 18. Beyond that, the repo shows multiple packaging, type, and dependency changes that are not mentioned in the release notes.
Breakingv5.0.1
v5.0.1 is a small patch release focused on correcting how log-update fits output to the terminal height when ANSI-styled (colored) text is used. The code changes adjust height truncation logic to properly account for ANSI escape sequences.
v5.0.0
v5.0.0 migrates log-update to pure ESM, changes how consumers import the main logger, and replaces the old `.stderr` and `.create` properties with named exports. The implementation now exposes `createLogUpdate(stream, options?)` and derives both the stdout default export and the stderr named export from it.
Breaking