Have you ever spent weeks building an open-source project, finally launched it, and then had Reddit's spam filter silently delete your post because your account was too new?
That was my experience launching taskdog.
But the Reddit drama isn't the point. The real story is why I built a terminal task manager from scratch.
The Problem: No task manager fit my workflow
I was inspired by Taskwarrior — powerful, keyboard-driven, terminal-native. But I wanted a proper TUI and a local API I could build on top of. Nothing out there quite fit, so I built my own.
The Design Decisions
Why no subtasks?
Most task managers let you nest tasks infinitely. I removed subtasks entirely. Dependencies + tags cover 99% of personal task organization, and keeping the structure flat makes the schedule optimizer dramatically simpler. I documented the full reasoning in DESIGN_PHILOSOPHY.md.
Why Clean Architecture for a personal tool?
The codebase is split into three packages: taskdog-core (business logic), taskdog-server (FastAPI REST API), taskdog-ui (CLI/TUI). Overkill for a personal project? Maybe. But it forced me to keep business logic completely independent of the UI and transport layer — and it paid off when I added the API server without touching the core.
What it does
- Full-screen TUI powered by Textual
- FastAPI + SQLite backend running locally
- 9 scheduling optimization algorithms
- Time tracking with planned vs actual comparison
- Gantt chart view
- Task dependencies with circular detection
Try it instantly (no install needed)
docker run --rm -it ghcr.io/kohei-wada/taskdog:demo
Spins up the server and launches the TUI in one shot, with demo data preloaded.
The Reception
After shipping it, some nice things happened:
- Featured on Terminal Trove
- Featured on LinuxLinks in the CLI/TUI/Productivity category
- Will McGugan — creator of Textual, the library powering the TUI — said: "The author of this project has clearly got a good eye for design in the terminal"
Note: Built with the help of Claude Code (credited as contributor in the repo). Architecture, algorithms, and all design decisions are my own.


Top comments (0)