MyTask is a straightforward command-line tool written in Python for managing multiple task lists. It uses local JSON files to store tasks, so there's no need for a database or external dependencies.
- Manage multiple task lists
- Add, delete, rename tasks
- Mark tasks as complete/incomplete
- Rename or delete task lists
- View current or all lists
- Minimal, portable, and dependency-free
- Python 3.6+
project_root/
├── tasklists/ # Contains all task list files (.json)
├── LICENSE # License information
├── README.md # This file
├── last # Tracks the active task list
├── mytask.sh # Shell script that runs mytask.py
└── mytask.py # The main CLI script
Run the script from your terminal:
python mytask.py [OPTIONS]Or use the mytask.sh script:
mytask.sh [OPTIONS]| Option | Description |
|---|---|
--license |
Show license information |
--version |
Show current version |
--doc |
Display the README.md content |
--newlist NAME |
Create a new task list |
--setlist NAME |
Set the current/working task list |
--lists |
Show all available task lists |
--show |
Show tasks in the current task list |
--add NAME |
Add a new task to the current list |
--delete ID |
Delete a task by ID |
--rename ID |
Rename a task (will prompt for new name) |
--renamelist NAME |
Rename a task list (will prompt for new name) |
--done ID |
Mark a task as completed |
--undo ID |
Mark a task as not completed |
--deletelist NAME |
Delete a task list |
Create a new task list and set it as active:
python mytask.py --newlist chores
python mytask.py --setlist choresAdd tasks:
python mytask.py --add "Do the laundry"
python mytask.py --add "Take out the trash"Mark task as done:
python mytask.py --done 1View current list:
python mytask.py --showDelete a task:
python mytask.py --delete 2Rename a task:
python mytask.py --rename 1
# Prompts for new task nameShow all lists:
python mytask.py --listsDelete a list:
python mytask.py --deletelist choresTo view the license included with this project:
python mytask.py --licensepython mytask.py --versionCurrent version: 0.0.1
--renamecurrently relies oninput()and does not support piping or automation.- Improve input validation and error handling.
- Consider support for timestamps, tags, or priority fields.
Pull requests and suggestions are welcome. Fork it, modify it, and make it your own.