Show HN: Waffle – Native macOS terminal that auto-tiles sessions into a grid

14 hours ago (waffle.baby)

Hi HN. I built Waffle because I kept ending up with 15 terminal windows scattered across three spaces with no idea what was running where.

Splitting/merging in iTerm kind of works but it never felt intuitive to me.

With that in mind, I built something to suit my workflow:

Waffle is a native macOS terminal (Built on Miguel de Icaza's SwiftTerm) that tiles your sessions into an auto-scaling grid automatically. 1 session is fullscreen, 2 is side by side, 4 is 2x2, 9 is 3x3. Open a terminal, it joins the grid. Close one, the grid rebalances. No splitting, no config.

I've been using it a lot recently and one thing I've found really useful is that sessions detect which repo they're in and group accordingly. Each project gets a distinct colour. Cmd+[ and Cmd+] flip between groups. If you have three repos open across eight terminals, you can filter to just one project's sessions instantly. Also, no accidentally closing a window with CMD-W as it gives you a confirmation and requires a second CMD-W to close.

Honestly, if you live in tmux, this probably isn't for you but it's really helped to speed up my workflow.

Other things: It comes with a handful of themes (and has support for iTerm themes), bundled JetBrains mono, has keyboard shortcuts for everything. Free, no account, opt-in analytics only. macOS 14+.

There's a demo on the landing page if you want to see it in action.

This is great, no more lost terminal screens!

  • Thanks! Let me know if there’s anything I can do to make it more useful. I thought in the next update I’d work on custom key bindings but if there’s anything more glaring, I’d love to hear it.

> Honestly, if you live in tmux, this probably isn't for you but it's really helped to speed up my workflow.

Fresh honesty, nice.

  • Haha, I mean ever since launching this I’m learning of a zillion alternatives I should have probably tried earlier but for me the auto tiling is really the main thing and, as far as I can see, no other alternatives really do that for some reason? Maybe there’s a good reason but it suits my workflow anyway