-
Notifications
You must be signed in to change notification settings - Fork 1
π Usage
igorp74 edited this page Jan 23, 2026
·
7 revisions
Usage: todo [global options] <command> [command options]
--db-path Custom path and name for the database file (e.g., /path/to/my/todo.db)
Add
add Add a new task.
| Short | Long | Description |
|---|---|---|
-t |
--title |
Title of the task (required) |
-d |
--description |
Description of the task |
-p |
--project |
Project name (will be created if not exists) |
-s |
--start-date |
Start date (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
-D |
--due-date |
Due date (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
-E |
--end-date |
End date (completion date) (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
-E0 |
--end-same-start |
Set end date same as start date. |
-r |
--recurrence |
Recurrence pattern (daily, weekly, monthly, yearly, or comma-separated days of week for weekly, e.g., 'weekly:Tue,Thu') |
-ri |
--recurrence-interval |
Interval for recurrence (e.g., 2 for every 2 days) (default: 1) |
-c |
--contexts |
Comma-separated list of contexts (e.g., 'work,home') |
-T |
--tags |
Comma-separated list of tags (e.g., 'urgent,bug') |
-sw |
--start-waiting |
Start date of waiting period (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
-ew |
--end-waiting |
End date of waiting period (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
-st |
--status |
Initial status of the task (pending, completed, cancelled, waiting) (default: pending) |
Delete
del Delete a task by ID.
| Short | Long | Description |
|---|---|---|
-I |
--ids |
Comma-separated IDs or ID ranges of tasks to delete (e.g., '1,2,3-5,10'). If filters are used, applies to the filtered set. |
-i |
--id |
ID of a single task to delete (use -ids for multiple or ranges). If filters are used, applies to the filtered set. |
-C |
--complete |
Mark task as completed instead of deleting (for recurring tasks) |
-p |
--project |
Filter tasks by project name before deletion |
-c |
--context |
Filter tasks by context name before deletion |
-T |
--tag |
Filter tasks by tag name before deletion |
-st |
--status |
Filter tasks by status (pending, completed, cancelled, waiting) before deletion |
-x |
--confirm |
Confirm deletion without prompt when using filters |
Update
update Update an existing task.
| Short | Long | Description |
|---|---|---|
-I |
--ids |
Comma-separated IDs or ID ranges of tasks to update (e.g., '1,2,3-5,10') |
-i |
--id |
ID of a single task to update (use -ids for multiple or ranges) |
-t |
--title |
New title of the task |
-d |
--description |
New description of the task |
-p |
--project |
New project name |
-s |
--start-date |
New start date (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
-D |
--due-date |
New due date (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
-E |
--end-date |
New end date (completion date) (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
-E0 |
--end-same-start |
Set end date same as start date. |
-st |
--status |
New status (pending, completed, cancelled, waiting) |
-r |
--recurrence |
New recurrence pattern |
-ri |
--recurrence-interval |
New interval for recurrence |
-c |
--contexts |
Comma-separated list of contexts (replaces existing) |
-T |
--tags |
Comma-separated list of tags (replaces existing) |
-sw |
--start-waiting |
New start date of waiting period (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
-ew |
--end-waiting |
New end date of waiting period (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
-ac |
--add-contexts |
Comma-separated list of contexts to add (e.g., 'new_work,urgent_call'). Will append to existing. |
-rc |
--remove-contexts |
Comma-separated list of contexts to remove (e.g., 'old_context'). Will remove from existing. |
-at |
--add-tags |
Comma-separated list of tags to add (e.g., 'new_feature,high_priority'). Will append to existing. |
-rt |
--remove-tags |
Comma-separated list of tags to remove (e.g., 'bug_fix'). Will remove from existing. |
-cp |
--clear-p |
Clear project association |
-cc |
--clear-c |
Clear all context associations |
-cT |
--clear-T |
Clear all tag associations |
-cs |
--clear-s |
Clear start date |
-cD |
--clear-D |
Clear due date |
-cE |
--clear-E |
Clear end date |
-cr |
--clear-r |
Clear recurrence |
-cw |
--clear-wait |
Clear waiting period |
Notes
add-note Add a new note to a task.
| Short | Long | Description |
|---|---|---|
-i |
--task-id |
ID of the task to add a note to (required) |
-d |
--description |
Description of the note (required) |
-ts |
--timestamp |
Timestamp for the note (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
update-note Update an existing note by its permanent database ID.
| Short | Long | Description |
|---|---|---|
-n |
--id |
Permanent database ID of the note to update (as shown in 'list' command) (required) |
-d |
--description |
New description for the note |
-ts |
--timestamp |
New timestamp for the note (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
delete-note Delete one or more notes by ID.
| Short | Long | Description |
|---|---|---|
-I |
--ids |
Comma-separated IDs or ID ranges of notes to delete (e.g., '1,2,3-5,10') |
-a |
--all |
Delete all notes |
-ti |
--task-id |
ID of the task whose notes should be deleted |
-ai |
--all-for-task |
Delete all notes associated with the specified task ID |
List tasks
list List tasks.
| Short | Long | Description |
|---|---|---|
-p |
--project |
Filter by project names (comma-separated) |
-xp |
--exclude-project |
Exclude tasks by project names (comma-separated) |
-c |
--context |
Filter by context names (comma-separated) |
-xc |
--exclude-context |
Exclude tasks by context names (comma-separated) |
-T |
--tag |
Filter by tag names (comma-separated) |
-xT |
--exclude-tag |
Exclude tasks by tag names (comma-separated) |
-st |
--status |
Filter by status (pending, completed, cancelled, waiting, all) (default: pending) |
-sb |
--start-before |
Filter by start date before (YYYY-MM-DD HH:MM:SS) |
-sa |
--start-after |
Filter by start date after (YYYY-MM-DD HH:MM:SS) |
-db |
--due-before |
Filter by due date before (YYYY-MM-DD HH:MM:SS) |
-da |
--due-after |
Filter by due date after (YYYY-MM-DD HH:MM:SS) |
-eb |
--end-before |
Filter by end date before (YYYY-MM-DD HH:MM:SS) |
-ea |
--end-after |
Filter by end date after (YYYY-MM-DD HH:MM:SS) |
-SB |
--sort-by |
Sort by field (id, title, start_date, due_date, status, project, end_date) (default: due_date) |
-o |
--order |
Sort order (asc, desc) (default: asc) |
-f |
--format |
Output format: 0=Full, 1=Condensed, 2=Minimal, 3=Minimal_Mono (default: 0) |
-n |
--notes |
Display notes: 'none', 'all', or a number (e.g., '1', '2' for last N notes) (default: none) |
-i |
--ids |
Comma-separated IDs or ID ranges of tasks to list (e.g., '1,2,3-5,10') |
-S |
--search |
Search for text in task titles, descriptions and notes (case-insensitive) |
Holidays
holiday Manage holidays.
Subcommands for holiday:
| Subcommand | Short | Long | Description |
|---|---|---|---|
add |
-d |
--date |
Date of the holiday (YYYY-MM-DD) (required) |
add |
-n |
--name |
Name of the holiday (required) |
list |
List all holidays. | ||
del |
--ids |
Comma-separated IDs or ID ranges of holidays to delete (e.g., '1,2,3-5,10') | |
del |
--all |
Delete all holidays | |
update |
-i |
--id |
ID of the holiday to update (required) |
update |
-d |
--date |
New date of the holiday (YYYY-MM-DD). Use empty string with flag to clear. |
update |
-n |
--name |
New name of the holiday. Use empty string with flag to clear. |
Working hours
workhours Manage working hours.
Subcommands for workhours:
| Subcommand | Short | Long | Description |
|---|---|---|---|
set |
-d |
--day |
Day of week (0=Sunday, 1=Monday, ..., 6=Saturday) (required) |
set |
-sh |
--start-hour |
Start hour (0-23) (required) |
set |
-sM |
--start-minute |
Start minute (0-59) (default: 0) |
set |
-eh |
--end-hour |
End hour (0-24) (required) |
set |
-eM |
--end-minute |
End minute (0-59) (default: 0) |
set |
-b |
--break-minutes |
Break duration in minutes for this day (default: 0) |
list |
List all defined working hours. | ||
del |
--days |
Comma-separated day of week numbers or ranges to delete working hours for (e.g., '1,2,3-5') | |
del |
--all |
Delete all working hours |
Managers
Only one command needs to be used, and all the sub commands and flags are the same for project, tag and context.
| Command | Sub-command | Short | Long | Description |
|---|---|---|---|---|
project / tag / context
|
add |
-n |
--name |
Add new item with unique name |
project / tag / context
|
del |
-I |
--ids |
Comma-separated IDs or ID ranges of items to delete (e.g., '1,2,3-5,10') |
project / tag / context
|
update |
-i |
--id |
ID of item to update (required) |
-n |
--name |
Add new item wits unique name | ||
project / tag / context
|
list |
List all items |