# @inquirer/ansi A lightweight package providing ANSI escape sequences for terminal cursor manipulation and screen clearing. # Special Thanks
[![Graphite](https://github.com/user-attachments/assets/53db40ca-2254-481a-a094-6597f8716e29)](https://graphite.dev/?utm_source=github&utm_medium=repo&utm_campaign=inquirerjs)
### [Graphite is the AI developer productivity platform helping teams on GitHub ship higher quality software, faster](https://graphite.dev/?utm_source=github&utm_medium=repo&utm_campaign=inquirerjs)
# Installation
npm yarn
```sh npm install @inquirer/ansi ``` ```sh yarn add @inquirer/ansi ```
## Usage ```js import { cursorUp, cursorDown, cursorTo, cursorLeft, cursorHide, cursorShow, eraseLines, } from '@inquirer/ansi'; // Move cursor up 3 lines process.stdout.write(cursorUp(3)); // Move cursor to specific position (x: 10, y: 5) process.stdout.write(cursorTo(10, 5)); // Hide/show cursor process.stdout.write(cursorHide); process.stdout.write(cursorShow); // Clear 5 lines process.stdout.write(eraseLines(5)); ``` Or when used inside an inquirer prompt: ```js import { cursorHide } from '@inquirer/ansi'; import { createPrompt } from '@inquirer/core'; export default createPrompt((config, done: (value: void) => void) => { return `Choose an option${cursorHide}`; }); ``` ## API ### Cursor Movement - **`cursorUp(count?: number)`** - Move cursor up by `count` lines (default: 1) - **`cursorDown(count?: number)`** - Move cursor down by `count` lines (default: 1) - **`cursorTo(x: number, y?: number)`** - Move cursor to position (x, y). If y is omitted, only moves horizontally - **`cursorLeft`** - Move cursor to beginning of line ### Cursor Visibility - **`cursorHide`** - Hide the cursor - **`cursorShow`** - Show the cursor ### Screen Manipulation - **`eraseLines(count: number)`** - Clear `count` lines and position cursor at the beginning of the first cleared line # License Copyright (c) 2025 Simon Boudrias (twitter: [@vaxilart](https://twitter.com/Vaxilart))
Licensed under the MIT license.