Crust
A CLI framework for TypeScript and Bun
Details
- External ID
- 47408727
- Source
- HN
- Company
- —
- Product
- Crust
- Website domain
- github.com
- Launched
- March 17, 2026
- Cohort
- —
- Upvotes
- 95
- Upvotes percentile
- 0.9052890528905289
- Tags
- —
- Fetched at
- Sept. 7, 2026, 9:26 p.m.
- Updated at
- Sept. 7, 2026, 9:26 p.m.
Description
We've been building Crust (https://crustjs.com/), a TypeScript-first, Bun-native CLI framework with zero dependencies. It's been powering our core product internally for a while, and we're now open-sourcing it.The problem we kept running into: existing CLI frameworks in the JS ecosystem are either minimal arg parsers where you wire everything yourself, or heavyweight frameworks with large dependency trees and Node-era assumptions. We wanted something in between.What Crust does differently:- Full type inference from definitions — args and flags are inferred automatically. No manual type annotations, no generics to wrangle. You define a flag as type: "string" and it flows through to your handler.- Compile-time validation — catches flag alias collisions and variadic arg mistakes before your code runs, not at runtime.- Zero runtime dependencies — @crustjs/core is ~3.6kB gzipped (21kB install). For comparison: yargs is 509kB, oclif is 411kB.- Composable modules — core, plugins, prompts, styling, validation, and build tooling are all separate packages. Install only what you need.- Plugin system — middleware-based with lifecycle hooks (preRun/postRun). Official plugins for help, version, and shell autocompletion.- Built for Bun — no Node compatibility layers, no legacy baggage.Quick example: import { Crust } from "@crustjs/core"; import { helpPlugin, versionPlugin } from "@crustjs/plugins"; const main = new Crust("greet") .args([{ name: "name", type: "string", default: "world" }]) .flags({ shout: { type: "boolean", short: "s" } }) .use(helpPlugin()) .use(versionPlugin("1.0.0")) .run(({ args, flags }) => { const msg = `Hello, ${args.name}!`; console.log(flags.shout ? msg.toUpperCase() : msg); }); await main.execute(); Scaffold a new project: bun create crust my-cli Site: https://crustjs.com GitHub: https://github.com/chenxin-yan/crustHappy to answer any questions about the design decisions or internals.
Enrichment
- Theme
- browser automation and scraping for AI
- Vertical
- Horizontal
- Function
- Dev tools
- Audience
- Developer
- AI stance
- Not AI
- Project type
- Hobby / open-source project
- Normalized one-liner
- cli framework for typescript and bun
- Manually corrected
- False
Could you build this?
Yes A zero-dependency TypeScript CLI argument parsing and command framework is a standard software utility easily built with AI assistance.
Discussion
20 comments analyzed.
Competitors mentioned: Go CLI with cobra, Deno std library, script.js, Node + commander setup
Concerns raised: Binary size too large compared to Go CLIs (58-109MB vs ~10MB), Help plugin spacing formatting issues, Unclear comparison with existing CLI frameworks, Requires Bun bundled with CLI for distribution
Feature requests: Color support for help plugin, Node.js support in addition to Bun, More detailed documentation/comparison with alternatives
Competitors
Other products that read as similar to this one — 231 launches clear the similarity bar, closest 8 shown.
Attention rank: #26 of 232 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 138 days after the earliest competitor.
- SharpTS · hn · 2026-01-09 · 6 upvotes · similarity 0.52
- GrainJS · hn · 2025-12-26 · 5 upvotes · similarity 0.50
- Titan · hn · 2025-12-11 · 49 upvotes · similarity 0.49
- Nub · hn · 2026-06-24 · 277 upvotes · similarity 0.47
- Belgie · hn · 2026-07-06 · 5 upvotes · similarity 0.47
- Suites · hn · 2025-11-04 · 19 upvotes · similarity 0.46
- Shifu · hn · 2026-03-30 · 7 upvotes · similarity 0.45
- µJS, a 5KB alternative to Htmx and Turbo with zero dependencies · hn · 2026-03-07 · 161 upvotes · similarity 0.45
Other launches for this product
- No other launches for this product.
Same idea, different domain
Nobody's really built a dev tools tool for Sales yet.