A time-tracking utility for use with todo.txt based on punch-time-tracking.
Punch is a time-tracking add-on for todo.txt - a command line to-do list list utility. Punch works alongside the todo.txt script files popularized by Life Hacker and todotxt.org. All time tracking info is kept in a separate file, so no harm is done to the todo.txt system. It does use your todo.cfg file and todo.txt file to streamline time tracking.
Punch uses a punch clock metaphor to track where you are spending your time.
For example, if your to-do list looks like this...
$ t ls
02 Call Steve about subcontracting gig @Steve +Acme
03 Prepare invoices for February
01 Prepare project proposal for Acme +Acme
--
TODO: 3 tasks in C:/cygwin/home/Keith/todo/todo.txt.
...you would start keeping time for a given task like this:
$ punch in 1
Start timer on: Prepare project proposal for Acme +Acme
When switching your focus, simply punch in again:
$ punch in 2
Stop timer on: Prepare project proposal for Acme +Acme
Start timer on: Call Steve about subcontracting gig @Steve +Acme
And when finished, punch out:
$ punch out
Stop timer on: Call Steve about subcontracting gig @Steve +Acme
To get a report of what you have worked on, use the report command. Time spent on tasks is summed up daily.
$ punch rep
2009-03-12:
Prepare project proposal for Acme +Acme (22 minutes)
2009-03-14:
Call Steve about subcontracting gig @Steve +Acme (0 minutes)
Prepare invoices for February (31 minutes)
Prepare project proposal for Acme +Acme (1 minutes)
2009-03-16:
Prepare project proposal for Acme +Acme (1 minutes)
Punch requires Python. Punch is a work in progress. Feel free to suggest enhancements you'd like to see.