Gabriel Vergnaud @gabrielvergnaud.com · 02/10/2026And there's more! Lots of tiny and big features. Voice to voice, Computer Use... 100
Gabriel Vergnaud @gabrielvergnaud.com · 02/10/2026It's to keep you in flow. You enter zen mode when you type so you don't get distracted. 110
Gabriel Vergnaud @gabrielvergnaud.com · 02/10/2026It's always available for you. You can give it large tasks and it will distribute the work, push implementers forward, answer their questions, and only surface to you what's relevant. 110
Gabriel Vergnaud @gabrielvergnaud.com · 02/10/2026Bise is a new take on agents. Bise is your team lead. It has one single everlasting thread for your whole repo. Don't worry about context management, memory, ... everything is handled for you! 110
Gabriel Vergnaud @gabrielvergnaud.com · 02/10/2026Oops, I made yet another agent harness. This one is designed to keep _humans_ in flow 😌 Introducing ✨ bise :* ✨ If you feel the agent fatigue while managing your 10 parallel coding sessions, this is for you. and it's packed with cool features 🧵👇 120
Gabriel Vergnaud @gabrielvergnaud.com · 28/03/2025A new version of TS-Pattern is out 🚨 You can now customize the fallback behavior of `.exhaustive()` if the runtime value you get is unexpected. upgrade 👉 npm i ts-pattern@5.7.0 382
Gabriel Vergnaud @gabrielvergnaud.com · 23/02/2025Here is another reason I like Type Catalogs. They can easily be transformed with Mapped Types! Full code snippet in thread 🧵👇 1182
Gabriel Vergnaud @gabrielvergnaud.com · 22/02/2025You need to understand how unions distribute over conditional types to fully get why `Extract` works. Its definition can be somewhat cryptic: 110
Gabriel Vergnaud @gabrielvergnaud.com · 22/02/2025yea ultimately unions and catalogs encode the same information so either option works! To extract a member of a discriminated union, I find that using the builtin Extract utility is the simplest, but I've noticed that the way Extract works isn't immediately intuitive to most people 110
Gabriel Vergnaud @gabrielvergnaud.com · 22/02/2025And lastly, it makes writing generic function types so much easier! No need for pesky `Extract`s or `Exclude`s 🔥 140
Gabriel Vergnaud @gabrielvergnaud.com · 22/02/2025Secondly, you can generate sub-unions super easily: 130
Gabriel Vergnaud @gabrielvergnaud.com · 22/02/2025Firstly, having a catalog greatly decreases the number of type imports you need to make: 120
Gabriel Vergnaud @gabrielvergnaud.com · 22/02/2025Pro tip: Don't write your #TypeScript union types by hand, use a Type Catalog instead! Why are Type Catalogs better? Find out in the thread 🧵 👇 2274
Gabriel Vergnaud @gabrielvergnaud.com · 15/12/2024A new TS-Pattern release is out! 👉 Prevent passing impossible patterns to `isMatching` when used with 2 parameters. 👉 `P.infer` behaves better when used in an argument position. just run `npm i ts-pattern@v5.6.0` in your project 😊 Release note: github.com/gvergnaud/ts... 0120
Gabriel Vergnaud @gabrielvergnaud.com · 26/11/2024Type-Level TypeScript is on sale for Black Friday! 🚨 You can get it for 25% off! It's only 74$ to get lifetime access to all course materials. 👉 type-level-typescript.com Enroll to learn how to craft and transform #TypeScript *types* with the same ease you handle JavaScript values every day! 0110
Gabriel Vergnaud @gabrielvergnaud.com · 14/11/2024Template Literal Types are awesome. If you concat `number` and a union of time units, you have a human readable AND type-safe way to provide time values! 👇 0133