Skip to main content

qTodo - A todo application

Project description

qTodo

A simple, fast, and intuitive Command-Line Interface (CLI) task manager built in Python.

Tech Stack

  • Language: Python 3.10+
  • CLI Framework: Click
  • Terminal UI: Rich
  • Storage: TinyDB (Lightweight document-oriented database)
  • Formatting: Tabulate (Pretty-printing tabular data)
  • Packaging & Publishing: setuptools, build, and twine

Installation

You can install qtodo globally directly from PyPI using pip:

pip install qtodo

Quick Start

qtodo is built around the concept of "Lists" (like "Inbox", "Project", "Groceries"). By default, you'll be placed in the Inbox list.

# Add a task to your default list
qtodo add "Buy milk"

# Add a task to a specific list (it creates the list automatically if it doesn't exist!)
qtodo add "Fix login bug" @Work

# See your tasks
qtodo ls

# Mark a task as done (using its ID from the ls command)
qtodo done 1

Commands Reference

Managing Tasks

  • qtodo add "TASK" [@LIST_NAME]: Add a new task. Optionally append @listname to add it directly to a specific list.
    • --priority (-p): Priority of the task (1-3, default is 2)
    • --duration: Expected duration in minutes (default is 60)
    • --due: Due date (e.g., 'today', 'tomorrow', '2023-12-31')
  • qtodo ls [@LIST_NAME]: List tasks. By default, it shows tasks from your currently active list.
    • --due: Filter by a specific due date.
    • --all: Show all tasks, including completed ones from the past.
  • qtodo done <ID>: Toggle a task's completion status.
  • qtodo rm <ID>: Delete a task permanently.

Managing Lists

  • qtodo switch <LIST_NAME>: Change your default list context. All subsequent add and ls commands will automatically target this list without needing to type @listname.
  • qtodo lists: View all your existing lists.
  • qtodo newlist <NAME>: Create a new list explicitly (optionally provide a --desc).
  • qtodo editlist <OLD_NAME> <NEW_NAME>: Rename a list or update its description.
  • qtodo rmlist <NAME>: Permanently delete an entire list and all of the tasks inside it.

Example Workflow

Let's say you're starting a new coding project:

  1. Create a dedicated list and switch your context to it so you don't have to keep typing its name:
    qtodo newlist Code --desc "My new app"
    qtodo switch Code
    
  2. Add some tasks:
    qtodo add "Setup database" -p 1
    qtodo add "Write API endpoints" --due tomorrow
    qtodo add "Design frontend"
    
  3. Check your list:
    qtodo ls
    
  4. Check off the database task (assuming its ID is 1):
    qtodo done 1
    

Connect

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

qtodo-0.1.4.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

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

qtodo-0.1.4-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file qtodo-0.1.4.tar.gz.

File metadata

  • Download URL: qtodo-0.1.4.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for qtodo-0.1.4.tar.gz
Algorithm Hash digest
SHA256 f37113c4ffc295faf7fad5bfac207004603024cc2dea7cbf5e4e9c03c279d8a3
MD5 2ebae18efd6bd2debed796a00d52fac2
BLAKE2b-256 7799d10e7e6156539de3768cd5058a7c2cac16c8e64781f5be1063b2e3846495

See more details on using hashes here.

File details

Details for the file qtodo-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: qtodo-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for qtodo-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5d88d8a0d5e8c252e115d4e6598c6305319670c5be60ba805de692efc4b97b54
MD5 aba317af3a9db46031162688b7e467e9
BLAKE2b-256 dc5579916425452ddcf971ebd87bc800efdda1679904bf4fcb655ff7b6f39bbd

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