Skip to content

Replacements for strip-ansi

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. (9bdffbbe)