A simple, command-line todo application written in Bash. It stores todo items in a JSON file and provides basic task management functionality. Despite being "stupid simple", it's quite powerful for everyday task tracking.
- Add tasks with deadlines, priorities, and categories
- List all tasks with color-coding based on priority and status
- Remove tasks by ID or clear all tasks
- Auto-clean expired tasks
- Search tasks by keyword
- Color-coded output for better visibility
- Bash shell
- jq - A lightweight command-line JSON processor
$ ./todo.sh [command] [options]
$ ./todo.sh list
# or simply
$ ./todo.sh
Lists all the todo items with color-coding based on priority and status.
$ ./todo.sh add
Starts an interactive wizard to add a new todo item with:
- Message (required)
- Category (optional)
- Priority (low, medium, high)
- Deadline (in number of days)
$ ./todo.sh remove <id>
Removes a specific todo item by its ID.
$ ./todo.sh remove -a
Removes all todo items (with confirmation).
$ ./todo.sh clear
Removes all todo items that are past their deadline.
$ ./todo.sh search <keyword>
Searches todo items by keyword in message or category.
$ ./todo.sh help
Displays help information.
$ git clone https://github.com/yourusername/stupid-todo.git
$ cd stupid-todo
$ chmod +x todo.sh
$ ./todo.sh
For easier access, you may want to:
-
Create a symbolic link in a directory in your PATH:
$ ln -s "$(pwd)/todo.sh" ~/bin/todo
(Make sure ~/bin is in your PATH)
-
Or add an alias in your .bashrc or .zshrc:
alias todo='path/to/stupid-todo/todo.sh'
Apache License 2.0
Copyright 2023 Pablo Ramos Muras
Licensed under the Apache License, Version 2.0. See the LICENSE file for details.