@andreas-timm/cli
Helpers for building Bun and TypeScript CLIs on top of cac.
Features
- Register commands and aliases with a small typed wrapper around
cac.
- Normalize multi-word commands,
help, -h, and --help flows.
- Add declarative options with defaults, required flags, choices, and validation.
- Generate zsh completion, including option value choices and path inference.
- Install app CLIs into
~/.local/bin with a reusable command helper.
Install
npm install @andreas-timm/cli
Usage
import { cac } from "cac";
import {
installDefaultCommandHelp,
installSubcommandHelp,
registerCommands,
run,
} from "@andreas-timm/cli";
const cli = cac("example");
registerCommands(cli, ["build", "b"], "Build the project", (command) => {
command.option("--watch", "Watch files");
command.action(async (options) => {
console.log("build", options);
});
});
installDefaultCommandHelp(cli);
installSubcommandHelp(cli);
await run(cli);
For the full CLI patterns, option rules, completion behavior, and install-command guidance, see skills/bun-cli/SKILL.md.
Releases are automated with semantic-release; see the Releasing section in CONTRIBUTING.md.