A CLI for a What Was I Doing system
v1.0.90
Use a specific configuration file
Default Value: ~/.doingrc
Specify a different doing_file
Show this message
Output notes if included in the template
Send results report to STDOUT instead of STDERR
Display the program version
Exclude auto tags and default tags
Add a new section to the "doing" file
Repeat last entry as new entry
Boolean used to combine multiple tags
Default Value: AND
Must Match: (?i-mx:and|all|any|or|not|none)
Add new entry to section (default: same section as repeated entry)
Note
Section
Default Value: All
Repeat last entry matching search. Surround with slashes for regex (e.g. "/query/").
Repeat last entry matching tags. Combine multiple tags with a comma.
Move entries between sections
Archive entries older than date (Flexible date format, e.g. 1/27/2021, 2020-07-19, or Monday 3pm)
Tag boolean (AND|OR|NOT)
Default Value: AND
Must Match: (?i-mx:and|all|any|or|not|none)
How many items to keep (ignored if archiving by tag or search)
Must Match: (?-mix:^\d+$)
Search filter
Move entries to
Default Value: Archive
Tag filter, combine multiple tags with a comma. Added for compatibility with other commands.
Label moved items with @from(SECTION_NAME)
End last X entries with no time tracked
Adds @done tag without datestamp so no elapsed time is recorded. Alias for
doing finish --no-date
.
Boolean (AND|OR|NOT) with which to combine multiple tag filters
Default Value: AND
Must Match: (?i-mx:and|all|any|or|not|none)
Section
Cancel the last X entries containing TAG. Separate multiple tags with comma (--tag=tag1,tag2)
Archive entries
Cancel last entry (or entries) not already marked @done
Select a section to display from a menu
List available color variables for configuration templates and views
Edit the configuration file
Application to use
Application bundle id to use
Editor to use
Use the config_editor_app defined in ~/.doingrc (Sublime Text)
Add a completed item with @done(date). No argument finishes last entry.
Set finish date to specific date/time (natural language parsed, e.g. --at=1:30pm). If used, ignores --back. Used with --took, backdates start date
Backdate start date by interval [4pm|20m|2h|yesterday noon]
Section
Set completion date to start date plus interval (XX[mhd] or HH:MM). If used without the --back option, the start date will be moved back to allow the completion date to be the current time.
Immediately archive the entry
Include date
Edit entry with $EDITOR
Remove @done tag
Mark last X entries as @done
Marks the last X entries with a @done tag and current date. Does not alter already completed entries.
Set finish date to specific date/time (natural language parsed, e.g. --at=1:30pm). If used, ignores --back.
Backdate completed date to date string [4pm|20m|2h|yesterday noon]
Boolean (AND|OR|NOT) with which to combine multiple tag filters
Default Value: AND
Must Match: (?i-mx:and|all|any|or|not|none)
Section
Finish the last X entries matching search filter, surround with slashes for regex (e.g. "/query.*/")
Set the completed date to the start date plus XX[hmd]
Finish the last X entries containing TAG. Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool
Archive entries
Auto-generate finish dates from next entry's start time. Automatically generate completion dates 1 minute before next item (in any section) began. --auto overrides the --date and --back parameters.
Include date
Finish last entry (or entries) not already marked @done
Search for entries
Search all sections (or limit to a single section) for entries matching text or regular expression. Normal strings are fuzzy matched.
To search with regular expressions, single quote the string and surround with slashes:
doing search '/\bm.*?x\b/'
Constrain search to entries newer than date
Constrain search to entries older than date
Output to export format (csv|html|json|template|timeline)
Must Match: (?i-mx:^(?:template|html|csv|json|timeline)$)
Section
Default Value: All
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(?:name|time)$)
Only show items with recorded time intervals
Show time intervals on @done tasks
Show intervals with totals at the end of output
Shows a list of commands or help for one command
Gets help for the application or its commands. Can also list the commands in a way helpful to creating a bash-style completion function
List commands one per line, to assist with shell completion
Import entries from an external source
Imports entries from other sources. Currently only handles JSON reports exported from Timing.app.
Prefix entries with
Target section
Tag all imported entries
Import type
Default Value: timing
Autotag entries
Allow entries that overlap existing times
Show the last entry, optionally edit
Tag boolean
Default Value: AND
Must Match: (?i-mx:and|all|any|or|not|none)
Specify a section
Default Value: All
Search filter, surround with slashes for regex (/query/)
Tag filter, combine multiple tags with a comma.
Edit entry with $EDITOR
Add an item to the Later section
Backdate start time to date string [4pm|20m|2h|yesterday noon]
Note
Edit entry with $EDITOR
Mark last entry as highlighted
Section
Remove mark
Mark last entry not marked @done
Finish any running @meanwhile tasks and optionally create a new one
Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
Note
Section
Archive previous @meanwhile entry
Edit entry with $EDITOR
Add a note to the last entry
If -r is provided with no other arguments, the last note is removed. If new content is specified through arguments or STDIN, any previous note will be replaced with the new one.
Use -e to load the last entry in a text editor where you can append a note.
Section
Default Value: All
Edit entry with $EDITOR
Replace/Remove last entry's note (default append)
Add an entry
Backdate start time [4pm|20m|2h|yesterday noon]
Note
Section
Edit entry with $EDITOR
Timed entry, marks last entry in section as @done
List entries for a date
Date argument can be natural language. "thursday" would be interpreted as "last thursday," and "2d" would be interpreted as "two days ago." If you use "to" or "through" between two dates, it will create a range.
Output to export format (csv|html|json|template|timeline)
Must Match: (?i-mx:^(?:template|html|csv|json|timeline)$)
Section
Default Value: All
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(?:name|time)$)
Show time intervals on @done tasks
Show time totals at the end of output
Open the "doing" file in an editor
doing open
defaults to using the editor_app setting in ~/.doingrc (TaskPaper)
Open with app name
Open with app bundle id
Open with $EDITOR ($EDITOR)
List recent entries
Section
Default Value: All
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(?:name|time)$)
Show time intervals on @done tasks
Show intervals with totals at the end of output
Move entries to archive file
Rotate entries older than date (Flexible date format, e.g. 1/27/2021, 2020-07-19, or Monday 3pm)
Tag boolean (AND|OR|NOT)
Default Value: AND
Must Match: (?i-mx:and|all|any|or|not|none)
How many items to keep in each section (most recent)
Must Match: (?-mix:^\d+$)
Section to rotate
Default Value: All
Search filter
Tag filter, combine multiple tags with a comma. Added for compatibility with other commands.
List sections
List in single column
Display an interactive menu to perform operations (requires fzf)
List all entries and select with type-ahead fuzzy matching.
Multiple selections are allowed, hit tab to add the highlighted entry to the selection. Return processes the selected entries.
Move selected items to section
Output entries to format (doing|taskpaper|csv|html|json|template|timeline)
Must Match: (?i-mx:^(?:doing|taskpaper|html|csv|json|template|timeline)$)
Initial search query for filtering. Matching is fuzzy. For exact matching, start query with a single quote, e.g. `--query "'search"
Select from a specific section
Save selected entries to file using --output format
Tag selected entries
Archive selected items
Cancel selected items (add @done without timestamp)
Delete selected items
Edit selected item(s)
Add @done with current time to selected item(s)
Add flag to selected item(s)
Perform action without confirmation.
Use --no-menu to skip the interactive menu. Use with --query to filter items and act on results automatically. Test with --output doing
to preview matches.
Reverse -c, -f, --flag, and -t (remove instead of adding)
List all entries
The argument can be a section name, @tag(s) or both. "pick" or "choose" as an argument will offer a section menu.
Age (oldest|newest)
Default Value: newest
View entries newer than date
Tag boolean (AND,OR,NOT)
Default Value: OR
Must Match: (?i-mx:and|all|any|or|not|none)
View entries older than date
Max count to show
Default Value: 0
Date range to show, or a single day to filter date on.
Date range argument should be quoted. Date specifications can be natural language.
To specify a range, use "to" or "through": doing show --from "monday to friday"
Output to export format (csv|html|json|template|timeline)
Must Match: (?i-mx:^(?:template|html|csv|json|timeline)$)
Sort order (asc/desc)
Default Value: ASC
Must Match: (?i-mx:^[ad].*)
Search filter, surround with slashes for regex (/query/)
Tag filter, combine multiple tags with a comma. Added for compatibility with other commands.
Tag sort direction (asc|desc)
Must Match: (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(?:name|time))
Only show items with recorded time intervals
Show time intervals on @done tasks
Show intervals with totals at the end of output
List entries since a date
Date argument can be natural language and are always interpreted as being in the past. "thursday" would be interpreted as "last thursday," and "2d" would be interpreted as "two days ago."
Output to export format (csv|html|json|template|timeline)
Must Match: (?i-mx:^(?:template|html|csv|json|timeline)$)
Section
Default Value: All
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(?:name|time)$)
Show time intervals on @done tasks
Show time totals at the end of output
Add tag(s) to last entry
Boolean (AND|OR|NOT) with which to combine multiple tag filters
Default Value: AND
Must Match: (?i-mx:and|all|any|or|not|none)
How many recent entries to tag (0 for all)
Default Value: 1
Section
Default Value: All
Tag entries matching search filter, surround with slashes for regex (e.g. "/query.*/")
Tag the last X entries containing TAG. Separate multiple tags with comma (--tag=tag1,tag2), combine with --bool
Autotag entries based on autotag configuration in ~/.doingrc
Include current date/time with tag
Don't ask permission to tag all entries when count is 0
Remove given tag(s)
Tag last entry (or entries) not marked @done
Output HTML and CSS templates for customization
Templates are printed to STDOUT for piping to a file. Save them and use them in the configuration file under html_template.
Example
doing template HAML > ~/styles/my_doing.haml
List entries from today
View entries after specified time (e.g. 8am, 12:30pm, 15:00)
View entries before specified time (e.g. 8am, 12:30pm, 15:00)
Output to export format (csv|html|json|template|timeline)
Must Match: (?i-mx:^(?:template|html|csv|json|timeline)$)
Specify a section
Default Value: All
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(?:name|time)$)
Show time intervals on @done tasks
Show time totals at the end of output
Undo the last change to the doing_file
Specify alternate doing file
Display a user-created view
Command line options override view configuration
View entries newer than date
Tag boolean (AND,OR,NOT)
Default Value: OR
Must Match: (?i-mx:and|all|any|or|not|none)
View entries older than date
Count to display
Must Match: (?-mix:^\d+$)
Output to export format (csv|html|json|template|timeline)
Must Match: (?i-mx:^(?:template|html|csv|json|timeline)$)
Section
Search filter, surround with slashes for regex (/query/)
Tag filter, combine multiple tags with a comma.
Tag sort direction (asc|desc)
Must Match: (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
Sort tags by (name|time)
Must Match: (?i-mx:^(?:name|time)$)
Include colors in output
Only show items with recorded time intervals (override view settings)
Show time intervals on @done tasks
Show intervals with totals at the end of output
List available custom views
List in single column
List entries from yesterday
View entries after specified time (e.g. 8am, 12:30pm, 15:00)
View entries before specified time (e.g. 8am, 12:30pm, 15:00)
Output to export format (csv|html|json|template|timeline)
Must Match: (?i-mx:^(?:template|html|csv|json|timeline)$)
Specify a section
Default Value: All
Tag sort direction (asc|desc)
Must Match: (?i-mx:^(?:a(?:sc)?|d(?:esc)?)$)
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(?:name|time)$)
Show time intervals on @done tasks
Show time totals at the end of output
Documentation generated 2021-10-15 05:03