"Why build yet another workflow app? And why on earth in a TUI?"
That’s the question I asked myself when I started this project.
Over the years, I’ve tried countless tools – task trackers, kanban boards, Notion setups – but most of them felt heavy, clicky, or distracting. I wanted something much simpler: a workflow manager that lives entirely in the terminal, fully keyboard-driven, fast, and with zero context switching.
At first, I hacked together a prototype using plain curses. It worked… kind of. But as the project grew, I realized I needed something more structured and maintainable. That’s when I discovered Textual, and decided to port everything over.
So far, Glyph.Flow can:
- define hierarchical workflows (Project → Phase → Task → Subtask),
- save/load the entire structure as JSON,
- render trees, tables, and ASCII views,
- and handle commands like create, edit, delete, search, toggle.
The latest milestone (v0.1.0a4) brought two major improvements:
- a layered logging system with INFO/WARNING/ERROR/SUCCESS/HELP levels
- a command history module, so you can navigate previous inputs with the arrow keys.
Why might this be interesting?
👌🏻 Minimalism. Unlike most project managers, Glyph.Flow only cares about hierarchy and progress.
</> Terminal-native. It feels more like working with your projects than managing them through a UI.
👨🏻💻 Personal journey. For me, this is not just a tool. It’s a playground to learn Textual, experiment with structured logging, and design clean extensible systems.
Next steps:
- Command registry (auto-help, cleaner dispatch)
- Undo system (basic memento stack)
- Better error handling
- Export/import & statistics
- And eventually… a polished Textual TUI dashboard
This is still very alpha, but it’s already fun to use, and I’m excited to share the journey here.
👉 You can check out the repo here: GitHub
👉 Follow this series for future devlogs: Glyph.Flow Devlog #2 will be all about the command registry!
These changes laid the foundation for the next big step: the command registry, which will finally eliminate the infamous elif chain and make adding new commands a one-file operation.
Top comments (0)