Build CLIs
with types.
A TypeScript-first, Bun-native CLI framework with composable modules.
src/cli.tsTypeScript
import { Crust } from "@crustjs/core";
import { helpPlugin } from "@crustjs/plugins";
const cli = new Crust("greet")
.use(helpPlugin())
.args([{ name: "name", type: "string" }])
.flags({
shout: { type: "boolean", alias: "s" },
})
.run(({ args, flags }) => {
const msg = `Hello, ${args.name}!`;
console.log(flags.shout ? msg.toUpperCase() : msg);
});
await cli.execute();Features
Type-Safe
Full inference. Zero casts.
Zero Deps
No runtime dependencies.
Composable
Modular packages.
Plugins
Middleware-based hooks.
Chainable
Fluent builder API.
Bun Native
Built for Bun runtime.
Modules
@crustjs/corev0.0.15alphaParsing, routing, plugin system@crustjs/pluginsv0.0.20alphaOfficial Crust plugins@crustjs/crustv0.0.23alphaCLI build tooling@crustjs/createv0.0.4alphaScaffolding library for create-xx tools@crustjs/validatev0.0.13alphaSchema-first validation adapters@crustjs/promptsv0.0.10alphaInteractive prompts@crustjs/stylev0.0.6alphaTerminal styling@crustjs/storev0.0.4alphaType-safe config persistence@crustjs/skillsv0.0.21alphaAgent skills generation@crustjs/testCLI testing helpers@crustjs/renderTerminal content rendering@crustjs/logStructured logging