Skip to content

Replacements for strip-ansi ​

util.stripVTControlCharacters (native, Node.js) ​

Added in v16.11.0, util.stripVTControlCharacters can be used to strip ANSI escape codes from a string.

ts
import stripAnsi from 'strip-ansi'
import { stripVTControlCharacters } from 'node:util'

console.log(stripAnsi('\u001B[4me18e\u001B[0m')) 
console.log(stripVTControlCharacters('\u001B[4me18e\u001B[0m')) 

NOTE

Due to a bug, in older Node versions this utility doesn't handle ANSI hyperlinks correctly. This behavior has been fixed as of NodeJS v22.10.

Deno ​

Deno implements the Node util API, and also provides util.stripVTControlCharacters. The usage is identical:

ts
import stripAnsi from 'strip-ansi'
import { stripVTControlCharacters } from 'node:util'

console.log(stripAnsi('\u001B[4me18e\u001B[0m')) 
console.log(stripVTControlCharacters('\u001B[4me18e\u001B[0m')) 

Bun ​

Using Node‑compatible API ​

Bun also implements Node’s util.stripVTControlCharacters through its Node compat layer:

ts
import stripAnsi from 'strip-ansi'
import { stripVTControlCharacters } from 'node:util'

console.log(stripAnsi('\u001B[1mHello\u001B[0m')) 
console.log(stripVTControlCharacters('\u001B[1mHello\u001B[0m')) 

Using Bun's native API (>=1.2.21) ​

Since Bun v1.2.21, you can use the built-in Bun.stripANSI method.

ts
import stripAnsi from 'strip-ansi'
import { stripANSI } from 'bun'

console.log(stripAnsi('\u001B[31mHello World\u001B[0m')) 
console.log(Bun.stripANSI('\u001B[31mHello World\u001B[0m')) 

Released under the MIT License. (cb509db0)