Skip to content

Viewing and using the todu list

Casey Miller edited this page Jul 22, 2026 · 5 revisions

Bare todu

Running todu without any subcommands will list all the todo items in your current project. the project is determined by:

  1. if the --global flag is present, the $HOME directory
  2. if in a git repo, the git project root
  3. otherwise, the current working directory

note: the --global flag can be used with virtually any todu subcommand to use the 'global' project.


> cd my-project
> todu
╭───┬────┬─────────────────────────────┬─────────┬──────────┬────────────╮
 # │ id │            title            │ status  │ priority │    due     │
├───┼────┼─────────────────────────────┼─────────┼──────────┼────────────┤
 0   2  do something more important  pending  medium    in 2 days  
 1   1  do something important 0/2   pending  low       in a day   
 2   3  do something...              pending            in 5 hours 
╰───┴────┴─────────────────────────────┴─────────┴──────────┴────────────╯

note: the items in the todu table are automatically sorted by priority

todu get

The todu command produces a simplified view of the project's todo list. This is hinted at by the final characters of todo 1 and 3 (going by ID not index). The ... in the title of todo 3 indicates that the item has an associated description. And the 0/2 in the title of todo 1 indicates that the item has two subtasks that are unfinished.

We can use todu get to see a more descriptive view.

> todu get 3
╭─────────┬─────────────────────╮
 id       3                   
 title    do something        
 status   pending             
 due      in 5 hours          
 desc     something something 
 source   local               
 created  14 minutes ago      
╰─────────┴─────────────────────╯
> todu get 1
╭──────────┬──────────────────────────────────────╮
 id        1                                    
 title     do something important               
 status    pending                              
 priority  low                                  
 due       in a day                             
           ╭───┬────┬───────────────┬─────────╮ 
 subtasks   # │ id │     title     │ status  │ │
           ├───┼────┼───────────────┼─────────┤ 
            0   4  finish task A  pending  
            1   5  finish task B  pending  
           ╰───┴────┴───────────────┴─────────╯ 
 source    local                                
 created   17 minutes ago                       
╰──────────┴──────────────────────────────────────╯

Using the todu list

Each todo item starts out with their status as pending. The table below shows how to update the status to help you keep track of your todos.

Status Command Description
In Progress todu start <id> starting to work on this task
Paused todu pause <id> taking a break from this task to focus on another one
Stopped todu stop <id> stopping this task, no longer pursuing it
Done todu done <id> finished this task
Pending todu reopen <id> stopping progress on this but will revisit later

If a todo item has subtasks then its status is determined by its subtasks. If any subtasks are in progress then the parent task is also in progress. If all subtasks are done, then the parent is in review. A parent task that is in review can then be marked complete with todu done <id>.

Items marked as done or stopped are automatically archived. These items will then be hidden when using the bare todu command. You can view them with todu --all. If for some reason you need to revisit a todu item, you can use any of the aforementioned status commands to do so.

Clone this wiki locally