Doing - All Commands

doing: A CLI for a What Was I Doing system

v1.0.60

Table of Contents

Global Options

--config_file arg
Use a specific configuration file
Default Value: /Users/ttscoff/.doingrc
-f|--doing_file arg
Specify a different doing_file
Default Value: None
--help
Show this message
--[no-]notes
Output notes if included in the template
--stdout
Send results report to STDOUT instead of STDERR
--version
Display the program version
-x|--[no-]noauto
Exclude auto tags and default tags

Commands

add_section SECTION_NAME

Add a new section to the “doing” file

again (or resume)

Repeat last entry as new entry

Options
--bool BOOLEAN
Boolean used to combine multiple tags
Default Value: AND
Must Match: (?i-mx:^(and|or|not)$)
--in SECTION_NAME
Add new entry to section (default: same section as repeated entry)
Default Value: None
-n|--note TEXT
Note
Default Value: None
-s|--section NAME
Section
Default Value: All
--search QUERY
Repeat last entry matching search. Surround with slashes for regex (e.g. “/query/”).
Default Value: None
--tag TAG
Repeat last entry matching tags. Combine multiple tags with a comma.
Default Value: None

archive SECTION_NAME

Move entries between sections

Options
--bool BOOLEAN
Tag boolean (AND|OR|NOT)
Default Value: AND
Must Match: (?i-mx:(and|or|not))
-k|--keep COUNT
Count to keep (ignored if archiving by tag)
Default Value: 5
Must Match: (?-mix:^\d+$)
-t|--to SECTION_NAME
Move entries to
Default Value: Archive
--tag TAG
Tag filter, combine multiple tags with a comma. Added for compatibility with other commands.
Default Value: None

cancel COUNT

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.

Options
--bool BOOLEAN
Boolean (AND|OR|NOT) with which to combine multiple tag filters
Default Value: AND
Must Match: (?i-mx:^(and|or|not)$)
-s|--section NAME
Section
Default Value: Currently
--tag TAG
Cancel the last X entries containing TAG. Separate multiple tags with comma (–tag=tag1,tag2)
Default Value: None
-a|--archive
Archive entries

choose

Select a section to display from a menu

colors

List available color variables for configuration templates and views

config

Edit the configuration file

Options
-a APP_NAME
Application to use
Default Value: None
-b BUNDLE_ID
Application bundle id to use
Default Value: None
-e|--editor EDITOR
Editor to use
Default Value: None
-x
Use the config_editor_app defined in ~/.doingrc (Sublime Text)

done (or did) ENTRY

Add a completed item with @done(date). No argument finishes last entry.

Options
--at DATE_STRING
Set finish date to specific date/time (natural langauge parsed, e.g. –at=1:30pm). If used, ignores –back. Used with –took, backdates start date
Default Value: None
-b|--back DATE_STRING
Backdate start date by interval [4pm|20m|2h|yesterday noon]
Default Value: None
-s|--section NAME
Section
Default Value: Currently
-t|--took INTERVAL
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.
Default Value: None
-a|--archive
Immediately archive the entry
--[no-]date
Include date
-e|--editor
Edit entry with /Users/ttscoff/scripts/editor.sh
-r|--remove
Remove @done tag

finish COUNT

Mark last X entries as @done

Marks the last X entries with a @done tag and current date. Does not alter already completed entries.

Options
-b|--back DATE_STRING
Backdate completed date to date string [4pm|20m|2h|yesterday noon]
Default Value: None
--bool BOOLEAN
Boolean (AND|OR|NOT) with which to combine multiple tag filters
Default Value: AND
Must Match: (?i-mx:^(and|or|not)$)
-s|--section NAME
Section
Default Value: Currently
--search QUERY
Finish the last X entries matching search filter, surround with slashes for regex (e.g. “/query.*/”)
Default Value: None
-t|--took INTERVAL
Set the completed date to the start date plus XX[hmd]
Default Value: None
--tag TAG
Finish the last X entries containing TAG. Separate multiple tags with comma (–tag=tag1,tag2), combine with –bool
Default Value: None
-a|--archive
Archive entries
--auto
Auto-generate finish dates from next entry’s start time. Automatically generate completion dates 1 minute before next start date. –auto overrides the –date and –back parameters.
--[no-]date
Include date

grep (or search) SEARCH_PATTERN

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/'

Options
-o|--output FORMAT
Output to export format (csv|html|json|template|timeline)
Default Value: None
Must Match: (?i-mx:^(template|html|csv|json|timeline)$)
-s|--section NAME
Section
Default Value: All
--tag_sort KEY
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(name|time)$)
--only_timed
Only show items with recorded time intervals
-t|--[no-]times
Show time intervals on @done tasks
--[no-]totals
Show intervals with totals at the end of output

help command

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

Options
-c
List commands one per line, to assist with shell completion

last

Show the last entry, optionally edit

Options
--bool BOOLEAN
Tag boolean
Default Value: AND
Must Match: (?i-mx:(and|or|not))
-s|--section NAME
Specify a section
Default Value: All
--search QUERY
Search filter, surround with slashes for regex (/query/)
Default Value: None
--tag TAG
Tag filter, combine multiple tags with a comma.
Default Value: None
-e|--editor
Edit entry with /Users/ttscoff/scripts/editor.sh

later ENTRY

Add an item to the Later section

Options
-a|--app APP
Edit entry with specified app
Default Value: None
-b|--back DATE_STRING
Backdate start time to date string [4pm|20m|2h|yesterday noon]
Default Value: None
-n|--note TEXT
Note
Default Value: None
-e|--editor
Edit entry with /Users/ttscoff/scripts/editor.sh

