interactive-cli-menu is a sleek, modern, and customizable NPM package for creating interactive CLI menus. It supports smooth arrow key navigation, actionable items, and beautiful terminal UIโall without external dependencies! Perfect for making your command-line tools pop! ๐
- ๐ผ Arrow Key Navigation: Effortlessly navigate menus with the up/down arrows.
- ๐จ Customizable Styling: Choose colors, widths, borders, and more.
- โก Actionable Items: Attach custom actions to menu selections.
- ๐ชถ Lightweight: No external dependenciesโ100% native Node.js.
- ๐ Graceful Exit: Cleanly handles
Ctrl+C
to terminate.
Install via NPM:
npm install interactive-cli-menu
const { createMenu } = require('interactive-cli-menu');
const menu = createMenu({
title: '๐ Main Menu',
width: 50,
borderColor: 36, // Cyan
highlightColor: 33, // Yellow
textColor: 37, // White
items: [
{ label: '๐ Search', action: () => console.log('Searching... ๐') },
{ label: 'โ๏ธ Settings', action: () => console.log('Opening settings... ๐ ๏ธ') },
{ label: 'โ Exit', action: () => console.log('Goodbye! ๐') }
]
});
menu.render();
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Main Menu
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Search
> โ๏ธ Settings
โ Exit
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Use โฌ๏ธ Up and โฌ๏ธ Down to navigate.
- Press โ Enter to select.
Option | Type | Default | Description |
---|---|---|---|
title |
string |
'Menu' |
Title displayed at the top of the menu. |
width |
number |
60 |
Width of the menu in characters. |
borderColor |
number |
90 (Gray) |
ANSI color code for the border. |
highlightColor |
number |
34 (Blue) |
ANSI color code for the selected menu item. |
textColor |
number |
37 (White) |
ANSI color code for unselected menu items. |
items |
array |
[] |
Array of menu items (see below). |
Each item is an object with the following properties:
Property | Type | Description |
---|---|---|
label |
string |
The text displayed for the menu item (supports emojis). |
action |
function |
The function executed when the item is selected. |
const { createMenu } = require('interactive-cli-menu');
let items = [
{ label: '๐ View Files', action: () => console.log('Listing files... ๐๏ธ') },
{ label: 'โ Add Item', action: () => console.log('Adding item... โ
') },
{ label: 'โ Exit', action: () => console.log('Goodbye! ๐') }
];
const menu = createMenu({
title: '๐ ๏ธ My CLI Tool',
width: 60,
borderColor: 35, // Magenta
highlightColor: 32, // Green
textColor: 37, // White
items
});
menu.render();
๐ฎ Future Enhancements:
- ๐ Nested Menus: Add support for multi-level menus.
- ๐ Extended Themes: More built-in color schemes and styles.
- ๐ต๏ธ Search: Enable searchable menus for longer lists.
- โจ๏ธ Custom Keybindings: Allow custom navigation keys.
We โค๏ธ contributions! If you find a bug or have an idea for improvement, feel free to open an issue or submit a pull request.
interactive-cli-menu is open-source and available under the MIT License.
โจ Make your CLI tools stylish and user-friendly with interactive-cli-menu! ๐