up:: [[Computing MOC]]
tags:: #note/develop #on/pkm
# Taskwarrior
[Taskwarrior](https://taskwarrior.org/) is a free and open-source task management program that allows you to track your TODOs from the command line.
## Useful Commands
| Command | Description |
| ----------- | -------------------------------------------------------------------- |
| `next` | Shows a report that lists tasks in decreasing order of urgency |
| `show` | Displays current configuration settings |
| `config` | Used to modify the `.taskrc` file |
| `add` | Creates a new task |
| `done` | Marks a task as complete |
| `delete` | Marks a task as deleted (does NOT remove the task from the database) |
| `modify` | Updates a task |
| `log` | Add a task that's already been completed |
| `completed` | Shows completed tasks |
| `annotate` | Adds a one-line note to a task |
| `denotate` | Removes an annotation from a task |
## Useful Modifications
| Modifier | Type | Description |
| ---------- | ------ | -------------------------------------------------------------- |
| `project` | String | The project that a task belongs to |
| `due` | Date | The task's due date |
| `priority` | String | A task's priority |
| `wait` | Date | Hides a task from reports until the given date |
| `until` | Date | The date to automatically delete a task if it is not completed |
## Useful Filters
Show tasks completed in the last week:
```
task end.after:today-1wk completed
```
## Workflow Ideas
- Only add new tags after careful consideration
- Use `scheduled` dates
- Use `until` to auto-delete overdue tasks
- Remember to break things down into projects and subtasks
- Have a UDA to represent a task's importance
- Have another UDA that represents a task's importance:urgency ratio
- Don't over-use priorities
- Use contexts
- Homelab
- Dev
- Home
- Use a [script](https://randomgeekery.org/post/2020/01/a-quick-notes-script-for-taskwarrior/) for attaching notes to tasks
- Use `tasksh` for reviewing tasks
- UDAs
- Importance
- Cognitive load
- Location
- Delegated
- Custom reports
- Inbox
- Information associated with a task:
- ID
- Description
- Project
- Tags
- Urgency
- Due Date
- Wait Date
- Scheduled Date
- Importance
- Cognitive Load
- Location
- Status (Not started, active, paused, delegated)
- Time Spent
- Reviews
- Daily
- Weekly
- Monthly
- Yearly
## Tips
- The `next` report is sorted by urgency
- The more information you add to your tasks, the more accurate the `next` report becomes
- The more information you add to your tasks, the more urgency that is added to them
- Play with the urgency coefficients to better reflect your specific situation
- To remove a project, due date, etc, from a task: just add an empty one to it
- Think about urgency vs. importance
- Context does not affect task creation
## My Personal Taskwarrior Setup
### Priorities
| Priority | Description |
| -------- | --------------------------------------------- |
| H | I am (or want to be) working on it right now. |
| M | I want to work on this soon. |
| L | I want to work on this eventually. |
| None | I haven't thought about it. |
### Tags
What do tags represent?
| Tag | Description |
| ----------- | -------------------------------------------- |
| `in` | Task is in the inbox (has not been reviewed) |
| `important` | Whether a task is considered important |
### UDAs
| UDA | Description | Possible Values |
| -------------- | ------------------------------------------------------- | ----------------------------------- |
| Cognitive Load | How much mental energy is required to complete the task | H, M, L, \<blank> |
| Location | The physical location where the task must be completed | Home, Office, Phone, Computer, etc. |
| Delegated | Who the task has been delegated to | Any person's name |
### Projects
Projects follow the naming scheme `AREA.PROJECT.SUB-PROJECT`, where `AREA` is the area of life that a task relates to (for example: hobbies, home, finances, career, etc.).
### Contexts
| Context | Description |
| --------- | -------------------------- |
| `dev` | Software development tasks |
| `home` | Home-related tasks |
| `homelab` | Homelab tasks |
# References
- Taskwarrior documentation: https://taskwarrior.org/docs/
- Random Geekery - Taskwarrior: https://randomgeekery.org/post/2017/12/taskwarrior/
- Random Geekery - Taskwarrior Priorities: https://randomgeekery.org/post/2017/12/taskwarrior-priorities/