There was no TanStack Router for TypeScript CLIs. So I built parsh.
Type-safe end to end. File-based commands. Typo a positional param, the compiler tells you which one. Parent options autocomplete in nested handlers. And more.
90s of the type system catching every drift:
Super useful feature!
I don't get why other messaging apps still don't have it, especially on @SlackHQ where agreeing on a datetime with a remote coworker is so frequent and painful: "wait but are you in summer time?"
Is should be as simple as @ tagging a datetime on @NotionHQ
The 'Date' formatting option lets you set a specific date and time to add events to a calendar or set a reminder.
Date formatting automatically adapts to each recipient's local date and time. #TelegramTips
The more you prevent at compile time, the better. Especially if it's an AI writing it.
That's why I built Parsh, the TanStack Router for TypeScript CLIs.
It won't even compile if you access an option not in the command's ancestry.
Other CLI frameworks let you ship that bug
why: I am so tired of worrying about & spending lots of time fixing memory leaks and crashes and stability issues. it would be so nice if the language provided more powerful tools for preventing these things.
Hey @jarredsumner, why isn't Bun the default runtime in bun run and bunx? And if I want to run on Node.js instead, I can specify --node. Feels more ergonomic
New in parsh: atomic, type-safe command testing.
Run any lifecycle hook in isolation. Options, params and context are end-to-end inferred, like anything else in parsh.