A beginner-friendly Python package for managing tasks from the command line.
Built with Python + Click. Tasks are stored in ~/.tasker_data.json so they survive between terminal sessions.
tasker/
βββ pyproject.toml β package config & dependencies
βββ requirements.txt β dependencies list
βββ README.md
βββ LICENSE
βββ src/
β βββ tasker/
β βββ __init__.py β public API
β βββ manager.py β core logic (TaskManager class)
β βββ cli.py β Click CLI commands
βββ tests/
βββ test_manager.py β unit tests
git clone https://github.com/gautam-oss/tasker.git
cd tasker
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -e .pip install -r requirements.txtAfter installation the tasker command is available anywhere in your terminal.
tasker add-task "Buy groceries"
tasker add-task "Write unit tests"tasker list-taskstasker list-tasks --pendingtasker complete-task 1tasker delete-task 2tasker --help
tasker add-task --helpfrom tasker import TaskManager
manager = TaskManager()
task = manager.add_task("Learn Python packaging")
print(task.task_id, task.title) # 1 Learn Python packaging
manager.complete_task(task.task_id)
for t in manager.list_tasks():
status = "β" if t.completed else "β"
print(f"[{status}] {t.task_id}. {t.title}")Tasks are saved to ~/.tasker_data.json automatically. You can inspect it anytime:
cat ~/.tasker_data.json[
{
"task_id": 1,
"title": "Buy groceries",
"completed": true,
"created_at": "2024-01-15 10:30:00"
}
]pip install pytest
pytest tests/ -vExpected: 12 tests passing β
| File | Role |
|---|---|
manager.py |
Task class + TaskManager β all logic for add/list/complete/delete, reads & writes JSON |
cli.py |
Click commands that wrap TaskManager with coloured terminal output |
__init__.py |
Makes tasker importable as a Python library |
pyproject.toml |
Declares click dependency, registers tasker console script entry point |
requirements.txt |
Flat list of dependencies for manual installs |
MIT Β© 2026 Gautam Kumar