https://github.com/chenxin-yan/crust
A TypeScript-first, Bun-native CLI framework with composable modules.
https://github.com/chenxin-yan/crust
bun bunjs cli framework javascript typescript
Last synced: 7 days ago
JSON representation
A TypeScript-first, Bun-native CLI framework with composable modules.
- Host: GitHub
- URL: https://github.com/chenxin-yan/crust
- Owner: chenxin-yan
- License: mit
- Created: 2026-02-12T01:39:39.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-03-29T21:55:17.000Z (20 days ago)
- Last Synced: 2026-03-29T22:24:50.330Z (20 days ago)
- Topics: bun, bunjs, cli, framework, javascript, typescript
- Language: TypeScript
- Homepage: https://crustjs.com/
- Size: 2.9 MB
- Stars: 341
- Watchers: 1
- Forks: 5
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
Crust
A TypeScript-first, Bun-native CLI framework with composable modules.
Website & Docs
•
Contributing
•
Issues
•
Discord
## What is Crust?
Crust is a modern CLI framework built specifically for TypeScript and Bun. It provides a modular architecture for building command-line tools with features like command routing, argument parsing, interactive prompts, validation, and persistence—all with first-class TypeScript support.
## Who uses Crust?
- [Nia CLI](https://github.com/nozomio-labs/nia-cli) by [Nozomio Labs](https://www.trynia.ai/)
## Packages
| Package | Description | Version | Downloads |
| ---------------------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| [`@crustjs/crust`](https://www.npmjs.com/package/@crustjs/crust) | CLI tooling — build and distribute standalone executables | [](https://www.npmjs.com/package/@crustjs/crust) | [](https://www.npmjs.com/package/@crustjs/crust) |
| [`@crustjs/core`](https://www.npmjs.com/package/@crustjs/core) | Core: command definition, arg parsing, routing, plugins, errors | [](https://www.npmjs.com/package/@crustjs/core) | [](https://www.npmjs.com/package/@crustjs/core) |
| [`@crustjs/plugins`](https://www.npmjs.com/package/@crustjs/plugins) | Official plugins: help, version, autocomplete | [](https://www.npmjs.com/package/@crustjs/plugins) | [](https://www.npmjs.com/package/@crustjs/plugins) |
| [`@crustjs/style`](https://www.npmjs.com/package/@crustjs/style) | Terminal styling foundation | [](https://www.npmjs.com/package/@crustjs/style) | [](https://www.npmjs.com/package/@crustjs/style) |
| [`@crustjs/progress`](https://www.npmjs.com/package/@crustjs/progress) | Progress indicators for async CLI tasks | [](https://www.npmjs.com/package/@crustjs/progress) | [](https://www.npmjs.com/package/@crustjs/progress) |
| [`@crustjs/prompts`](https://www.npmjs.com/package/@crustjs/prompts) | Interactive terminal prompts | [](https://www.npmjs.com/package/@crustjs/prompts) | [](https://www.npmjs.com/package/@crustjs/prompts) |
| [`@crustjs/validate`](https://www.npmjs.com/package/@crustjs/validate) | Validation helpers | [](https://www.npmjs.com/package/@crustjs/validate) | [](https://www.npmjs.com/package/@crustjs/validate) |
| [`@crustjs/store`](https://www.npmjs.com/package/@crustjs/store) | DX-first, typed persistence for CLI apps with config/data/state/cache separation | [](https://www.npmjs.com/package/@crustjs/store) | [](https://www.npmjs.com/package/@crustjs/store) |
| [`@crustjs/skills`](https://www.npmjs.com/package/@crustjs/skills) | Agent skill generation from Crust command definitions | [](https://www.npmjs.com/package/@crustjs/skills) | [](https://www.npmjs.com/package/@crustjs/skills) |
| [`@crustjs/create`](https://www.npmjs.com/package/@crustjs/create) | Headless scaffolding engine for building create-xxx tools | [](https://www.npmjs.com/package/@crustjs/create) | [](https://www.npmjs.com/package/@crustjs/create) |
| [`create-crust`](https://www.npmjs.com/package/create-crust) | Project scaffolding tool | [](https://www.npmjs.com/package/create-crust) | [](https://www.npmjs.com/package/create-crust) |
## Getting Started
```sh
bun create crust my-cli
cd my-cli
bun run dev
```