I'm looking for a command line tool that I can use for creating templates that I can instantiate, annotate, and view the instantiation's historical annotations.

For example, every Sunday I do my shopping for the next week. To do this, I look at a master grocery list and create a subset of this list composed of the items I'm in need of. I take this list to the store and after I'm back, would like to record the price of each item. Then be able to look at the historical prices of items on my master list.

Another example. Everyday I do some basic exercises that in general do not change. However, my sets, reps, and weights do change. I'd like to be able to instantiate a workout from a master workout and annotate those numbers, then be able to look at the historical progress.

As a final example, I have a list of chores / things that I need to regularly attend to. However when I set aside time to do them, I may not get to all of these chores. I'd like to have a master chores list from which I can pick what I plan on doing from the day then annotate them with perhaps how long they took or anything else I may be interested in.

Does there exist a tool that can perform this kind of templating, template-child annotation, and provide a historical view? I stumbled across Taskwarrior but that doesn't seem to fit the feature-list.


2 Answers 2


Create the file you want as a template. Then create a Batch file as follows. I'm using the "chores" as an example:

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
copy chores chores%YYYY%%MM%%DD%.txt
start chores%YYYY%%MM%%DD%.txt

This will create a copy of the template, give it a file name which has the date included, so that you have the historical data. You can then edit the new file as you like.

Above solution should be locale-aware and give good results on any language of Windows. It's and . It's not specific, but of course you can use it for that.


It might not be the best application for your intended plans, though you could use taskwarrior:


For the listed groceries task you could either:

  1. create a list of template tasks for the activities you mentioned, then add the user defined attribute UDA and specify their datatype e.g.
task config uda.grocery_item.type string
task config uda.grocery_price.type numeric

and then copy the tasks from the template that you selected with task duplicate

  1. Or you could create a template set of recurring (each week) tasks per project (groceries, training etc) tasks and apply negative selection; delete the tasks representing the items you don't want to use that week.


For weight training you could copy and modify the template tasks of groceries with different udas. However, in my experience, in particular when it comes to lifting weights weightxreps or open training are more convenient and provide a more tailored to the purpose and provide a more information rich interface.


For the chores you could use taskwarrior with the negative selection and recurrent tasks (task delete 3,4,5) if you can't do tasks 3,4 and 5 that week). Or again copy the tasks you do want to do from the template tasks (and give them a due date, e.g. task 2 due:2020-09-30T13:45).

I'd like to stress that there might be better ways of doing this with other applications, it is just an example of how you could implement your plan with tw.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.