The doing CLI that I announced yesterday has been more warmly received than I expected. I’ll share expansions and updates to it as they happen. If you’ve already installed doing with gem install doing, you can update with the latest features using gem update doing. Fresh installs will get them by default.

New “done” command

I just added one: a doing done command for automatically marking an entry complete and optionally sending it straight to the Archive section.

If I’m recording a task I’ve just finished, I can use doing done added new done command to doing and create a task that includes a TaskPaper-style @done tag, compete with the current date. This command can optionally take a -a switch to immediately send it to the “Archive” section, or use -s SECTION to specify your own destination.

I like to use my WWID file as a record at the end of the week, but I’ve found that half my entries are projects I’m starting, and the other half are notes that I’ve finished a task or project. Being able to separate them as I enter them means easier review later.

Specify count when archiving

doing archive -k X later will now archive the “Later” section, keeping X entries instead of the old hardwired 5. You can specify a section to archive as shown, or leave it blank to default to the “Currently” section.

Custom views

You can now create your own views in the ~/.doingrc file and view them with doing view view_name. Just add a section like this:

views:
  old:
    section: Old
    count: 5
    wrap_width: 0
    date_format: '%F %_I:%M%P'
    template: '%date | %title%note'

By the way, you can get to this configuration file easily with done config, which will use $EDITOR by default. You can override that and choose your own editor with -e editor, which must be a valid Unix executable (like subl or mate).

You can add additional custom views, just nest them under the “views” key (indented two spaces from the edge). Multiple views would look like this:

views:
  mine:
    section: Later
    count: 5
    wrap_width: 60
    date_format: '%F %_I:%M%P'
    template: '%date | %title%note'
  old:
    section: Old
    count: 5
    wrap_width: 0
    date_format: '%F %_I:%M%P'
    template: '%date | %title%note'

The “section” key is the default section to pull entries from. Count and section can be overridden at runtime with the -c and -s flags.

You can also now easily add new sections with done add_section section_name. You can also create them on the fly by using the -s section_name flag when running doing now. For example, doing now -s Misc just a random side note would create the “just a random side note” entry in the section called “Misc,” creating it if it doesn’t exist.

Launchbar

The previous incarnation of doing had a LaunchBar companion that I used frequently. The Day One popup has mostly replaced that for me, but only because I have a system that connects it to my WWID file. However, I’ve still found a place for adding WWID entries without including them in my journal, and LaunchBar is the perfect way to do that for me.

All you need is an AppleScript saved at “~/Library/Application Support/LaunchBar/Actions/Doing.scpt”. It should look like this:

on handle_string(message)
	-- get the input from LaunchBar
	if message is "?" then
		-- if the input is just "?" display the last three entries
		set _doing to do shell script "/usr/bin/doing recent 3"
		tell application "LaunchBar" to display in large type _doing
	else
		-- otherwise, create a new entry using the input
		do shell script "/usr/bin/doing now " & quoted form of message
	end if
	
end handle_string

I’m certain intrepid souls can make that simple script work fine with Alfred as well.

That’s it for now. See the doing project page for full instructions and details. I’m certainly open to feedback on this tool. Based on Twitter and my email, this is something more people need than I had guessed. Please post issues, discussions and requests on GitHub.