I went on a trip to Minneapolis this weekend. It went really well; I saw some great friends, ate some great food, and spent some early mornings coding at the hotel. I was just coding to kill time when I couldn’t sleep, and playing with na seemed like the perfect way to do it.

The first thing I did was take a second stab at “decomposing” the main binary so that each command had its own file, just to make maintenance easier. Finally got that working properly. It won’t change anything for the user, but it’s so much nicer to look at.

In addition to the complete and archive commands I added last week, the update command now has a --restore flag that can be used to remove the @done tag from an action or actions. It’s the same as using --remove done, but I find it just a little more intuitive. This flag is mirrored as an na restore [SEARCH] (or na unfinish [SEARCH]) command.

I also added pagination, so for output that is longer than your screen, it will now pause using less or more if available, letting you page through with shortcut keys. This also applies to the help command, so it’s easier to wade through the extensive documentation that the command provides. You can disable this with na --no-pager [COMMAND], a setting which can be saved to your config.

I added an na completed command to view @done actions. It accepts --before, --on, and --after flags that recognize natural language dates and can be combined. You can also use --tagged TAG to find actions tagged with any combination of tags (use comma separated list or use the flag multiple times, include a + to make a tag mandatory, ! to negate). Any arguments passed to the command will function as a tokenized text search. And, of course, you can run it with --save [NAME] to save a complex search for later use with the na saved command.

Speaking of saved searches, I also changed the saved command to allow multiple saved searches to run at once. So now if you have a saved search for low priority and one for medium priority, you can run them both together with na saved lowprio medprio and get combined results.

Also:

  • --done flag not working on na next
  • Missing descriptions in help examples
  • When replacing a priority tag, remove any space before it the action text
  • Detect @tags in search strings and convert them to tag search with comparisons

Check out the project page for installation and usage details.