Skip to content

heroui-inc/heroui-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

176 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

heroui (previously nextui)

HeroUI CLI (Previously NextUI CLI)


License npm downloads

The CLI offers a comprehensive suite of commands to initialize, manage, and improve your HeroUI projects. It enables you to add, remove, or upgrade individual components, assess the health of your project, and more.

Quick Start

Note: The HeroUI CLI requires Node.js 20.19.x+ or later

You can choose the following ways to start the HeroUI CLI.

Npx

npx heroui-cli@latest

Global Installation

npm install -g heroui-cli

Usage

Usage: heroui [command]

Options:
  -v, --version                      Output the current version
  --no-cache                         Disable cache, by default data will be cached for 30m after the first request
  -d, --debug                        Debug mode will not install dependencies
  -h --help                          Display help information for commands

Commands:
  init [options] [projectName]       Initializes a new project
  add [options] [targets...]         1. Adds components to your project
                                     2. Adds HeroUI Chat codebase to your project
  upgrade [options] [components...]  Upgrades project components to the latest versions
  remove [options] [components...]   Removes components from the project
  list [options]                     Lists all components, showing status, descriptions, and versions
  env [options]                      Displays debugging information for the local environment
  doctor [options]                   Checks for issues in the project
  agents-md [options]                Downloads HeroUI documentation for AI coding agents
  help [command]                     Display help for command

Analytics

The agents-md command collects anonymous usage data.

What we collect: Selection (react/native/both), output file names, duration, success or error. No file paths, or project contents are collected.

Opt out: Set HEROUI_ANALYTICS_DISABLED=1 in your environment or shell profile.

Commands

Init

Initialize a new HeroUI project with official templates.

heroui init [projectName] [options]

Init Options

  • -t --template [string] The template to use for the new project e.g. app, laravel, pages, remix, vite
  • -p --package [string] The package manager to use for the new project (default: npm)
Example
# Initialize a new HeroUI project with the app template, named my-heroui-app
heroui init my-heroui-app -t app

output:

HeroUI CLI <version>

┌  Create a new project
│
◇  Select a template (Enter to select)
│  ● App (A Next.js 15 with app directory template pre-configured with HeroUI (v2) and Tailwind CSS.)
│  ○ Pages (A Next.js 15 with pages directory template pre-configured with HeroUI (v2) and Tailwind CSS.)
│  ○ Vite (A Vite template pre-configured with HeroUI (v2) and Tailwind CSS.)
│  ○ Remix (A Remix template pre-configured with HeroUI (v2) and Tailwind CSS.)
│  ○ Laravel (A Laravel template pre-configured with HeroUI (v2) and Tailwind CSS.)
│
◇  New project name (Enter to skip with default name)
│  my-heroui-app
│
◇  Select a package manager (Enter to select)
│  ● npm
│  ○ yarn
│  ○ pnpm
│  ○ bun
│
◇  Template created successfully!
│
◇  Next steps ───────╮
│                    │
│  cd my-heroui-app  │
│  npm install       │
│                    │
├────────────────────╯
│
└  🚀 Get started with npm run dev

Add

  1. Add HeroUI components to your project.
  2. Add HeroUI Chat codebase to your project.

Features

  1. Auto add the missing required dependencies to your project
  2. Detect whether using pnpm, if so, add the required configuration to your .npmrc file
  3. Add HeroUI Chat codebase to your project
heroui add [targets...] [options]

Add Options

  • -a --all [boolean] Add all components (default: false)
  • -p --packagePath [string] The path to the package.json file
  • --tw --tailwindPath [string] The path to the tailwind.config file (for backward compatibility)
  • --app --appPath [string] The path to the App.tsx file
  • --prettier [boolean] Add prettier format in the add content which required installed prettier - (default: false)
  • --addApp [boolean] Add App.tsx file content which required provider (default: false)
  • -b --beta [boolean] Add beta components (default: false)
  • -d --directory [string] Add HeroUI Chat codebase to a specific directory
Example

Without setting a specific component, the add command will show a list of available components.

heroui add

Output:

HeroUI CLI <version>

? Which components would you like to add? › - Space to select. Return to submit
Instructions:
    ↑/↓: Highlight option
    ←/→/[space]: Toggle selection
    [a,b,c]/delete: Filter choices
    enter/return: Complete answer

Filtered results for: Enter something to filter

◉  accordion
◯  autocomplete
◯  avatar
◯  badge
◯  breadcrumbs
◯  button
◯  card
◯  checkbox
◯  chip
◯  code

If you want to add a specific component, you can specify the component name.

heroui add button

Output:

HeroUI CLI <version>

Adding the required dependencies: @heroui/button

pnpm add @heroui/button
Packages: +1
+
Progress: resolved 470, reused 462, downloaded 0, added 0, done

