Task Tracker CLI is a simple yet powerful command-line tool for managing your daily tasks. Built with Python, it allows you to add, update, delete, and track your to-dos directly from your terminal. All tasks are saved locally in a tasks.json file.
- Add Tasks: Quickly add new tasks with a description.
- List Tasks: View all tasks, conveniently grouped by their status (To Do, In Progress, Done).
- Filter Tasks: Display tasks filtered by a specific status:
todo,in-progress, ordone. - Update Tasks: Easily modify the description of an existing task.
- Change Status: Progress tasks through your workflow by marking them as
in-progressordone. - Delete Tasks: Remove tasks that are no longer needed.
- View Details: Get detailed information for a specific task, including its ID, status, and timestamps.
- Local JSON Storage: All tasks are persisted in a human-readable
tasks.jsonfile in the project's root directory.
- Python 3.8+
- The
uvpackage manager is recommended for running therun.shscript.
-
Clone the repository to your local machine:
git clone https://github.com/aulanchik/task-tracker-cli.git cd task-tracker-cli -
Execute commands using the provided
run.shscript. This script automatically handles the environment and runs the application../run.sh <command> [arguments]
For example, to list all tasks:
./run.sh list
The CLI provides a set of commands to manage your tasks efficiently. You can see all available commands by running ./run.sh help.
| Command | Description |
|---|---|
add <description> |
Adds a new task with the given description. |
list [status] |
Lists all tasks. Optionally filter by todo, in-progress, or done. |
get <id> |
Shows detailed information for a specific task by its ID. |
update <id> <desc> |
Updates the description of an existing task. |
delete <id> |
Deletes a task by its ID. |
mark-in-progress <id> |
Marks a task as "in-progress". |
mark-done <id> |
Marks a task as "done". |
help |
Displays the help message with all commands and examples. |
Here are some common usage examples:
# Add a new task (remember to use quotes for descriptions with spaces)
./run.sh add "Finalize the project report"
# List all tasks, grouped by status
./run.sh list
# List only the tasks that are done
./run.sh list done
# View details for the task with ID 1
./run.sh get 1
# Mark task 1 as in progress
./run.sh mark-in-progress 1
# Update the description for task 1
./run.sh update 1 "Finalize and submit the project report"
# Mark task 1 as completed
./run.sh mark-done 1
# Delete task 1
./run.sh delete 1This application has been developed as Python 'Task Tracker' challenge issued by Roadmap.sh