Finally, A Task Manager That Doesn't Suck
I’ve tried them all. Todoist’s gamification felt juvenile after two weeks. Notion’s databases became more work than the actual work. Apple Reminders couldn’t handle the complexity of academic life. Things 3 was beautiful but rigid. Microsoft To-Do was just another bloated app but came pretty close to what I needed. And yet even bullet journals became another chore to maintain.
What finally worked wasn’t another shiny app with animated checkboxes. It was a 15-year-old command-line tool that treats task management like data management: flexible, filterable, and fast.
This post walks through how I set up Taskwarrior for academic life—research, teaching, service, and admin work—and why it’s the first task manager that’s actually stuck. If you live in the terminal and juggle multiple projects with shifting priorities, this might be exactly what you need.
Why Taskwarrior Works
It’s fast. Adding a task takes seconds: task add "Grade midterms" project:classes +grading due:friday priority:H
. No clicking through dropdowns or waiting for sync.
It’s flexible. Every task can have unlimited tags, custom attributes, and arbitrary metadata. Need to track which committee a task belongs to? Add committee:hiring
. Want to estimate time? Add estimate:2hr
. The data model bends to your workflow, not the reverse.
It scales. I’m managing 200+ tasks across four major project areas. Taskwarrior handles this without breaking a sweat. Try that in a typical task app.
It integrates. Tasks live in plain text files that sync with Syncthing. Reports pipe to other tools. Everything is scriptable, greppable, and backup-friendly.
Setting Up for Academic Work
Step 1: Install and Configure
On Arch Linux:
sudo pacman -S task
Or on most systems:
# Check your package manager
apt install taskwarrior # Debian/Ubuntu
brew install taskwarrior # macOS
Initial setup creates a basic .taskrc
:
task
# Answer 'yes' to create sample config
Step 2: Enhanced Academic Configuration
Replace the generated .taskrc
with an academic-focused setup:
# Color theme
include dark-256.theme
# Default to 'next' report when you just type 'task'
default.command=next
# Enhanced next report with more academic context
report.next.columns=id,start.age,depends,priority,project,tags,due.relative,description.count,urgency
report.next.labels=ID,Active,Deps,P,Project,Tags,Due,Description,Urg
# Academic-specific reports
report.research.description=Research and academic tasks
report.research.filter=project:research or +academic or +writing or +analysis
report.teaching.description=All teaching-related tasks
report.teaching.filter=project:classes or project:teaching or +teaching or +grading
report.admin.description=Administrative tasks
report.admin.filter=project:admin or +admin or +meeting or +paperwork
report.service.description=Service and committee work
report.service.filter=project:service or +committee or +review or +editorial
# Weekly planning
report.week.description=This week's tasks
report.week.filter=due.before:sunday or due:today
report.week.sort=due+,priority-
# Urgency weighting for academic priorities
urgency.user.project.classes.coefficient=6.0 # Teaching has hard deadlines
urgency.user.tag.grading.coefficient=8.0 # Students are waiting
urgency.user.tag.deadline.coefficient=12.0 # Grant/conference deadlines
urgency.user.tag.conference.coefficient=7.0 # Conference deadlines are firm
# Time estimation
uda.estimate.type=string
uda.estimate.label=Est
uda.estimate.values=15min,30min,1hr,2hr,4hr,1day,1wk
Step 3: Contexts for Focus
Contexts let you filter your entire task view to focus on one area:
# Set up contexts in .taskrc
context.research.read=project:research or +academic or +writing
context.teaching.read=project:classes or +teaching or +grading
context.admin.read=project:admin or +meeting or +paperwork
Then switch focus modes:
task context research # Only see research tasks
task context teaching # Only see teaching tasks
task context none # Back to everything
This is transformative. When I’m in “writing mode,” I only see writing tasks. When I’m prepping for class, only teaching tasks. No cognitive overhead from unrelated work.
Daily Workflow
Morning Planning
task today # What's due today
task urgent # Critical items
task week # Weekly overview
Adding Tasks Throughout the Day
# Quick capture
task add "Email student about extension" project:classes due:today
# With full context
task add "Revise methodology section" project:research +writing priority:H due:friday estimate:4hr
# Service work
task add "Review manuscript for JPP" project:service +review due:2024-09-01 estimate:8hr
During Work Sessions
task 15 start # Start timer on task 15
# Work on it...
task 15 stop # Pause timer
# Later...
task 15 start # Resume
task 15 done # Complete (shows total time)
Time tracking is built-in and unobtrusive. Perfect for tenure files or grant reports where you need to document effort.
End-of-Day Review
task completed today # What got done
task next # Plan tomorrow
Academic-Specific Patterns
Research Project Management
# Create task chains
task add "Collect survey data" project:research-rtcc
task add "Clean and code data" project:research-rtcc depends:1
task add "Run initial analysis" project:research-rtcc depends:2
task add "Write results section" project:research-rtcc depends:3
Course Management
# Recurring prep work
task add "Weekly lecture prep" project:classes recur:weekly due:sunday
# Batch similar work
task add "Grade Discussion 1" project:classes +grading course:POLS101
task add "Grade Discussion 2" project:classes +grading course:POLS101
task add "Grade Discussion 3" project:classes +grading course:POLS101
# Then filter: task +grading list
Service Work Tracking
task add "Review tenure file" project:service committee:personnel priority:H due:2024-08-30 estimate:6hr
task add "Faculty meeting" project:admin +meeting due:2024-08-22T14:00
Reports That Actually Help
Instead of meaningless productivity metrics, Taskwarrior gives you actionable views:
task research # All research tasks
task +grading # All grading across courses
task +deadline # Hard deadlines only
task overdue # What's late
task waiting # Tasks blocked by others
The burndown
report is particularly useful for conference deadlines or semester planning:
task burndown.weekly
Shows a visual graph of task completion over time. Great for understanding your actual work patterns versus planned deadlines.
Integration with p10k/Oh My Zsh
If you use Powerlevel10k, add this to your .zshrc
:
# Show task count in prompt
POWERLEVEL9K_CUSTOM_TASK="echo -n \$(task +PENDING count) tasks"
POWERLEVEL9K_CUSTOM_TASK_FOREGROUND="yellow"
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS+=custom_task
Now your prompt constantly shows pending task count. It’s motivating without being annoying.
Syncing Across Devices
With Syncthing (Recommended)
# Move task data to synced folder
mv ~/.task ~/Syncthing/taskwarrior-data
# Update .taskrc
data.location=~/Syncthing/taskwarrior-data
Works perfectly. I add tasks on my laptop, and they appear on my desktop within minutes. No cloud services, no accounts, no privacy concerns.
Backup Strategy
# Daily export (add to crontab)
task export > ~/Syncthing/task-backup-$(date +%Y%m%d).json
Why This Beats Everything Else
Speed: No app loading, no web interfaces, no sync delays. Type task add
and you’re capturing a thought in real-time.
Flexibility: Academic work doesn’t fit neat categories. Taskwarrior adapts to however you think about your work.
Longevity: Plain text files in an open format. Your tasks aren’t hostage to a startup’s business model.
Power: Complex queries, bulk operations, and scriptability that no GUI app can match. Need all overdue tasks from last month? task due.before:2024-07-01 status:pending list
. Done.
No Lock-in: Don’t like Taskwarrior tomorrow? Export to JSON and import anywhere. Your data remains yours.
The Academic Sweet Spot
Most task managers are built for business workflows: projects with defined start/end dates, clear deliverables, and hierarchical structures. Academic work is messier. Research projects span years. Teaching prep recurs on weird schedules. Service work appears unpredictably.
Taskwarrior handles this beautifully because it doesn’t impose a workflow. It’s a flexible database for task data, with reporting tools that let you slice that data however makes sense for your actual work patterns.
After six months of daily use, I’m finally not thinking about my task management system. It just works, invisibly and efficiently. That’s the highest praise I can give any productivity tool.
Getting Started
- Install Taskwarrior:
brew install taskwarrior
or equivalent - Copy the configuration above to
~/.taskrc
- Add your first task:
task add "Try Taskwarrior" priority:H due:today
- Run
task next
to see it
Start simple. Add a few real tasks and use basic commands (task list
, task 1 done
) for a week. Then gradually add the academic-specific features as you see the value.
The best task manager is the one you actually use. For me, that’s finally Taskwarrior.