Forest-grown documentation
Start
Install clily and write one comfortable command.
Install @clily/core with a schema library that supports Standard Schema and Standard JSON Schema metadata.
vp add @clily/core zodimport clily from '@clily/core'
import { z } from 'zod'
const run = clily({
name: 'release',
completion: true,
subCommands: {
deploy: clily.command({
args: z.object({
image: z.string(),
region: z.string().default('us-east-1'),
}),
positionals: z.string(),
run: ({ args, positionals }) => {
console.log(args.image, args.region, positionals)
},
}),
},
})
await run()node src/index.ts deploy production --image=ghcr.io/acme/webclily.command() is the comfort point: nested commands infer locally, without root generic annotations.