dependencies:
+ @heroui/button 2.0.24

Done in 3.4s

Tailwind CSS settings have been updated in: /project-path/tailwind.config.js

✅ Components added successfully

Upgrade

Upgrade the HeroUI components to the latest version.

heroui upgrade [components...] [options]

Upgrade Options

  • -p --packagePath [string] The path to the package.json file
  • -a --all [boolean] Upgrade all the HeroUI components (default: false)
  • -w --write [boolean] Write the upgrade version to package.json file (default: false)
  • -b --beta [boolean] Upgrade beta components (default: false)
  • -h --help Display help for command
Example

Upgrade the Button component to the latest version.

heroui upgrade button

Output:

HeroUI CLI <version>

╭───────────────────────── Component ─────────────────────────╮
│  @heroui/button              ^2.0.11  ->  ^2.0.31           │
╰─────────────────────────────────────────────────────────────╯

Required min version: @heroui/theme>=2.1.0, tailwindcss>=3.4.0, react>=18.3.1, react-dom>=18.3.1
╭───────────────────── PeerDependencies ─────────────────────╮
│  @heroui/theme                   2.0.1    ->  2.1.0        │
│  tailwindcss                     ^3.2.3   ->  ^3.4.0       │
│  react                           Missing  ->  18.3.1       │
│  react-dom                       Missing  ->  18.3.1       │
╰────────────────────────────────────────────────────────────╯
2 major, 2 minor, 1 patch

? Would you like to proceed with the upgrade? › - Use arrow-keys. Return to submit.
❯   Yes
    No

pnpm add @heroui/button@2.0.31 @heroui/theme@2.1.0 tailwindcss@3.4.0 react@18.3.1 react-dom@18.3.1

dependencies:
- @heroui/theme 2.0.1
+ @heroui/theme 2.1.0 (2.2.3 is available)
+ react 18.3.1
+ react-dom 18.3.1

Done in 1.8s

✅ Upgrade complete. All components are up to date.

Remove

Remove HeroUI components from your project.

Note: If there are no HeroUI components after removing, the required content will also be removed

heroui remove [components...] [options]

Remove Options

  • -p --packagePath [string] The path to the package.json file
  • -a --all [boolean] Remove all the HeroUI components (default: false)
  • --tw --tailwindPath [string] The path to the tailwind.config file (for backward compatibility)
  • --prettier [boolean] Add prettier format in the add content which required installed prettier - (default: false)
Example

Remove the Button component from your project.

heroui remove button

Output:

HeroUI CLI <version>

❗️ Components slated for removal:
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│   Package          │   Version              │   Status   │   Docs                                            │
│──────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│   @heroui/button   │   2.0.27 🚀latest      │   stable   │   https://heroui.com/docs/components/button       │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
? Confirm removal of these components: › - Use arrow-keys. Return to submit.
❯   Yes
    No

pnpm remove  @heroui/button
Already up to date
Progress: resolved 474, reused 465, downloaded 0, added 0, done

dependencies:
- @heroui/button 2.0.27

Done in 2.1s

Remove the removed components tailwind content in file:/project-path/tailwind.config.js

✅ Successfully removed the specified HeroUI components: @heroui/button

List

List all the current installed components.

heroui list [options]

List Options

  • -p --packagePath [string] The path to the package.json file
  • -r --remote List all components available remotely
Example
heroui list

Output:

HeroUI CLI <version>

Current installed components:

╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│   Package                │   Version              │   Status    │   Docs                                                  │
│───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│   @heroui/autocomplete   │   2.0.10 🚀latest      │   stable    │   https://heroui.com/docs/components/autocomplete       │
│   @heroui/badge          │   2.0.24 🚀latest      │   stable    │   https://heroui.com/docs/components/badge              │
│   @heroui/button         │   2.0.27 🚀latest      │   stable    │   https://heroui.com/docs/components/button             │
│   @heroui/chip           │   2.0.25 🚀latest      │   stable    │   https://heroui.com/docs/components/chip               │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Doctor

Check whether exist problem in your project by using the doctor command.

heroui doctor [options]

Features

  1. Check whether have redundant dependencies in the project
  2. Check whether the HeroUI components required dependencies are installed in the project
  3. Check the content of tailwind.config.js is correct (if it exists)
  4. Check .npmrc is correct when using pnpm
  5. Check peerDependencies with required version are installed in the project

Doctor Options

  • -p --packagePath [string] The path to the package.json file
  • --tw --tailwindPath [string] The path to the tailwind.config file (for backward compatibility)
  • --app --appPath [string] The path to the App.tsx file
  • --ca --checkApp [boolean] Open check App (default: true)
  • --ct --checkTailwind [boolean] Open check tailwind.config file (default: true if it exists)
  • --cp --checkPnpm [boolean] Open check Pnpm (default: true)

