Skip to content

Instantly share code, notes, and snippets.

@timneutkens
Last active March 4, 2024 14:01
Show Gist options
  • Save timneutkens/f2933558b8739bbf09104fb27c5c9664 to your computer and use it in GitHub Desktop.
Save timneutkens/f2933558b8739bbf09104fb27c5c9664 to your computer and use it in GitHub Desktop.
Clear console/terminal in node.js the right way
const readline = require('readline')
const blank = '\n'.repeat(process.stdout.rows)
console.log(blank)
readline.cursorTo(process.stdout, 0, 0)
readline.clearScreenDown(process.stdout)
@wSedlacek
Copy link

wSedlacek commented Mar 4, 2024

For macOS to get the terminal to clear including scrollback I use this.

process.stdout.write('\u001Bc\u001B[3J');

It is a NodeJS compatible version of \33c\e[3J (Note: Octal escapes will throw in strict mode so they must be converted)

The sequences being used are:
ESC c - Reset to initial state
CSI 3J - Clear entire screen and delete all lines saved in the scrollback buffer

For those interested in learning the escape sequences these two resources were useful.
https://en.wikipedia.org/wiki/ANSI_escape_code
https://bjh21.me.uk/all-escapes/all-escapes.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment