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.1.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.1-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for todo_tracker-0.1.1.tar.gz
Algorithm Hash digest
SHA256 743489ff5962163a06d005f6427103302578073430cf1f8b6a2feb70aac5ebcb
MD5 c345c5559d7214d30843e1ad7ffa19d7
BLAKE2b-256 bb4e9c4cecc42d572e98171415f22664b6797cbfd37d38ba1ca0639e66776143

See more details on using hashes here.

File details

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

File metadata

  • Download URL: todo_tracker-0.1.1-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.9.6

File hashes

Hashes for todo_tracker-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c5d89ea9472d3e33d117f2094660b91ae4ebd3daf2fbf83b6df4383025aca8e6
MD5 acbcddd65fe9269f3b83cb9427275e17
BLAKE2b-256 01db1714b33ab03c21c979e2ce031d1f62c05d8742cb62bdfbac0e24104bcfac

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