CrustJS
Minimal CLI framework for TypeScript.
Goals
Wire Inertia Mill's commands (run, decompose) behind a clean CLI interface without writing argument parsing from scratch — and register the mill as an installable Claude Code agent skill.
Effectiveness
Adequate for the current use. Command routing and flag parsing work. The skillPlugin registration is the feature that made it worth adopting over a simpler solution.
What made it effective
skillPluginregisters the binary as a Claude Code agent skill withallowedTools: 'Bash(inertia-mill *)'— the mill can be installed and invoked by Claude agents without additional configuration.annotate(cmd, hints)attaches natural-language hints to commands, which surface in the skill manifest and help agents understand how to invoke the mill correctly.- The
helpPlugin()generates--helpoutput automatically from command metadata.
Bonus utility
The skill registration pattern is the real value here. Without it, making Inertia Mill invocable by Claude Code would require manual skill authoring.
Friction / pain points / surprises
Pre-release quality (0.0.x). The API surface is small and has been stable enough in practice, but there's no stability guarantee. A breaking change in @crustjs/core would require changes throughout the CLI wiring code.
Thin documentation. Working patterns were established by reading source and trial-and-error rather than docs. The skillPlugin configuration options in particular required experimentation to get right.