How to Use the `tod` Command (with Examples)
- Linux
- December 17, 2024
The tod
command is a lightweight command-line client for Todoist, developed in Rust. This tool allows users to efficiently manage their to-do lists and tasks directly from the terminal. Utilizing natural language processing, tod
simplifies task management by effortlessly assigning due dates, tags, and more, based on the input provided by the user. This makes it an ideal choice for users who prefer handling tasks through quick terminal commands without the need to frequently switch contexts between terminal and graphical interfaces.
Use Case 1: Import Your Projects
Code:
tod project import
Motivation:
Importing existing projects is a critical first step when starting with tod
. By importing your projects, you ensure that the command client is aware of your organizational framework, allowing it to prompt you with your specific projects when creating new tasks. This streamlines the task creation process and helps you stay organized more efficiently.
Explanation:
- The basic command
tod
is followed byproject import
, which instructs the tool to pull existing project data from your Todoist account into the client.
Example Output:
Projects successfully imported:
1. Personal Tasks
2. Work
3. Fitness Goals
Use Case 2: Quickly Create a Task with Due Date
Code:
tod --quickadd Buy more milk today
Motivation:
For users who need to quickly add items to their to-do list as they occur to them, the quick addition feature of tod
is particularly useful. It bypasses detailed prompts by allowing you to enter a task and due date in one simple command. This can be a substantial time-saver for users managing busy schedules or regularly adding similar tasks.
Explanation:
--quickadd
: This flag specifies that you want to create a task quickly, without going through the usual interactive mode.Buy more milk today
: The task description, followed by natural language indicating the due date, allowingtod
to automatically parse and understand that the task is due today.
Example Output:
Task "Buy more milk" added to Inbox with due date set to today.
Use Case 3: Create a New Task (Prompted for Content and Project)
Code:
tod task create
Motivation:
Sometimes you need to take your time in defining and organizing tasks. Using tod task create
allows users to fully describe tasks and assign them to projects interactively. This use case is great for comprehensive task creation when you have all the details ready, but prefer guidance through prompts.
Explanation:
task create
: This command initiates the process of creating a new task. You will be prompted to enter task details such as content and the project to assign the task to.
Example Output:
Enter task content: Write project proposal
Select project: 1. Personal Tasks 2. Work 3. Fitness Goals
Selected: Work
Task "Write project proposal" added to Work project.
Use Case 4: Create a Task in a Project
Code:
tod task create --content "Write more rust" --project code
Motivation:
When you have specific details of a task in mind and know exactly which project it should belong to, this approach saves time by allowing direct specification of both content and project in one command. This is particularly useful for frequent users who are well-aware of their project structure.
Explanation:
--content "Write more rust"
: Specifies the content of the task directly within the command line.--project code
: Specifies the exact project (in this case, named “code”) where the task should be added, streamlining the task creation process and ensuring it’s immediately organized.
Example Output:
Task "Write more rust" added to project Code.
Use Case 5: Get the Next Task for a Project
Code:
tod task next
Motivation:
For users who work on multiple projects simultaneously, understanding and focusing on the next immediate task can be crucial for productivity. This command helps by providing the next pending task from your to-do list, allowing you to maintain momentum in your workflow without distraction.
Explanation:
task next
: This combination retrieves the next upcoming task from your list. The selection typically depends on the priority and due date set for tasks within your projects.
Example Output:
Next task in project Work: "Write project proposal"
Use Case 6: Get Your Work Schedule
Code:
tod task list --scheduled --project work
Motivation:
Reviewing a clear schedule of your upcoming work tasks helps in time management and prioritization. This command lists all tasks in the predefined order you have set for your work project, allowing you visibility into your upcoming commitments and deadlines.
Explanation:
task list
: The base command for listing tasks.--scheduled
: Filters the tasks to only those with set schedules or due dates.--project work
: Specifies that the list should be derived from the “work” project only, giving a targeted view of the user’s work-related schedule.
Example Output:
Scheduled tasks for Work:
1. [Today] Prepare meeting notes
2. [Tomorrow] Complete quarterly review
3. [Next Week] Develop new feature specs
Use Case 7: Get All Tasks for Work
Code:
tod task list --project work
Motivation:
For comprehensive project management, having a complete overview of all tasks—regardless of their status—is ideal. This use case allows you to list every task associated with a specific project, providing you with a broader snapshot that is invaluable for planning, checking progress, or rescheduling activities.
Explanation:
task list
: Again, the foundational command to list tasks.--project work
: Fetches tasks exclusively linked to the “work” project, offering a focused summary of everything that needs attention within that project.
Example Output:
All tasks for Work project:
1. [Today] Prepare meeting notes
2. [Tomorrow] Complete quarterly review
3. Unassigned: Conduct user testing debrief
4. [Next Week] Develop new feature specs
Conclusion
The tod
command empowers users with advanced task management capabilities right from the command line, combining speed, efficiency, and functionality. Whether you are exporting projects, quickly adding tasks, or obtaining a detailed work schedule, tod
simplifies these processes with natural language processing and thoughtful command structure. This tool is a perfect blend for those who appreciate terminal operations with effective task management capabilities.