# human-id

> Returns from a pool of 15m human-readable IDs

Latest version **4.2.1** (published 2026-08-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install human-id
pnpm add human-id
yarn add human-id
bun add human-id
```

Provides the command `human-id`.

## Health

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

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

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 4.2.1 |
| Published | 2026-08-19 |
| First published | 2018-05-26 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 47.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 246 |
| Author | RienNeVaPlus |
| Maintainers | riennevaplus |
| Keywords | human, readable, id, identifier |

## Links

- npm: https://www.npmjs.com/package/human-id
- Repository: https://github.com/RienNeVaPlus/human-id
- Homepage: https://github.com/RienNeVaPlus/human-id#readme
- Issues: https://github.com/RienNeVaPlus/human-id/issues
- npm.io page: https://npm.io/package/human-id

## Alternatives

- [@sindresorhus/slugify](https://npm.io/package/@sindresorhus/slugify.md) — 3.7M weekly downloads
- [solid-js](https://npm.io/package/solid-js.md) — 2.7M weekly downloads
- [expo-glass-effect](https://npm.io/package/expo-glass-effect.md) — 2.5M weekly downloads
- [nanoassert](https://npm.io/package/nanoassert.md) — 780.8K weekly downloads
- [@ffmpeg/ffmpeg](https://npm.io/package/@ffmpeg/ffmpeg.md) — 529.5K weekly downloads

## Recent versions

- 4.2.1 (latest) — 2026-08-19
- 4.1.4 — 2026-08-19
- 4.2.0 — 2026-06-04
- 4.1.3 — 2025-11-28
- 4.1.2 — 2025-10-06
- 4.1.1 — 2024-02-02
- 4.1.0 — 2023-09-28
- 4.0.0 — 2022-05-09
- 3.0.1 — 2022-05-09
- 3.0.0 — 2021-11-13
- 2.0.1 — 2019-12-28
- 2.0.0 — 2019-10-28
- 1.0.2 — 2018-05-26
- 1.0.1 — 2018-05-26
- 1.0.0 — 2018-05-26

## README

<h3 align="center">💃🆔</h3>

## Human-Readable Identifiers

[![Downloads](https://img.shields.io/npm/dm/human-id)](https://www.npmjs.com/human-id)
[![License](https://img.shields.io/npm/l/human-id)](https://github.com/RienNeVaPlus/human-id/blob/master/LICENSE)

> Using words to identify datasets (instead of numbers) provides various advantages when humans are involved, ie increased distinction and rememberability.

Human-ID generates readable strings by chaining common short words of the english language in a semi-meaningful way.
The result is concatenated of `adjective + noun + verb` resulting in a [minimum](#extended-pool-size) pool size of **15 000 000** possible combinations.

- **SFW**: no bad words; family friendly results
- No dependencies

## Examples

- FortyGhostsTalk
- CalmSnailsDream
- TastyRocksSparkle
- HealthyCowsSmile
- AfraidWallsExist
- StrangeCarsRush
- TwoLizardsSing
- HappyLionsJump

## Install

Yarn
```
yarn add human-id
```

NPM
```
npm install human-id
```

## Usage

### Command line

```sh
npx human-id
# RareGeckosJam

npx human-id lowercase + 2x
# rare+geckos+jam
# healthy+cows+smile
```

### Programmatic

```js
import {humanId, poolSize, minLength, maxLength} from 'human-id'

// RareGeckosJam
humanId()

// Rare~Geckos~Jam
// alias for { separator: '~' }
humanId('~')

// rare-geckos-jam
humanId({
  separator: '-',
  capitalize: false,
})

poolSize()  // 15,000,000
minLength() //          8
maxLength() //         19
```

## Extended Pool Size

For most cases, the default pool size should be large enough. However, the options `adjectiveCount` and `addAdverb` can be utilized to increase the pool size for the price of the string length.

```js
const options = {
  adjectiveCount: 2,
  addAdverb: true,
  separator: '.'
}

humanId(options)   // Ten.Wet.Files.Cheer.Lazily
poolSize(options)  // 630,000,000
minLength(options) //          20
maxLength(options) //          41
```

## Executable arguments

Use the following arguments to modify the default options or print multiple results.

| Argument                   | Effect                                            |
| -------------------------- | ------------------------------------------------- |
| `a`, `adverb`, `addAdverb` | Sets `option.addAdverb` to `true`                 |
| `l`, `lower`, `lowercase`  | Sets `option.capitalize` to `false`               |
| `space`                    | Sets `option.separator` to an empty space ` `     |
| any number                 | Sets `option.adjectiveCount` to the given integer |
| any single character       | Sets `option.separator` to the character          |
| any number followed by `x` | Repeats the output `number` times                 | 

### Example

```bash
npx human-id adverb lower 2 _ 3x
# clever_shaggy_memes_sit_quietly
# cuddly_spicy_boxes_wave_politely
# sweet_fair_wombats_fetch_bravely
```

## API

#### `humanId(options?: string | Option): string`
Generates a human ID. **Options** can be a `string` (separator), a `boolean` (capitalize) or an `Options` object of:
- **separator** `string = ''` - Separates the words from each other
- **capitalize** `boolean = true` - Whether to transform the first character of each word to upper case
- **adjectiveCount** `number = 1` - How many adjectives to return
- **addAdverb** `boolean = false` - Adds a fourth part to the id

*This function is also available as the default export*

#### `poolSize(options?: string | Option): number`
Returns the number of possible combinations for a given set of options.

#### `minLength(options?: Option): number`
The length of the shortest possible id for a given set of options.

#### `maxLength(options?: Option): number`
The length of the longest possible id for a given set of options.

#### `adjectives: string[]`
List of possible values for the first part of the human id.

#### `nouns: string[]`
List of possible values for the second part of the human id.

#### `verbs: string[]`
List of possible values for the third part of the human id.

#### `adverbs: string[]`
List of possible values for the optional fourth part of the human id.


<h6 align="center">💃🆔</h6>

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