Skip to content

πŸš€ Usage

igorp74 edited this page Jan 23, 2026 · 7 revisions

Usage

Usage: todo [global options] <command> [command options]

Global Options

--db-path Custom path and name for the database file (e.g., /path/to/my/todo.db)

Commands

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

Clone this wiki locally