A powerful git-styled CLI-based todo task tracker with versioning, attachments, and Kanban visualization.
Core package badges:
Quality and tooling:
Project/community:
Docs:
- Task Management: Create, update, and manage tasks with descriptions, deadlines, and statuses.
- Task Storage: Tasks are stored locally in a git-like repository.
- Versioning: Every change to a task is versioned. You can view the full history of a task and revert to previous states (conceptually).
- Attachments: Attach files to tasks. Files are stored efficiently using content-addressable storage (deduplication).
- Aliases: Tasks are assigned human-readable aliases (e.g.,
Misty-Rat) for easier reference than UUIDs. - Kanban Board: Visualize your tasks in a terminal-based Kanban board.
- Archiving: Archive completed or stale tasks to keep your active list clean.
- GPT Integration: Use in combination with GPT Agents to track progress and generate project summaries.
- JSON Dump: Export your data to JSON for backup or analysis.
Ensure you have Python 3.8+ installed.
-
Clone the repository:
git clone https://github.com/gwr3n/todo-tracker.git cd todo-tracker -
Install the package:
pip install . -
Or install from PyPI:
pip install todo-tracker
The main command is todo.
-
Add a task:
todo add "Buy groceries" --deadline 2023-12-31 -
List tasks:
todo list todo list --all # Include archived tasks -
Show task details:
todo show <task_id_or_alias>
-
Update a task:
todo update <id> --status "in-progress" --desc "Buy organic groceries"
-
Attach a file:
todo attach <id> ./path/to/file.txt
-
Extract an attachment:
todo extract <id> file.txt --output ./downloaded_file.txt
-
Kanban View:
todo kanban pending in-progress done -
Archive/Unarchive:
todo archive <id> todo unarchive <id>
-
Delete:
todo delete <id>
-
View History:
todo history <id>
-
Duplicate Task:
todo duplicate <id>
-
Dump Data:
todo dump --output backup.json todo dump --history --all --output full_backup.json
Data is stored in a .todo_store directory in the current working directory. This directory contains:
objects/: Content-addressable storage for task versions and attachment blobs.refs/: References to the current version of each task.orchestrator.lock: Lock file to ensure data integrity during concurrent access.
To run tests:
pytestThis project is licensed under the MIT License - see the LICENSE file for details.