Elegant CLI Builder
npm install citty


Elegant CLI Builder
- Zero dependency
- Fast and lightweight argument parser (based on native node utils)
- Smart value parsing with typecast and boolean shortcuts
- Nested sub-commands
- Lazy and Async commands
- Pluggable and composable API
- Auto generated usage and help
Install package:
``sh`
npx nypm add -D citty
Import:
`js`
import { defineCommand, runMain } from "citty";
Define main command to run:
`ts
import { defineCommand, runMain } from "citty";
const main = defineCommand({
meta: {
name: "hello",
version: "1.0.0",
description: "My Awesome CLI App",
},
args: {
name: {
type: "positional",
description: "Your name",
required: true,
},
friendly: {
type: "boolean",
description: "Use friendly greeting",
},
},
run({ args }) {
console.log(${args.friendly ? "Hi" : "Greetings"} ${args.name}!);
},
});
runMain(main);
`
defineCommand is a type helper for defining commands.
Runs a command with usage support and graceful error handling.
Create a wrapper around command that calls runMain when called.
Parses input args and runs command and sub-commands (unsupervised). You can access result key from returnd/awaited value to access command's result.
Parses input arguments and applies defaults.
Renders command usage to a string value.
Renders usage and prints to the console
- Clone this repository
- Install latest LTS version of Node.js
- Enable Corepack using corepack enablepnpm install
- Install dependencies using pnpm dev`
- Run interactive tests using
Made with 💛 Published under MIT License.