Show HN: Crust – A CLI framework for TypeScript and Bun

New ‘Crust’ tool drops — devs split over docs, naming, and version rules

TLDR: Crust is a new beta tool for building command‑line apps in TypeScript/Bun, bundling plugins and prompts to ship single-file tools. Commenters quickly split over versioning wording, naming (“argument parser” vs “framework”), and missing examples—plus someone fixed a broken link—making clarity and docs the community’s top demand.

Crust, a new TypeScript-and-Bun tool for building command‑line apps, just popped out of the oven — and the comments section started a food fight. On paper, it’s a beta framework with modules for commands, prompts, validation, and even a way to ship standalone executables. There’s a quick-start (type “bun create crust my-cli”), a plugin buffet, and a GitHub repo. But the community’s first course? Docs, clarity, and semantics.

The loudest spat: a “semver” (versioning rules) nitpick showdown. One commenter pounced on the line “pre-1.0 doesn’t strictly follow semantic versioning,” arguing that 0.x versions already mean “anything can change,” so what’s the drama? Meanwhile, others begged for examples and a clearer README, saying they clicked in and got confused fast. A sharp-eyed reader flagged a broken GitHub link like a QA hero. And the naming debate sizzled: back‑end veterans grumbled that this sounds like an “argument parser,” not a grand “CLI framework,” while fans said the extra tooling and plugins make it more than just parsing. The vibe? Hyped but cautious, with bread puns rising (“this Crust needs a recipe”), beta jitters (“expect breaky changes!”), and plenty of “show me the demo” energy. If Crust wants to rise, the community’s recipe calls for cleaner docs, fixed links, and a side of examples.

Key Points

  • Crust is a TypeScript-first, Bun-native CLI framework built around composable modules.
  • The project is in beta until v1.0; pre-1.0 versions may include breaking changes, though the core API aims for relative stability after 0.1.
  • The ecosystem includes packages for core command handling, plugins, styling, prompts, validation, storage, skill generation, and scaffolding.
  • @crustjs/crust supports building and distributing standalone executables, while @crustjs/core handles command definition and argument parsing.
  • Getting started uses Bun: `bun create crust my-cli`, then `cd my-cli` and `bun run dev`.

Hottest takes

"Anything MAY change at any time." — matt_kantor
"I had no idea what this was from the title." — camkego
"Psst, the GitHub link in your post is broken" — dnlzro
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.