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.6.tar.gz (10.3 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.6-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: qtodo-0.1.6.tar.gz
  • Upload date:
  • Size: 10.3 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.6.tar.gz
Algorithm Hash digest
SHA256 cb85b97be6866267029ea65f564b4d3c5d2ae22b4e60619885109366dcbec6e0
MD5 9bec773b926f9cc7d293892758d9cb61
BLAKE2b-256 72054ba67ac08116847c7068516ac33f5a29752ccf02d0d8cd2b6e11df023136

See more details on using hashes here.

File details

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

File metadata

  • Download URL: qtodo-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 13.1 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 1b706aee19bce4b8e4ba0f3fcfb078f5da629f1fdf834e8e7bc9e959f0b50faa
MD5 7e20c38d30546e866829663392071f29
BLAKE2b-256 5dac06fcf13dc0e3d626a0c10b8c1442cd0514504e9c3fee28213b184e35ac79

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