- Notifications
You must be signed in to change notification settings - Fork35
unjs/citty
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Elegant CLI Builder
- Fast and lightweight argument parser based onmri
- Smart value parsing with typecast, boolean shortcuts and unknown flag handling
- Nested sub-commands
- Lazy and Async commands
- Pluggable and composable API
- Auto generated usage and help
🚧 This project is under heavy development. More features are coming soon!
Install package:
# npmnpm install citty# yarnyarn add citty# pnpmpnpm install citty
Import:
// ESMimport{defineCommand,runMain}from"citty";// CommonJSconst{ defineCommand, runMain}=require("citty");
Define main command to run:
import{defineCommand,runMain}from"citty";constmain=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 callsrunMain when called.
Parses input args and runs command and sub-commands (unsupervised). You can accessresult 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 ofNode.js
- EnableCorepack using
corepack enable - Install dependencies using
pnpm install - Run interactive tests using
pnpm dev
Made with 💛 Published underMIT License.
Argument parser is based onlukeed/mri by Luke Edwards (@lukeed).
About
🌆 Elegant CLI Builder
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.