Taskwarrior is a CLI task manager that stays fast even when your backlog grows. This guide covers single-machine usage and a Taskserver path for multi-device sync. Commands reflect common Linux distributions—adapt package names for your OS.
Part 1: Taskwarrior on one machine
What is Taskwarrior?
A command-line inbox for actionable work: create, tag, schedule, prioritize, and complete tasks without leaving the terminal.
Install
Debian / Ubuntu:
sudo apt-get update
sudo apt-get install taskwarrior
RHEL family:
sudo yum install task
Basic commands
- Add a task
task add Finish project report
- List pending work
task list
- Complete by ID
task 1 done
- Filter by tag
task +important list
Part 2: Multiple machines with Taskserver
What is Taskserver?
The companion sync service that lets several Taskwarrior clients share one queue—handy when you bounce between laptop and desktop.
Build / install Taskserver (outline)
- Clone sources
git clone https://github.com/GothenburgBitFactory/taskserver.git
- Dependencies on Debian/Ubuntu
sudo apt-get install cmake make g++ uuid-dev libgnutls28-dev libssl-dev
- Compile
cd taskserver
cmake .
make
sudo make install
Configure Taskserver (minimal)
Create a data directory, copy the sample taskserver.rc, and set server plus data.location to match your environment—then start the daemon using the packaging or unit files your distro provides.
Point Taskwarrior at the server
task config taskd.server <your_taskserver_host>
task config taskd.credentials <user>@<your_taskserver_host>
task sync init
Repeat client configuration on each machine you want on the same queue.
Conclusion
Taskwarrior rewards plain-text discipline: small habits (tags, due dates, weekly reviews) compound. Taskserver adds multi-device continuity once you accept the operational cost of hosting sync yourself.
For advanced workflows—UDAs, hooks, burndown reports—lean on upstream docs; the defaults here are enough to ship value quickly.