Skip to main content

A CLI-based todo task tracker with versioning and attachments

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

todo_tracker-0.1.2.tar.gz (30.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

todo_tracker-0.1.2-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file todo_tracker-0.1.2.tar.gz.

File metadata

  • Download URL: todo_tracker-0.1.2.tar.gz
  • Upload date:
  • Size: 30.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for todo_tracker-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c116ca3443e4f8e1ee08acde84d283ab7fd01dc83b05d5d1b280e61e660740da
MD5 2641c774a435b230e48db8ae22736964
BLAKE2b-256 6c44f8d722c2f027181156acdfc883d8f440d828e1f00086fee30cf78705ccb9

See more details on using hashes here.

File details

Details for the file todo_tracker-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: todo_tracker-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for todo_tracker-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 19434f735f7ec0457db43af2fe00341ca7890208f2ea70a8bea76ded065f696d
MD5 cf13340b38433ed0336361c03b07983a
BLAKE2b-256 e618cf1badde43bb1859efb2b81d5e247bd06292f80eef275ee7f11635436245

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page