About This Project
Simple CLI tool to plan your work. Tasks are stored locally in a .gitdo/ folder. No cloud, no dependencies, no complexity—just simple task tracking where you need it.
CLI:
gitdo --help
Usage: gitdo [OPTIONS] COMMAND [ARGS]...
GitDo - Simple CLI tool to plan your work.
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
add Add a new task to your project.
complete Mark a task as completed.
import-md Import tasks from a markdown file.
init Initialize a new GitDo project.
list List all tasks.
remove Remove a task from your project.
Future Plans
- Adopt CLI into daily activities
-
gitdoshould use power of git, like branches and commits, to manage tasks in more advanced way - Implement projects and proper tasks flow
- Integrate tasks with git commits / PR descriptions / githooks
- Plugable storage backends (local FS, SQLite, etc)
Features
All tasks are stored in a .gitdo/ folder right in your project. No external database, everything stays local.
Each task gets a short ID, so you don’t have to type the full UUID when you want to complete or remove something. The terminal output uses colors to show what’s pending and what’s done.
I made sure it’s fast - there are no external dependencies at runtime.
What I Learned
Always try to find a way to optimize daily routine/workflow. Even small improvements can add up over time.
Building this tool taught me that simple solutions often work better. I avoided databases and cloud sync by just using JSON files. It’s instant and works offline.
I shipped version 0.1 with only the core features instead of trying to build everything at once. Turns out this was the right choice - it’s easier to add features later than to remove them.
Small details matter. Making task IDs short or adding colors to the terminal output takes extra time, but it makes the tool much nicer to use.
Setting up automated PyPI publishing with GitHub Actions was easier than I expected.
One funny thing: I renamed the whole project from “gitrack” to “gitdo” and had to update 50+ files. But because the code was clean, it wasn’t painful. Good architecture pays off even in small projects.
Technologies Used
- Python 3.12+
- Click (CLI framework)
- Rich (terminal output)
- Pytest (testing)
- Ruff (linting & formatting)
- UV (package management)
- GitHub Actions (CI/CD)
- Hatchling (build system)