So I’ve fleshed na out into a pretty great tool for querying and adding to a TaskPaper file, making it easy to manage having a todo list in every project directory I work in. But there was one thing I couldn’t do quickly from the command line: mark a task as completed.
As of version 1.2, na can now perform actions on tasks based on a quick text/tag search. Just run
na update -a Do that thing and it will find an entry containing “do,” “that,” and “thing”, mark it @done, and archive it. See
na help update for a full list of actions you can perform — everything from adding/removing tags to completing/deleting/archiving. You can even add notes to existing actions. It’s pretty nifty. There are still plenty of times where it’s faster to just open up TaskPaper or load the todo file in my editor with a TaskPaper extension, but for quick one-offs I no longer have to leave the command line.
By the way, the update command works best if you have
fzf installed. You can get it with
brew install fzf. It will fall back to
gum and then to a readline interface, but
fzf will give you the most elegant menus1.
There are also new commands for viewing project hierarchies, listing todo file history, seeing the changelog, and more. Check out the docs!
If this is the feature that finally got you to install na, see the Installation instructions in the docs. It’s a gem, so the simplest install is
gem install na, but there are tips for using
brew gem in there as well.
If you’re already using na, you can update to v1.2.x using
gem upgrade na or
brew gem upgrade na, depending on how you installed it.
na add --tonow specifies a project,
--inspecifies a todo file
--deletefor saved searches (
na add --todo FILEwill match any known todo file when adding an action
na add --project PROJwill match any existing project when adding an action
na update [options] search stringwill update an existing task, moving it between projects, adding and removing tags, marking finished, setting priority, adding/replacing notes, or archiving it
--tagged TAGflag for
na updatesearches by tag/value
na projectswill list all projects in a todo file, optional argument to query known todos
--donetag to next/find/tagged to include @done actions in the output
na changesto view the changelog and see recent changes
- A parenthetical at the end of an action will be interpreted as a note. If –note is additionally supplied, entered note is concatenated to parenthetical note.
- Allow multi-line notes
- Include arguments with
na editto narrow down which file to edit (partial matching)
- Improved handling of todo file search arguments for
- If todo file search returns zero results, loosen search
- When using !negations in todo matching, allow the negation to match any part of the path, not just last element
- Full token matching when using
na todos QUERY
- Offer gum and readline fallbacks for fzf menu with
--overwriteoption when adding a note using
na update(defaults to append)
- Allow multiple file selections for
- Display “Inbox” as a parent
- You can run
na SAVED_SEARCHusing any saved search (same as running
na saved SAVED_SEARCHbut niftier)
- Unable to search for next action tag with
na add --prioritybeing interpreted as note
- Immediately save created todo files to history
- Project regex
- Error when an action contains a left curly brace
- Don’t show @done tasks unless specifically searched for
Doing can install fzf itself, but this project is significantly smaller than Doing and I think people can take responsibility for their own prerequisites. ↩