3 min read
gitdo - CLI Task Manager

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
  • gitdo should 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)