一键导入
nachui-cli-development
Use when modifying or extending CLI commands, prompts, build configurations, or API integrations in packages/cli.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when modifying or extending CLI commands, prompts, build configurations, or API integrations in packages/cli.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when creating, modifying, or refactoring React components in the packages/ui directory of NachUI.
Use when building, extending, or consuming compound components — components made of multiple sub-parts assembled via dot notation (e.g. Dialog.Trigger, Card.Header, Accordion.Item).
Use when styling, designing, or adjusting UI layout, colors, variables, typography, and visual assets in NachUI.
Use when modifying documentation pages, routing, next-intl translations, MDX schemas, or AI functionality in apps/docs.
Use when writing or running automated tests inside packages/ui or verify regressions in NachUI.
Use when consuming, importing, or integrating NachUI components inside apps/web or any app that depends on @repo/ui.
| name | nachui-cli-development |
| description | Use when modifying or extending CLI commands, prompts, build configurations, or API integrations in packages/cli. |
You are modifying or expanding the official NachUI Command Line Interface (packages/cli). The CLI uses Commander for commands, Clack for prompts, and Kleur for console styling.
src/index.ts: The CLI entry point that configures Commander and routes arguments.src/commands/: Individual command implementations:
src/lib/: Common utilities:
npm, pnpm, yarn, bun).Always run CLI build and check scripts from the root directory using workspace filters:
# Run typescript type check
pnpm --filter @repo/cli type-check
# Compile CLI into dist using tsup (generates ESM/CJS bundles)
pnpm --filter @repo/cli build
# Start compiler in watch mode for development
pnpm --filter @repo/cli dev
New commands must be added to the Commander instance in src/index.ts and their logic defined under src/commands/.
import { Command } from 'commander'
const program = new Command()
program.name('nachui').description('Official CLI for NachUI').version('1.0.0')
program
.command('my-command')
.description('Explain command actions')
.argument('[arg]', 'Optional command argument')
.option('-f, --force', 'Force execution')
.action(async (arg, options) => {
// Import execution logic dynamically to keep startup fast
const { myCommandAction } = await import('./commands/my-command')
await myCommandAction(arg, options)
})
When designing user-facing console interfaces:
intro() and outro() statements.kleur.dim() for secondary advice or descriptions.kleur.green() or kleur.cyan().kleur.red() for failure states.import * as p from '@clack/prompts'
import kleur from 'kleur'
export async function myCommandAction() {
p.intro(kleur.cyan('NachUI Command'))
const result = await p.text({
message: 'Enter input details:',
placeholder: 'e.g., button',
validate: (value) => {
if (!value) return 'Value is required!'
},
})
if (p.isCancel(result)) {
p.cancel('Operation cancelled.')
process.exit(0)
}
const s = p.spinner()
s.start('Running task...')
// do work
s.stop(kleur.green('Task complete!'))
p.outro(kleur.cyan('Done!'))
}
p.isCancel(value) checks after every Clack prompt to exit cleanly when a user presses Ctrl+C.kleur.red() before terminating the process with a non-zero exit code (process.exit(1)).