The Command Line Task Manager is a lightweight, keyboard-driven, object-oriented task management application built with Python. Designed for efficiency and speed, it lets you create, organize, and track your tasks while keeping your hands on the keyboard.
Install required Python packages with pip or conda:
pip install tabulate coloramaYou can use the task manager immediately without any installation by running it directly with Python:
# Clone the repository and navigate to the project directory
cd /path/to/command-line-task-manager
# Add a new task
python3 task_manager.py --add "Walk the dog" --priority 2 --due "12/25/2025"
# List incomplete tasks
python3 task_manager.py --list
# Show all tasks (including completed)
python3 task_manager.py --report
# Mark a task as done
python3 task_manager.py --done <task-uuid>
# Delete a task
python3 task_manager.py --delete <task-uuid>
# Search for tasks
python3 task_manager.py --query "dog" "walk"Note: When using basic usage, tasks are stored in .todo.pickle in the current directory.
To run the task manager from anywhere on your system using a simple todo command, follow these instructions:
Ensure your task_manager.py file has this line at the very top:
#!/usr/bin/env python3Modify the Tasks class in tasks.py to store the pickle file in your home directory. In the __init__ method, update the filename line:
import os
# Change this line:
self.filename = filename or os.path.expanduser('~/.todo.pickle')First, determine which shell you're using:
echo $SHELLThis will show either /bin/zsh, /bin/bash, or another shell.
For macOS/Linux:
# Navigate to your project directory
cd /path/to/task-manager-app
# Make the script executable
chmod +x task_manager.py
# Create personal bin directory
mkdir -p ~/bin
# Create symbolic link (auto-updates when you edit code)
ln -s $(pwd)/task_manager.py ~/bin/todoAdd ~/bin to your PATH based on your shell (adjust as necessary):
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc
source ~/.zshrcOpen a new terminal window and test:
todo --listIf you see your tasks (or "No tasks found"), the installation worked!
Once globally installed, you can run from anywhere:
# Add a new task
todo --add "Walk the dog" --priority 2 --due "12/25/2025"
# List incomplete tasks
todo --list
# Show all tasks (including completed)
todo --report
# Mark a task as done
todo --done <task-uuid>
# Delete a task
todo --delete <task-uuid>
# Search for tasks
todo --query "dog" "walk"- Basic usage: Tasks stored in
.todo.picklein the project directory - Global installation: Tasks stored in
~/.todo.picklein your home directory