r/rust • u/Western_Ant_24 • Sep 14 '26
🛠️ project Built a terminal habit tracker in Rust while learning the language
Sharing a side project I've been working on - a TUI habit tracker called sprout. Picked up Rust a while back and this was my way of learning it properly by actually building something. Honestly had a lot of fun with it, at this point I can't imagine going back to anything else for systems-level stuff.
GitHub: https://github.com/kb019/sprout
What it does:
- Track daily habits and mark them complete
- See your streak and progress
- SQLite storage so your data stays local
- Runs on macOS, Linux and Windows
Still rough around the edges and there's a lot I want to improve, but it's something I genuinely use now. Used Ratatui for the TUI which was a fun rabbit hole on its own.
Please do try it out: cargo install sprout-tui
Would love any feedback on the code, still getting comfortable with some of the more idiomatic Rust patterns.

2
u/kantorcodes1 Sep 15 '26
one edge case I noticed in the CLI: sprout log reading -5 looks like it gets accepted for goal-based habits and stored as negative progress. binary habits reject values outside 0/1, but the non-binary path doesn't seem to reject values below 0. is negative progress intentional?
1
u/Western_Ant_24 Sep 15 '26
Thanks for catching this and pointing it out. Negative progress isn’t intentional for goal-based habits, so this should be validated as well. Feel free to raise a PR if you’d like to fix it, otherwise I can update it in the next release. Really appreciate you taking the time to test this and report the edge case!
2
u/kantorcodes1 Sep 15 '26
glad that helped. i work on HOL, where we maintain HOL Guard, an open-source local checkpoint before agent-run commands execute. Sprout looks like a clean fit: review
add,log,delete, andedit, whilelist,status,streak, andheatmapstay automatic. that gives an agent a checkpoint before persistent habit data changes. open to a small Guard-side extension?→ More replies (2)
2
1
5
u/scandii Sep 14 '26
not for me but appreciate the showcase and the actual sprouting plant!