# immersive

> A framework to build immersive CLIs & great developer tools.

Latest version **2.1.0** (published 2026-04-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install immersive
pnpm add immersive
yarn add immersive
bun add immersive
```

## Health

**Score 45/100 (D)** — status: stable.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 2.1.0 |
| Published | 2026-04-09 |
| First published | 2018-10-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 11 |
| Unpacked size | 37.3 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 5 |
| Author | MatthieuLemoine |
| Maintainers | matthieulemoine |

## Links

- npm: https://www.npmjs.com/package/immersive
- Repository: https://github.com/MatthieuLemoine/immersive
- Homepage: https://github.com/MatthieuLemoine/immersive#readme
- Issues: https://github.com/MatthieuLemoine/immersive/issues
- npm.io page: https://npm.io/package/immersive

## Dependencies (11)

- [conf](https://npm.io/package/conf.md) ^2.0.0
- [acorn](https://npm.io/package/acorn.md) ^8.7.1
- [chalk](https://npm.io/package/chalk.md) ^2.4.1
- [ramda](https://npm.io/package/ramda.md) ^0.25.0
- [figlet](https://npm.io/package/figlet.md) ^1.2.0
- [conductor](https://npm.io/package/conductor.md) ^1.4.1
- [env-paths](https://npm.io/package/env-paths.md) ^2.2.1
- [acorn-walk](https://npm.io/package/acorn-walk.md) ^8.2.0
- [cli-table3](https://npm.io/package/cli-table3.md) ^0.5.1
- [require-dir](https://npm.io/package/require-dir.md) ^1.1.0
- [yargs-parser](https://npm.io/package/yargs-parser.md) ^10.1.0

## Recent versions

- 2.1.0 (latest) — 2026-04-09
- 2.0.0 — 2022-06-28
- 1.8.1 — 2022-06-28
- 1.8.0 — 2022-06-27
- 1.7.0 — 2022-04-12
- 1.6.0 — 2022-04-07
- 1.5.0 — 2022-03-08
- 1.4.2 — 2021-12-17
- 1.4.1 — 2021-12-17
- 1.4.0 — 2020-08-09
- 1.3.1 — 2019-09-23
- 1.3.0 — 2018-10-10
- 1.2.1 — 2018-10-09
- 1.2.0 — 2018-10-08
- 1.1.1 — 2018-10-07
- … 3 more at https://npm.io/package/immersive/versions

## README

# Immersive [![CircleCI](https://circleci.com/gh/MatthieuLemoine/immersive/tree/master.svg?style=svg)](https://circleci.com/gh/MatthieuLemoine/immersive/tree/master)

A framework to build immersive CLIs & great developer tools.

## Features

- [Customization](https://github.com/MatthieuLemoine/immersive/wiki/Configuration#customization)
- [Configuration persistence](https://github.com/MatthieuLemoine/immersive/wiki/Configuration)
- [Auto loading of commands](https://github.com/MatthieuLemoine/immersive/wiki/Commands#commands-directory)
- [Autocomplete](https://github.com/MatthieuLemoine/immersive/wiki/Commands#autocomplete)
- [Command history](https://github.com/MatthieuLemoine/immersive/wiki/Commands#history)
- [Async commands support](https://github.com/MatthieuLemoine/immersive/wiki/Commands#example)
- [Enhanced context for commands](https://github.com/MatthieuLemoine/immersive/wiki/Commands#enhanced-context)
- [Environments management](https://github.com/MatthieuLemoine/immersive/wiki/Environments)
- [Enhanced REPL](https://github.com/MatthieuLemoine/immersive/wiki/REPL)
- [Make your own REPL](https://github.com/MatthieuLemoine/immersive/wiki/REPL#make-your-own-repl)
- [Display tabular data](https://github.com/MatthieuLemoine/immersive/wiki/Logger#table)
- [Help command](https://github.com/MatthieuLemoine/immersive/wiki/Commands#built-in-commands)

## Install

```
yarn add immersive
or
npm install immersive
```

## Usage

```javascript
const immersive = require('immersive');

const config = {
  // Application name used for config persistence (required)
  projectName: 'Immersive',
  // Will be displayed on CLI start (optional - default to displayName)
  displayName: 'Immersive',
  // Loaded commands (required if commandsDirectory not provided) - Should be valid map of ImmersiveCommand
  commands: {
    'import-orgs': {
      command: 'importOrgs',
      description: 'Import organizations',
      action: () => {},
    },
  },
  // Path to the directory where commands are defined (required if commands not provided)
  commandsDirectory: path.join(__dirname, 'commands'),
  // Will be accessible from commands as argument (optional)
  helpers: {
    db,
  },
  // Configuration will be passed to helpers based on the current environment (optional)
  environments: {
    development: { database: 'devdb' },
    staging: { database: 'stagingdb' },
    production: { database: 'proddb' },
  },
  // Define the current environment on CLI start
  // The current environment can be changed using the `env <envName>` command (optional)
  defaultEnvironment: 'development',
  // Default cli config (optional)
  defaultConfig: {
    // Displayed in prompt
    user: 'john',
    // Displayed in prompt
    symbol: '>',
    colors: {
      prompt: 'green',
    },
  },
};

immersive(config);
```

## Inspiration

Inspired by the awesome [vorpal](https://github.com/dthree/vorpal) framework.

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