mark (or flag)

Mark last entry as highlighted

Options
-s|--section NAME
Section
Default Value: Currently
-r|--remove
Remove mark

meanwhile ENTRY

Finish any running @meanwhile tasks and optionally create a new one

Options
-b|--back DATE_STRING
Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]
Default Value: None
-n|--note TEXT
Note
Default Value: None
-s|--section NAME
Section
Default Value: Currently
-a|--[no-]archive
Archive previous @meanwhile entry
-e|--editor
Edit entry with /Users/ttscoff/scripts/editor.sh

note NOTE_TEXT

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.

Options
-s|--section NAME
Section
Default Value: All
-e|--editor
Edit entry with /Users/ttscoff/scripts/editor.sh
-r|--remove
Replace/Remove last entry’s note (default append)

now (or next) ENTRY

Add an entry

Options
-b|--back DATE_STRING
Backdate start time [4pm|20m|2h|yesterday noon]
Default Value: None
-n|--note TEXT
Note
Default Value: None
-s|--section NAME
Section
Default Value: Currently
-e|--editor
Edit entry with /Users/ttscoff/scripts/editor.sh
-f|--finish_last
Timed entry, marks last entry in section as @done

on DATE_STRING

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.

Options
-o|--output FORMAT
Output to export format (csv|html|json|template|timeline)
Default Value: None
Must Match: (?i-mx:^(template|html|csv|json|timeline)$)
-s|--section NAME
Section
Default Value: All
--tag_sort KEY
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(name|time)$)
-t|--[no-]times
Show time intervals on @done tasks
--[no-]totals
Show time totals at the end of output

open

Open the “doing” file in an editor

doing open defaults to using the editor_app setting in /Users/ttscoff/.doingrc (Taskpaper)

Options
-a APP_NAME
Open with app name
Default Value: None
-b BUNDLE_ID
Open with app bundle id
Default Value: None
-e|--editor
Open with $EDITOR (/Users/ttscoff/scripts/editor.sh)

recent COUNT

List recent entries

Options
-s|--section NAME
Section
Default Value: All
--tag_sort KEY
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(name|time)$)
-t|--[no-]times
Show time intervals on @done tasks
--[no-]totals
Show intervals with totals at the end of output

sections

List sections

Options
-c|--[no-]column
List in single column

show [SECTION|@TAGS]

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.

Options
-a|--age AGE
Age (oldest/newest)
Default Value: newest
-b|--bool BOOLEAN
Tag boolean (AND,OR,NONE)
Default Value: OR
Must Match: (?i-mx:^(and|or|not)$)
-c|--count MAX
Max count to show
Default Value: 0
-f|--from DATE_OR_RANGE
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"

Default Value: None

-o|--output FORMAT
Output to export format (csv|html|json|template|timeline)
Default Value: None
Must Match: (?i-mx:^(template|html|csv|json|timeline)$)
-s|--sort ORDER
Sort order (asc/desc)
Default Value: ASC
Must Match: (?i-mx:^(a|d))
--tag TAG
Tag filter, combine multiple tags with a comma. Added for compatibility with other commands.
Default Value: None
--tag_sort KEY
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(name|time))
--only_timed
Only show items with recorded time intervals
-t|--[no-]times
Show time intervals on @done tasks
--[no-]totals
Show intervals with totals at the end of output

tag TAG…

Add tag(s) to last entry

Options
-c|--count COUNT
How many recent entries to tag (0 for all)
Default Value: 1
-s|--section SECTION_NAME
Section
Default Value: All
-a|--autotag
Autotag entries based on autotag configuration in ~/.doingrc
-d|--date
Include current date/time with tag
-r|--remove
Remove given tag(s)

template TYPE

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

today

List entries from today

Options
-o|--output FORMAT
Output to export format (csv|html|json|template|timeline)
Default Value: None
Must Match: (?i-mx:^(template|html|csv|json|timeline)$)
-s|--section NAME
Specify a section
Default Value: All
--tag_sort KEY
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(name|time)$)
-t|--[no-]times
Show time intervals on @done tasks
--[no-]totals
Show time totals at the end of output

undo

Undo the last change to the doing_file

Options
-f|--file PATH
Specify alternate doing file
Default Value: None

view VIEW_NAME

Display a user-created view

Options
-c|--count COUNT
Count to display (override view settings)
Default Value: None
Must Match: (?-mix:^\d+$)
-o|--output FORMAT
Output to export format (csv|html|json|template|timeline)
Default Value: None
Must Match: (?i-mx:^(template|html|csv|json|timeline)$)
-s|--section NAME
Section (override view settings)
Default Value: None
--tag_sort KEY
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(name|time)$)
--[no-]color
Include colors in output
--[no-]only_timed
Only show items with recorded time intervals
-t|--[no-]times
Show time intervals on @done tasks
--[no-]totals
Show intervals with totals at the end of output

views

List available custom views

Options
-c|--[no-]column
List in single column

yesterday

List entries from yesterday

Options
-o|--output FORMAT
Output to export format (csv|html|json|template|timeline)
Default Value: None
Must Match: (?i-mx:^(template|html|csv|json|timeline)$)
-s|--section NAME
Specify a section
Default Value: All
--tag_sort KEY
Sort tags by (name|time)
Default Value: name
Must Match: (?i-mx:^(name|time)$)
-t|--[no-]times
Show time intervals on @done tasks
--[no-]totals
Show time totals at the end of output

Default Command: recent