Skip to main content

A CLI-based todo task tracker with versioning and attachments

Project description

Todo Tracker

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

Core package badges:

Codecov (with branch) Python package Lint and type-check PyPI Python versions License 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.
  • 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.
  • 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 <repository-url>
    cd todo-tracker
    
  2. Install the package:

    pip install .
    

    Or for development (editable mode):

    pip install -e .
    

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
    
  • 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
    
  • 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.0.tar.gz (21.0 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.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: todo_tracker-0.1.0.tar.gz
  • Upload date:
  • Size: 21.0 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.0.tar.gz
Algorithm Hash digest
SHA256 60f548b8d2c8de8a2ab9bc4057db399a8a6f88273b0049f6250a1033cbfa499f
MD5 1995bac841a973e928ba317887b9d221
BLAKE2b-256 486b962bf915749553c80581cae63fca0edd6c86c6bc077c29b3f48fbee7814d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: todo_tracker-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.7 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a537cec5ae6be825f75b47a7a873d36fb1cdd07ba9acc32793a6a9b43228c06a
MD5 a28674d479e13221411e8d29184f7c83
BLAKE2b-256 9514cce4c344366c933bcc74e0051f3c3f4a08296ba2abd77ef296e2558702ea

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