Skip to content

gwr3n/todo-tracker

Repository files navigation

Todo Tracker

A powerful git-styled CLI-based todo task tracker with versioning, attachments, and Kanban visualization.

Demo

Core package badges:

Codecov (with branch) Python package Lint and type-check PyPI Python versions License PyPI Downloads Release Wheel

Quality and tooling:

Code style: black Ruff mypy

Project/community:

Issues PRs Stars

Docs:

Docs

Features

  • 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.

Installation

Ensure you have Python 3.8+ installed.

  1. Clone the repository:

    git clone https://github.com/gwr3n/todo-tracker.git
    cd todo-tracker
  2. Install the package:

    pip install .
  3. Or install from PyPI:

    pip install todo-tracker

Usage

The main command is todo.

Basic Operations

  • Add a task:

    todo add "Buy groceries" --deadline 2023-12-31
  • List tasks:

    todo list
    todo list --all  # Include archived tasks
    CLI
  • Show task details:

    todo show <task_id_or_alias>
  • Update a task:

    todo update <id> --status "in-progress" --desc "Buy organic groceries"

Attachments

  • Attach a file:

    todo attach <id> ./path/to/file.txt
  • Extract an attachment:

    todo extract <id> file.txt --output ./downloaded_file.txt

Organization & Visualization

  • Kanban View:

    todo kanban pending in-progress done
    Kanban
  • Archive/Unarchive:

    todo archive <id>
    todo unarchive <id>
  • Delete:

    todo delete <id>

Advanced

  • 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 Storage

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.

Development

To run tests:

pytest

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A powerful CLI-based todo task tracker with versioning, attachments, and Kanban visualization.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors