Skill for building TypeScript CLIs using citty, @clack/prompts, and @bomb.sh/tab
76
95%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
npm install citty `@bomb.sh/tab` `@clack/prompts`Minimal command:
import { defineCommand, runMain } from 'citty';
export default defineCommand({
meta: { name: 'greet', description: 'Say hello' },
args: { name: { type: 'string', description: 'Your name', required: true } },
run({ args }) { console.log(`Hello, ${args.name}!`); },
});defineCommand() — no exceptions() => import('./cmd').then(m => m.default)isCancel() after every @clack/prompts call — never skipcli/ structure when the user asks for project layout or scaffolding. Single-file CLIs are valid.See architecture for the full cli/ layout with commands, prompts, and lib directories. Do not impose this structure unless the user explicitly asks for scaffolding or project organization.
cli/ if multi-command — architecture--help to confirm command registration@clack/prompts reusable modules@bomb.sh/tab adapter