π§ todo β A Simple Local CLI Task Tracker (written in Go)
todo is a lightweight, local-only task and work tracker designed for people who want to stay focused β not buried under complex project management tools.
It stores your data as easy-to-read JSON files on disk, so you always own your notes, timelines, and history.
β¨ Features
- π Add, list, and manage tasks quickly from the command line
- β±οΈ Start and stop work sessions to track what you actually worked on
- ποΈ Tags, areas, and priorities to organize tasks
- π¬ Add notes and comments as you go
- π¦ All data stored locally as
JSON β easy to back up or export
- π§Ύ Export summaries or text dumps (great for journaling or LLMs)
- β‘ No servers, no sync, no accounts β just your data
βοΈ Installation
Youβll need Go 1.22+ installed.
Then clone and build the binary:
git clone https://github.com/YOURUSERNAME/todo.git
cd todo
go install ./...
This will install the todo binary into your $GOPATH/bin (usually ~/go/bin).
Make sure that folder is on your PATH:
export PATH=$PATH:$(go env GOPATH)/bin
Now you can run:
todo --help
π How to Use
Hereβs how you might use todo during a real day of work.
π Add new tasks
todo add "Write project proposal" --body "Draft the client proposal" --priority 1 --area work
todo add "Clean up Go code" --area dev
π List whatβs on your plate
todo list
Output:
1. [todo] Write project proposal (Priority 1)
2. [todo] Clean up Go code (Priority 2)
βΆοΈ Start work
Start tracking time automatically:
todo start "Write project proposal"
π Switch when something urgent drops in
todo switch "Fix login bug"
This automatically stops the previous session and starts a new one.
βΉοΈ Stop when youβre done
todo stop
π Mark a task as complete
todo done 1
todo note 2 "Need to refactor the DB layer"
todo comment 2 "Reviewed PR #45 and merged"
π Review your day or month
todo summary --today
todo summary --month oct
Output example:
# Work Summary (Oct 23)
09:10 - 10:30 Write project proposal
10:35 - 11:50 Fix login bug
13:00 - 14:00 Write project proposal
todo export --markdown > summary.md
π§ Philosophy
todo is designed to be:
- Fast β minimal friction between idea and action
- Local-first β you own your data
- Honest β helps you see where your time really went
- Extensible β JSON storage makes it easy to integrate with other tools
Itβs not a replacement for heavy project management software β itβs a personal tool for focus and reflection.
π§© Roadmap
- Add a full-screen TUI interface (like lazygit)
- Add search and filter commands
- Auto-close long-running sessions
- Optional time summaries by area or tag
- Sync/export integrations (maybe)
π€ Contributing
Pull requests, issues, and ideas are very welcome!
If you want to contribute:
- Fork the repo
- Create a feature branch (
git checkout -b feature/my-idea)
- Submit a pull request
Even small feedback or docs improvements help a lot.
π Like this project?
If you find it useful β
please β
star the repository on GitHub!
It helps others discover it and keeps motivation high π
π Data Location
Your data is stored locally at:
~/.localtodo/tasks.json
~/.localtodo/current.json
You can back up or inspect these files at any time.
π§βπ» License
MIT License β do whatever you like, just donβt blame me if it breaks your day π
See LICENSE for details.
Built with Go, calm focus, and too much coffee β