Deliciously-minimal time tracker for the command-line. Built on Node.js.
Frictionless time logging.
> Start by typing
t shopping in the grocery.
Everything in the terminal.
> It's a Node.js command-line app that runs anywhere Node can. Even Windows!
Natural language parsing.
> All commands are composed in such a way as if you're talking to timetip.
t Meeting 3 minutes ago.
For humans who love text editors.
> Logs are stored in a simple human-editable format that you're encouraged to edit yourself.
Install it via npm:
npm install -g timetip
To make things easier, add this to your
alias t="timetip --file ~/.timelogs"
Note: the examples below assume that you have the alias above. If you choose
not to to use it, assume that the
t below is
Log a task by typing
t <thing-to-do>. (By convention, the first word
is ideally the project name). For instance:
$ t Jsconf email speakers# ...starts the task "Jsconf email speakers"
Stop it using
$ t stop# ...stops the current task
You may also issue a reason to stop:
$ t stop coffee break# ...stops the current task for the reason of "coffee break"
View the status with simply
$ tseptember 18, 2013 total 1h 15m1:30pm Jsconf email speakers 52m2:22pm ⋅ coffee break 8m2:30pm Jsconf check ticket sales 1h 5m3:35pm ⋅ break 14m3:49pm ✓ Errands grocery ⋅⋅ now
Oops. Did you start working and forget to run your timer? No problem, just use
add an offset in the format
<duration> ago, or specify the time. Example:
$ t Misc coffee 3m ago# ...starts "Misc coffee" as if you ran it 3 mins ago$ t Misc coffee 3 minutes ago# ...same$ t Misc coffee 11:52am# ...starts it at a specific time$ t stop 12:30pm# ...also works for `stop`
Everything is stored in a human-editable format into
to change the location). You're encouraged to add, edit, delete and
rearrange entries using your favorite text editor.
$ cat ~/.timelogs[2013-09-16 mon]1:14pm = Misc write emails2:42pm = Misc balance checkbook3:00pm = -[2013-09-18 wed]3:14pm = Jsconf email speakers3:59pm = - coffee break -4:09pm = Jsconf check ticket sales4:25pm = Errands grocery
You can use
t edit to open in in your default text editor ($EDITOR).
View entries from any date by using
t <date>. It supports natural language
$ t yesterday $ t aug 2 $ t last friday
Query a date range by using
t <date> - <date>:
$ t last monday - last friday $ t aug 2 - aug 10 $ t last month - now
$ t all
Export your data by using the alternative reporters (
json reporter exports your data as a Json object:
$ t all --reporter jsonentries:type: "task"date: "2013-09-18T05:32:47.333Z"endDate: "2013-09-18T05:32:47.333Z"duration: 60000project: "Jsconf"task: "Email speakers"
Usage: timetip [options]Options:-h, --help output usage information-V, --version output the version number-f, --file <path> the data file [~/.timelogs]-R, --reporter <r> use reporter--no-color disable colorsShortcuts:timetip <task> start workingtimetip - [<reason>] stop workingtimetip <date> show entries
Want to easily parse time logs? Use it as a Node.js module. See the source for more details.
var TimeLog = require'timetip'TimeLog;var log = '~/.timelogs';var day = logget'2013-09-02';var day = logget2013 8 2;dayentriesdaylastdaysummary
© 2013, Rico Sta. Cruz. Released under the MIT License.