willdo is a fast, lightweight and minimal task manager aimed at terminal habitants who need an easy to use command line tool that helps to keep track of tasks and ideas without getting too much in the way and focusing on what is really important, which is helping to streamline workflows, organization, planning and productivity without the need of a bloated GUI.
- group tasks by category
- set different priority levels
- set different progress state
- add descriptions to tasks
- filter by category
- filter by priority level
- filter by progress state
- filter favorites
- customize the filesystem location of the sqlite database
- manage most task properties in a TUI
- update task properties on the command line
- move tasks between categories
- fast, lightweight and minimal
- pretty terminal output
To build willdo you will need to install atleast version 1.24.4 of Golang which can be done by following this documentation.
After that you will have to install the following dependencies:
sudo apt update
sudo apt install make git asciidoctorsudo dnf update
sudo dnf install make git asciidoctorOnce that is done you can clone this repository
cd ~
git clone https://github.com/cgoesche/willdo.git
cd willdo
makeIf you have build without errors you can now install willdo and its manpage.
make installThe default installation location for willdo is /usr/local/bin, however on some read-only systems this might cause issues
and you might also prefer to install it at a custom location. In that case simply run the command like this:
INSTALL_DIR="<DIRECTORY PATH>" make installThe configuration file is expected to be located at ~/.config/willdo/config.yaml on GNU/Linux
and ~/Library/Application Support/willdo/config.yaml on macOS. However, you can define a different file
either with the --config flag.
Example:
willdo --config="<CONFIG FILEPATH>" --allHere is how a valid configuration file could look like:
---
database:
type: "sqlite"
filepath: "/home/user/willdo.db"
address: "127.0.0.1"
port: 8888Note that for now the address and port parameters are ignored when the type is set to "sqlite" and will be of use when support for
other network connected database types has been added, e.g. MongoDB, Postgres or MySQL. Additionally, to run willdo a configuration file
is not needed because it will simply apply default values, but it is still recommended.
Tasks have the following properties:
- ID
- Title
- Description
- Status ( Todo: 0, Doing: 1, Done: 2)
- Priority ( Low: 0, Medium: 1, High: 2)
- IsFavorite ( False: 0, True: 1)
- Category
The numeric values for Status, Priority and IsFavorite are used for modifications at the command line just as you can see in the usage examples below.
Categories have the following properties:
- ID
- Name
- Description
willdo task --category "My List" -t "Review all PRs tagged with 'proposal' and 'enhancement'" -f 1willdo edit category -c "My List" -n "Personal List"willdo edit task --id 3 --priority 2willdo -c "Personal List"willdo category --name "Winter vacation" --description "Task list for our family vacation to Aspen"-
c,spacebarcomplete task -
d,Ddelete task -
f,F(un)mark as favorite -
s,Sstart task -
t,Tmark as todo -
qquit -
g,homego to start -
G,endgo to end -
←,h,pgupprev page -
↓,jdown -
↑,kup -
→,l,pgdnnext page -
?open/close help -
ctrl-dfilter done tasks -
ctrl-ffilter favorites -
ctrl-hfilter high priority task -
ctrl-jfilter mid priority tasks -
ctrl-lfilter low priority tasks -
ctrl-sfilter doing tasks -
ctrl-tfilter todo tasks -
ctrl-xclear completed tasks -
alt-rrefresh list -
alt-dshow/hide details -
alt-sshow/hide stats
WILLDO_DATABASE_TYPE
Sets the database type to use. For now only "sqlite" is supported.
WILLDO_DATABASE_FILEPATH
An absolute or relative filepath for the database.
WILLDO_DATABASE_ADDRESS
Specifies the network address of the network connected database. (not used)
WILLDO_DATABASE_PORT
Specifies the listen port of the network connected database. (not used)
Behind the scenes willdo uses:
- Bubbletea for the TUI
- Viper to read the configuration file
- Cobra for the command line argument and option parsing
- Lipgloss to style the terminal output
willdo is released under the GPLv3 license. For details check the LICENSE file.
