Skip to main content

A powerful, beautiful CLI + TUI todo application for developers who live in the terminal

Project description

TodoX Banner

๐Ÿ“‹ TodoX

The Developer's Command-Line Todo List

PyPI version Python License

TodoX is a powerful, beautiful CLI + TUI todo application built for developers who live in the terminal. Manage tasks with priorities, due dates, Git context awareness, and stunning rich UI.

Features โ€ข Installation โ€ข Quick Start โ€ข Usage โ€ข Contributing


โœจ Features

๐ŸŽจ Rich Visual Interface

  • Beautiful Tables: Colorful, formatted tables with priority indicators
  • Interactive TUI: Full-featured terminal UI with keyboard shortcuts
  • Color-Coded Priorities: High (๐Ÿ”ด), Medium (๐ŸŸก), Low (๐ŸŸข)
  • Icons & Emojis: Visual task status, due dates, and timers

๐Ÿš€ Developer-Friendly

  • Git Integration: Automatic repository and branch detection
  • Context Filtering: Filter tasks by current Git repository
  • Time Tracking: Built-in timer for tracking work sessions
  • Notes Support: Add detailed notes to any task using your $EDITOR

๐Ÿ’ช Powerful Features

  • Priority Management: Set and cycle through task priorities
  • Due Dates: Track deadlines with ISO format dates
  • Tag System: Organize tasks with custom tags
  • Fuzzy Search: Quick task lookup with intelligent matching
  • Sorting: Sort by priority, due date, or custom criteria

๐Ÿ“ฆ Installation

From PyPI (Recommended)

pip install todox

From Source

git clone https://github.com/Padhysai/todox.git
cd todox
pip install -e .

๐Ÿš€ Quick Start

Add Your First Task

# Simple task
todox add "Implement authentication"

# With priority and due date
todox add "Fix critical bug" --priority high --due 2024-02-15

# With tags
todox add "Update docs" work,docs

View Your Tasks

# Beautiful table view
todox list

# Filter by current Git repo
todox list --context

# Show completed tasks too
todox list --all

Launch the TUI

todox ui

TUI Screenshot


๐Ÿ“– Usage

CLI Commands

Command Description Example
add Create a new task todox add "Task title" -p high -d 2024-12-31
list Display tasks in a table todox list --context
done Mark a task as complete todox done 5
edit Edit task notes todox edit 3
start Start time tracking todox start 2
stop Stop time tracking todox stop
search Find tasks by title todox search "bug"
stats View statistics todox stats
ui Launch interactive TUI todox ui

TUI Keybindings

Key Action
โ†‘/โ†“ Navigate tasks
x Toggle task completion
p Cycle priority (Low โ†’ Medium โ†’ High)
s Sort by priority
t Toggle timer
space Select/highlight task
q Quit

Priority Options

  • low / -p low - ๐ŸŸข Low priority
  • medium / -p medium - ๐ŸŸก Medium priority (default)
  • high / -p high - ๐Ÿ”ด High priority

๐ŸŽฏ Advanced Usage

Git Context Awareness

TodoX automatically detects your current Git repository and branch:

# Tasks are tagged with repo/branch info
cd ~/projects/my-app
todox add "Add feature X"  # Tagged with 'my-app' repo

# Filter tasks for current repo only
todox list --context

Time Tracking

Track how much time you spend on tasks:

todox start 5      # Start timer for task #5
# ... work on task ...
todox stop         # Stop timer

todox stats        # View total time spent

Task Notes

Add detailed notes to any task using your default editor:

export EDITOR=vim  # Or nano, code, etc.
todox edit 3       # Opens editor with task notes

Environment Variables

  • TODOX_DB_PATH: Custom database location (default: ~/.todox.json)
  • EDITOR: Default editor for notes (default: vim)

๐Ÿ› ๏ธ Development

Setup

# Clone the repository
git clone https://github.com/Padhysai/todox.git
cd todox

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install in development mode
pip install -e .

Project Structure

todox/
โ”œโ”€โ”€ todox/
โ”‚   โ”œโ”€โ”€ cli.py      # CLI commands and rich formatting
โ”‚   โ”œโ”€โ”€ tui.py      # Textual-based TUI
โ”‚   โ”œโ”€โ”€ models.py   # Data models
โ”‚   โ”œโ”€โ”€ store.py    # JSON storage
โ”‚   โ””โ”€โ”€ gitutils.py # Git integration
โ”œโ”€โ”€ pyproject.toml
โ””โ”€โ”€ README.md

๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

  1. ๐Ÿด Fork the repository
  2. ๐ŸŒฑ Create a feature branch (git checkout -b feature/amazing-feature)
  3. ๐Ÿ’พ Commit your changes (git commit -m 'Add amazing feature')
  4. ๐Ÿ“ค Push to the branch (git push origin feature/amazing-feature)
  5. ๐ŸŽ‰ Open a Pull Request

Ideas for Contributions

  • ๐Ÿ“ฑ Export tasks to various formats (JSON, CSV, Markdown)
  • ๐Ÿ”” Notifications for due dates
  • ๐Ÿ“Š More detailed statistics and analytics
  • ๐ŸŒ Cloud sync support
  • ๐ŸŽจ Custom themes for TUI

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments

Built with:


โญ Star this repo if you find it helpful!

Made with โค๏ธ for developers who love the terminal

Report Bug โ€ข Request Feature

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

todox-0.1.2.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

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

todox-0.1.2-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file todox-0.1.2.tar.gz.

File metadata

  • Download URL: todox-0.1.2.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for todox-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6b5b586f44d0d235d5b79566fcab39a1ffadab5cb7e2a17eaf48eb77385c23e3
MD5 615b900f65d0515bde81dc8be5ae1030
BLAKE2b-256 739b3f5b3b48d78764e81c0638a248f75948d0dae8a908706516da7666cbd6b5

See more details on using hashes here.

File details

Details for the file todox-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: todox-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for todox-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bfae7dd6e4600c4dc1c384f241be5b5f5767f3c977c9c58a2adc77e5923133eb
MD5 a52451aaecbd905e3626a1771cc48580
BLAKE2b-256 5113ee857de5b58d141893e383cfe88dda1bf314cd331945f7448b3839bda6c5

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