TODOMAN(1) | Todoman | TODOMAN(1) |
todoman - a simple, standards-based, cli todo manager
todoman [OPTIONS] COMMAND [ARGS]...
Options
Environment variables
Cancel one or more tasks.
todoman cancel [OPTIONS] TODOS...
Arguments
Copy tasks to another list.
todoman copy [OPTIONS] IDS...
Options
Arguments
Delete tasks.
Permanently deletes one or more task. It is recommended that you use the cancel command if you wish to remove this from the pending list, but keep the actual task around.
todoman delete [OPTIONS] IDS...
Options
Arguments
Mark one or more tasks as done.
todoman done [OPTIONS] TODOS...
Arguments
Edit the task with id ID.
todoman edit [OPTIONS] ID
Options
Arguments
Delete done tasks. This will also clear the cache to reset task IDs.
todoman flush [OPTIONS]
Options
List tasks. Filters any completed or cancelled tasks by default.
If no arguments are provided, all lists will be displayed, and only incomplete tasks are show. Otherwise, only todos for the specified list will be displayed.
This is the default action when running
`todo'.
The following commands can further filter shown todos, or include those omited by default:
todoman list [OPTIONS] [LISTS]...
Options
Arguments
Move tasks to another list.
todoman move [OPTIONS] IDS...
Options
Arguments
Create a new task with SUMMARY.
todoman new [OPTIONS] [SUMMARY]...
Options
Arguments
Show details about a task.
todoman show [OPTIONS] ID
Arguments
Todoman is a simple, standards-based, cli todo (aka: task) manager. Todos are stored into icalendar files, which means you can sync them via CalDAV using, for example, vdirsyncer.
Todoman usage is CLI based (thought there are some TUI bits, and the intentions is to also provide a fully TUI-based interface).
The default action is list, which outputs all tasks for all calendars, each with a semi-permanent unique id:
1 [ ] !!! 2015-04-30 Close bank account @work (0%) 2 [ ] ! Send minipimer back for warranty replacement @home (0%) 3 [X] 2015-03-29 Buy soy milk @home (100%) 4 [ ] !! Fix the iPad's screen @home (0%) 5 [ ] !! Fix the Touchpad battery @work (0%)
The columns, in order, are:
The id is retained by todoman until the next time you run the flush command.
To operate on a todo, the id is what's used to reference it. For example, to edit the Buy soy milk task from the example above, the proper command is todoman edit 3, or todoman undo 3 to un-mark the task as done.
Editing tasks can only be done via the TUI interface for now, and cannot be done via the command line yet.
If you want to synchronize your tasks, you'll need something that syncs via CalDAV. vdirsyncer is the recommended tool for this.
If you install click-repl, todoman gets a new command called repl, which launches an interactive shell with tab-completion.
When attempting to integrate todoman into other systems or parse its output, you're advised to use the --porcelain flag, which will print all output in a pre-defined format that will remain stable regardless of user configuration or version.
The format is JSON, with a single array containing each todo as a single entry (object). Fields will always be present; if a todo does not have a value for a given field, it will be printed as null.
Fields MAY be added in future, but will never be removed.
The tasks can be sorted with the --sort argument. Sorting may be done according to the following fields:
You'll need to configure Todoman before the first usage, using its simple ini-like configuration file.
The configuration file should be placed in $XDG_CONFIG_DIR/todoman/todoman.conf. $XDG_CONFIG_DIR defaults to ~/.config is most situations, so this will generally be ~/.config/todoman/todoman.conf.
If false, datetimes fill be formatted using date_format and time_format.
The below example should serve as a reference. It will read ics files from any directory inside ~/.local/share/calendars/, uses the ISO-8601 date format, and set the due date for new todos in 48hs.
[main] # A glob expression which matches all directories relevant. path = ~/.local/share/calendars/* date_format = %Y-%m-%d time_format = %H:%M default_list = Personal default_due = 48
See also this discussion about metadata for collections in vdirsyncer.
Todoman will use the system-wide configured timezone. If this doesn't work for you, you _may_ override the timezone by specifying the TZ environment variable.
For instruction on changing your system's timezone, consult your distribution's documentation.
Support for the percent-completed attribute is incomplete. Todoman can only mark todos as completed (100%), and will not reflect nor allow editing for values for percent > 0 ^ percent < 100.
For information on contributing, see: https://todoman.readthedocs.io/en/stable/contributing.html
Todoman is licensed under the ISC licence. See LICENCE for details.
Hugo Osvaldo Barrera <hugo@barrera.io>, et al
2015-2020, Hugo Osvaldo Barrera
December 20, 2020 | 3.9.0 |