A minimal, command-line tool written in Python to track your to-dos directly from the terminal. Create, update, and manage tasks using simple commands — no database or external libraries required. Tasks are stored locally in a JSON file.
Made with ❤️ by Brandon Pilane. Add a ⭐️ to the repository if you like it!
Made as a learning project for roadmap.sh
- Add, update, and delete tasks
- Mark tasks as todo, in-progress, or done
- List all tasks or filter by status
- Persistent local storage using
tasks.json
Most task management apps are overkill for simple to-dos. taskr
gives you the power of a simple tracker, accessible entirely via your terminal — fast, scriptable, and distraction-free.
Assumes you have Python 3.6+ installed.
git clone https://github.com/brandonpilane/taskr.git
cd taskr
pip install .
Now you can use taskr
as a command from anywhere:
taskr add "Write project README"
-
Add the shebang to the top of
taskr.py
:#!/usr/bin/env python3
-
Rename the file to
taskr
(no extension) and make it executable:chmod +x taskr mv taskr ~/.local/bin/
Make sure ~/.local/bin
is in your PATH.
Each task in tasks.json
includes:
{
"id": 1,
"description": "Write unit tests",
"status": "todo"
}
Note: Status can be "todo", "in-progress", or "done"
# Add a new task
taskr add "Refactor codebase"
# Update a task
taskr update 1 "Refactor and document codebase"
# Delete a task
taskr delete 1
# Change the status of a task
taskr status 1 done
taskr status 4 in-progress
# List all tasks
taskr list
# List by status
taskr list --status todo
taskr list --status in-progress
taskr list --status done
pip uninstall taskr
rm ~/.taskr_tasks.json
taskr/
├── taskr/
│ ├── __init__.py # Package initializer
│ └── cli.py # Contains CLI logic and commands
├── LICENSE # MIT license
├── requirements.txt # Runtime dependencies
├── .gitignore # Excludes tasks.json, .venv/, __pycache__/, etc.
├── tasks.json # Auto-generated task database (excluded from git)
├── setup.py # Package metadata for pip install
└── README.md # Project overview and usage
click
pathlib
json
setuptools
- Fork and clone this repo
git clone https://github.com/your-username/taskr.git
cd taskr
- (Optional but recommended) Create a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install dependencies
pip install -r requirements.txt
- Install the package in editable mode
pip install -e .
-
Edit
taskr/cli.py
to improve or customize CLI functionality -
Run the CLI locally
taskr add "Test task"
taskr list
taskr done 1
-
Commit your changes and push your branch
-
Create a pull request with improvements or fixes
- Tagging system for tasks
- Due dates and reminders
- Add a notification system
- Add a task priority system