# cli-spinners

> Spinners for use in the terminal

Latest version **3.4.0** (published 2026-01-13) · MIT license · 0 weekly downloads

## Install

```sh
npm install cli-spinners
pnpm add cli-spinners
yarn add cli-spinners
bun add cli-spinners
```

## Health

**Score 65/100 (B)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 3.4.0 |
| Published | 2026-01-13 |
| First published | 2016-03-03 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Node | >=18.20 |
| Dependencies | 0 |
| Unpacked size | 33.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2938 |
| Author | Sindre Sorhus |
| Maintainers | sindresorhus |
| Keywords | cli, spinner, spinners, terminal, term, console, ascii, unicode, loading, indicator, progress, busy, wait, idle, json |

## Links

- npm: https://www.npmjs.com/package/cli-spinners
- Repository: https://github.com/sindresorhus/cli-spinners
- Homepage: https://github.com/sindresorhus/cli-spinners#readme
- Issues: https://github.com/sindresorhus/cli-spinners/issues
- Funding: https://github.com/sponsors/sindresorhus
- npm.io page: https://npm.io/package/cli-spinners

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 3.4.0 (latest) — 2026-01-13
- 3.3.0 — 2025-09-25
- 3.2.1 — 2025-09-17
- 3.2.0 — 2024-09-07
- 3.1.0 — 2024-07-01
- 3.0.0 — 2024-04-30
- 2.9.2 — 2023-11-24
- 2.9.1 — 2023-09-13
- 2.9.0 — 2023-05-02
- 2.8.0 — 2023-04-05
- 2.7.0 — 2022-07-24
- 2.6.1 — 2021-10-01
- 2.6.0 — 2021-03-18
- 2.5.0 — 2020-10-12
- 2.4.0 — 2020-07-18
- … 15 more at https://npm.io/package/cli-spinners/versions

## README

# cli-spinners

> 70+ spinners for use in the terminal

<p align="center">
	<br>
	<img width="700" src="screenshot.svg">
	<br>
	<br>
</p>

The list of spinners is just a [JSON file](spinners.json) and can be used wherever.

You probably want to use one of these spinners through the [`ora`](https://github.com/sindresorhus/ora) package.

## Install

```sh
npm install cli-spinners
```

## Usage

```js
import cliSpinners from 'cli-spinners';

console.log(cliSpinners.dots);
/*
{
	interval: 80,
	frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']
}
*/
```

- `interval` is the intended time per frame, in milliseconds.
- `frames` is an array of frames to show for the spinner.

## Preview

The header GIF is outdated. See all the [spinner at once](https://jsfiddle.net/sindresorhus/2eLtsbey/embedded/result/) or [one at the time](https://asciinema.org/a/95348?size=big).

## API

### cliSpinners

Each spinner comes with a recommended `interval` and an array of `frames`.

[See the spinners.](spinners.json)

### randomSpinner()

Get a random spinner.

```js
import {randomSpinner} from 'cli-spinners';

console.log(randomSpinner());
/*
{
	interval: 80,
	frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']
}
*/
```

## Related

- [ora](https://github.com/sindresorhus/ora) - Elegant terminal spinner
- [CLISpinner](https://github.com/kiliankoe/CLISpinner) - Terminal spinners for Swift
- [py-spinners](https://github.com/ManrajGrover/py-spinners) - Python port
- [spinners](https://github.com/FGRibreau/spinners) - Terminal spinners for Rust
- [go-spinners](https://github.com/gabe565/go-spinners) - Go port
- [bash-cli-spinners](https://github.com/simeg/bash-cli-spinners) - Terminal spinners in Bash

---
_Source: https://npm.io/package/cli-spinners · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
