A CLI tool written in Go for managing your daily tasks. Use this tool to quickly add, remove, update, and list tasks.
todo
allows you to maintain a simple todo list.
It leverages a JSON file for storage, giving you the flexibility to manually edit or inspect your tasks without using the tool.
By default, the tool operates on a file named 'todo.json' in the current directory.
But don't worry, this is configurable!
To use todo
, you'll first need to have Go installed on your machine.
If you haven't installed Go yet, you can download it and follow the installation instructions from the official Go website.
You can install todo
directly using the go tool without manually cloning the repository:
go install github.com/polldo/todo@latest
Once installed, you can start using the tool. For example, to add a new task:
todo add -n <name> -m <description>
Clone this repository to your local machine:
git clone https://github.com/polldo/todo.git
cd todo
After cloning the repository, you can build the project using the Go build tool:
go build -o todo
With the executable built, you can start using the tool. For example, to add a new task:
./todo add -n <name> -m <description>
Tasks have three priority levels: high
, mid
, and low
. Assign or change a task's priority to influence the order in which they are displayed.
Add a task with a specified name and description.
todo add -n <name> -m "<message>"
Optionally, set the task's priority (high
, mid
, or low
).
todo add -n <name> -m "<message>" -p <priority>
Remove a task using its name.
todo rm -n <name>
Display all tasks, orderd by priority.
todo ls
Filter tasks by a keyword.
todo ls -s <keyword>
Include also completed tasks in the list.
todo ls -a
Modify the message description of a task.
todo update -n <name> -m <new-message>
Update the priority of a task (to one of high
, mid
, low
).
todo update -n <name> -p <priority>
Update both message and priority.
todo update -n <name> -m <message> -p <priority>
Mark a task as completed.
todo done -n <name>
By default todo
looks for 'todo.json' in the current directory.
However, you can point it to another directory with a flag or with an environment variable.
todo ls -d <directory_path>
export TODO_DIR=<directory_path>
todo ls