Example

heroui doctor

Output:

If there is a problem in your project, the doctor command will display the problem information.

HeroUI CLI <version>

HeroUI CLI: ❌ Your project has 1 issue that require attention

❗️Issue 1: missingDependencies

You have not installed the required dependencies

The required dependencies are:
- @heroui/theme@2.4.25

See more info here: https://heroui.com/docs/guide/installation#global-installation

Otherwise, the doctor command will display the following message.

HeroUI CLI <version>

✅ Your project has no detected issues.

Env

Display debug information about the local environment.

heroui env [options]

Env Options

  • -p --packagePath [string] The path to the package.json file

Example

Display the local environment Information by using the env command.

heroui env

Output:

HeroUI CLI <version>

Current installed components:

╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│   Package                │   Version              │   Status    │   Docs                                                  │
│───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
│   @heroui/autocomplete   │   2.0.10 🚀latest      │   stable    │   https://heroui.com/docs/components/autocomplete       │
│   @heroui/badge          │   2.0.24 🚀latest      │   stable    │   https://heroui.com/docs/components/badge              │
│   @heroui/button         │   2.0.27 🚀latest      │   stable    │   https://heroui.com/docs/components/button             │
│   @heroui/chip           │   2.0.25 🚀latest      │   stable    │   https://heroui.com/docs/components/chip               │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Environment Info:
  System:
    OS: darwin
    CPU: arm64
  Binaries:
    Node: v18.18.2

Agents-md

Download HeroUI documentation for AI coding agents (Claude, Cursor, etc.). This command downloads the latest documentation from the HeroUI repository and generates an index file that can be injected into markdown files like AGENTS.md or CLAUDE.md to help AI assistants understand your project's HeroUI setup.

heroui agents-md [options]

Features

  1. Downloads latest HeroUI documentation from the v3 branch
  2. Supports React, Native, and Migration (v2→v3) documentation
  3. Generates a section for the selected library (React, Native, or Migration) in the markdown file
  4. Automatically adds .heroui-docs/ to .gitignore

Agents-md Options

  • --react [boolean] Include React docs only (one library at a time)
  • --native [boolean] Include Native docs only
  • --migration [boolean] Include HeroUI v2 to v3 migration docs only
  • --output <file> [string] Target file path (e.g., AGENTS.md, CLAUDE.md)
  • --ssh [boolean] Use SSH instead of HTTPS for git clone

Example

Run the command without any flags to enter interactive mode:

heroui agents-md

Download React docs to a specific file:

heroui agents-md --react --output AGENTS.md

Download Native docs:

heroui agents-md --native --output CLAUDE.md

Download migration docs (v2→v3):

heroui agents-md --migration --output AGENTS.md

Use SSH for cloning (useful if HTTPS fails):

heroui agents-md --react --ssh --output AGENTS.md

How It Works

  1. Downloads Documentation: Clones the HeroUI repository using git sparse-checkout to download only the documentation files
  2. Generates Index: Creates a compact index of all documentation files organized by directory
  3. Injects into Markdown: Injects the index into your specified markdown file (e.g., AGENTS.md) with special markers:
    • <!-- HEROUI-REACT-AGENTS-MD-START --> / <!-- HEROUI-REACT-AGENTS-MD-END --> for React docs
    • <!-- HEROUI-NATIVE-AGENTS-MD-START --> / <!-- HEROUI-NATIVE-AGENTS-MD-END --> for Native docs
    • <!-- HEROUI-MIGRATION-AGENTS-MD-START --> / <!-- HEROUI-MIGRATION-AGENTS-MD-END --> for Migration docs
  4. Single library: Only one of React, Native, or Migration can be selected at a time

File Structure

After running the command, you'll have:

your-project/
├── .heroui-docs/          # Downloaded documentation (gitignored)
│   ├── react/            # React documentation files (if selected)
│   ├── native/           # Native documentation files (if selected)
│   └── migration/        # Migration docs (v2→v3, if selected)
├── AGENTS.md             # Your markdown file with injected index
└── .gitignore            # Updated to include .heroui-docs/

Notes

  • The command always downloads the latest documentation from the v3 branch
  • Documentation is stored in .heroui-docs/ which is automatically added to .gitignore

Documentation

Visit https://heroui.com/docs/guide/cli to view the full documentation.

Community

We're excited to see the community adopt HeroUI CLI, raise issues, and provide feedback. Whether it's a feature request, bug report, or a project to showcase, please get involved!

Contributing

Contributions are always welcome!

See CONTRIBUTING.md for ways to get started.

Please adhere to this project's CODE_OF_CONDUCT.

License

MIT

About

⌨️ A CLI tool that unlocks seamless HeroUI integration.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors 18

Languages