> sindresorhus-log-update
Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc. ALWAYS use when writing code importing "log-update". Consult for debugging, best practices, or modifying log-update, log update.
curl "https://skillshub.wtf/harlan-zw/skilld/sindresorhus-log-update?format=md"sindresorhus/log-update log-update
Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc.
Version: 7.2.0 Deps: ansi-escapes@^7.3.0, cli-cursor@^5.0.0, slice-ansi@^8.0.0, strip-ansi@^7.2.0, wrap-ansi@^10.0.0 Tags: latest: 7.2.0
References: package.json — exports, entry points • GitHub Issues — bugs, workarounds, edge cases • Releases — changelog, breaking changes, new APIs
Search
Use skilld search "query" -p log-update instead of grepping .skilld/ directories. Run skilld search --guide -p log-update for full syntax, filters, and operators.
API Changes
This section documents version-specific API changes — prioritize recent major/minor releases.
-
BREAKING: Node.js requirement updated from 18 to 20 in v7.0.0 — code targeting earlier Node.js versions will fail at runtime source
-
NEW:
persist(...text)method added in v7.0.0 — writes output that persists in terminal scrollback, unlike the mainlogUpdate()which updates in place source -
NEW:
defaultWidthoption added in v7.0.0 — allows specifying terminal width (default: 80) when the stream doesn't providecolumnsproperty, useful for piped or redirected output source -
NEW:
defaultHeightoption added in v7.0.0 — allows specifying terminal height (default: 24) when the stream doesn't providerowsproperty, useful for piped or redirected output source
Also changed: Partial update rendering optimization v7.0.0 · Trailing newline handling fixes v7.0.1–v7.0.2
<!-- /skilld:api-changes --> <!-- skilld:best-practices -->Best Practices
-
Use
.persist()for permanent terminal output that should remain in scrollback history — it writes likeconsole.log()instead of updating in-place, ideal for results or status messages that users need to scroll back to review source -
Call
.done()before starting a new log session to persist the current output and prepare for fresh updates below — prevents scrollback contamination source -
Enable
showCursor: truewhen your CLI accepts user input or displays a prompt — otherwise the hidden cursor creates a poor UX for interactive interfaces source -
Set
defaultWidthanddefaultHeightoptions when output is piped, redirected, or running in non-TTY environments — without this, the library assumes 80x24 which causes incorrect line wrapping and erasure source -
Create separate
logUpdateinstances viacreateLogUpdate(stream)for each independent update context instead of reusing the default export — prevents one instance's updates from clobbering another's source -
Understand that log-update can only erase and rewrite lines currently visible in the terminal viewport — content already in scrollback cannot be manipulated, so extremely long outputs will overflow and "leak" source
-
Account for ANSI escape sequences in output width calculations — the library properly handles colorized text with tools like chalk/yoctocolors and accounts for their escape codes when calculating line wrapping source
-
Use
logUpdateStderrfor error messages and warnings instead oflogUpdate— maintains separation between stdout and stderr streams source -
Leverage partial/synchronized rendering in v7.1.0+ for reduced flicker when updating large outputs — the library now intelligently redraws only changed lines instead of erasing everything source
-
Be aware that multiple consecutive blank lines at the end of output may collapse to a single blank line during rendering optimization — design output that doesn't rely on exact blank line preservation source
> related_skills --same-repo
> test-skill
A test skill for unit tests
> another-skill
Second test skill
> sqlite-vec-skilld
ALWAYS use when writing code importing "sqlite-vec". Consult for debugging, best practices, or modifying sqlite-vec, sqlite vec.
> unjs-citty
ALWAYS use when writing code importing "citty". Consult for debugging, best practices, or modifying citty.