Today’s JavaScript covers many use cases, some far outside our browsers. Our tools, both internals and externals, often interact with us directly from our terminals, through their CLIs. Multiple frameworks were born to make writing those interfaces easier, each of them leveraging JavaScript’s expressiveness to their advantage. But today TypeScript is there! And it claims to help us make our code not only easier to write but also safer. Can we apply these benefits to how we build our CLIs? In this talk, we’ll see how to do just that - how to guarantee that our commands stay synchronized with their options, how to prevent typing mismatches, and how to generally stop a whole class of CLI bugs before they reach production.