Skip to main content

A rich CLI todo app with project management and task tagging

Project description

Todo CLI

A powerful command-line interface todo application with project management features, time tracking, and rich terminal output.

Features

Project Management

  • Project-based task organization with custom prefixes
  • Automatic task numbering (e.g., PROJ-001)
  • Local todo lists (per directory)

Task Management

  • Interactive task creation
  • Task types (feature, bugfix, docs, test, refactor, chore) with color coding
  • Priority levels (high, medium, low) with color coding
  • Due dates with natural language support ("tomorrow", "next friday")
  • Task completion tracking
  • Rich terminal output with detailed task information
  • Task notes with chronological history
  • Update task properties after creation

Time Tracking

  • Built-in Pomodoro-style timer (default: 25 minutes)
  • Customizable work session durations
  • Work session history per task
  • Interruption tracking
  • Total time worked statistics

Project Analytics

  • Comprehensive project status dashboard
  • Task completion rates
  • Priority distribution
  • Due date statistics
  • Work session analytics
  • Time tracking summary

Installation

pip install flowistic-todo

Usage

Initialize a Project

todo init

Follow the prompts to set:

  • Project name
  • Project description
  • Task prefix (e.g., "PROJ" for PROJ-001)

If the current directory is a git repository, todo.yaml will be automatically added to .gitignore.

Add a Task

todo add

You'll be prompted for:

  • Task title
  • Description (optional)
  • Type (feature/bugfix/docs/test/refactor/chore)
  • Priority (low/medium/high)
  • Due date (optional, supports natural language)
  • Initial note (optional)

List Tasks

todo list

Shows a table with:

  • Task tag (e.g., PROJ-001)
  • Type (color-coded by category)
  • Title
  • Priority (color-coded)
  • Due date status
  • Time worked
  • Completion status
  • Number of notes

Show Task Details

todo show PROJ-001

Shows detailed information about a specific task:

  • Task title and tag
  • Task type
  • Status and priority
  • Description
  • All notes in chronological order
  • Due date with status
  • Work session history
  • Creation date

Manage Task Notes

todo note add PROJ-001 "Note text"     # Add a new note
todo note add PROJ-001                 # Add note with interactive prompt
todo note reset PROJ-001               # Clear all notes (with confirmation)

Update Task Properties

# Update task type
todo update type PROJ-001 feature       # Set type directly
todo update type PROJ-001              # Interactive prompt

# Update task priority
todo update priority PROJ-001 high     # Set priority directly
todo update priority PROJ-001          # Interactive prompt

# Update due date
todo update due PROJ-001 "next friday" # Set due date directly
todo update due PROJ-001 clear         # Remove due date
todo update due PROJ-001               # Interactive prompt

# Update title
todo update title PROJ-001 "New title" # Set title directly
todo update title PROJ-001             # Interactive prompt

# Update description
todo update description PROJ-001 "New description" # Set description directly
todo update description PROJ-001                   # Interactive prompt

Work on a Task

todo workon PROJ-001              # Start a 25-minute work session
todo workon PROJ-001 -d 45       # Start a 45-minute work session

Features:

  • Interactive progress bar
  • Time tracking
  • Session history
  • Graceful interruption handling (Ctrl+C)

View Project Status

todo status

Shows:

  • Project information
  • Task completion rates
  • Priority distribution
  • Due date statistics
  • Work session analytics
  • Time tracking summary

Complete a Task

todo complete PROJ-001

Get Help

todo help                # Show all commands
todo help <command>      # Show detailed help for a specific command

Configuration

The app stores tasks in YAML format:

  • todo.yaml in the directory where the todo init command is run
  • If in a git repository, todo.yaml is automatically added to .gitignore

Task Storage Format

project:
  name: "My Project"
  description: "Project description"
  prefix: "PROJ"
  next_task_number: 1
tasks:
  - tag: "PROJ-001"
    title: "Example Task"
    description: "Task description"
    type: "feature"
    priority: "high"
    created_at: "2025-04-12T20:00:00"
    due_date: "2025-04-19T23:59:59"
    completed: false
    notes:
      - "Initial task planning complete"
      - "Updated requirements after review"
    work_sessions:
      - started_at: "2025-04-12T20:30:00"
        duration: 25
        interrupted: false

Development

  1. Clone the repository
  2. Install dependencies:
pip install -r requirements.txt
  1. Run the CLI:
python -m todo.cli

License

MIT License

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

flowistic_todo-0.1.4.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

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

flowistic_todo-0.1.4-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flowistic_todo-0.1.4.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.13

File hashes

Hashes for flowistic_todo-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ff0d4ee3aa418d83bbf03c556fcb9357b9abaf4ea069e414a7e2f44b970a8b9b
MD5 deb1c368520bcaac57df06f8d5e7d53a
BLAKE2b-256 de8b7be6e61a0cec56a79d84c1d9af401e3fa64d802cc791dd1555426885dce1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flowistic_todo-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.13

File hashes

Hashes for flowistic_todo-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a748f64ae6a9538cc434d0a62fee66917c70b482081c4651f0b20e588642bf09
MD5 ebcda172a2ce96fc20306b76b6046200
BLAKE2b-256 453c41e36f24da7e09fb761552e7e365c0680ac67102f479e41dc93e8f2e5baa

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