mirror of
https://github.com/GothenburgBitFactory/timewarrior.git
synced 2025-07-07 20:06:39 +02:00
129 lines
3.4 KiB
Text
129 lines
3.4 KiB
Text
Introduction
|
|
============
|
|
Timewarrior is a time tracking application, which allows you to record your
|
|
time spent on activities. At its simplest, you tell it to start and stop
|
|
tracking time:
|
|
|
|
$ timew start
|
|
...
|
|
$ timew stop
|
|
|
|
This will record a block of time as active, between the two timestamps that
|
|
were recorded when the 'start' and 'stop' commands were run.
|
|
|
|
By using tags, you can label the blocks of active time:
|
|
|
|
$ timew start Home Cleaning
|
|
...
|
|
$ timew stop
|
|
|
|
This tags the block of time with the two tags 'Home' and 'Cleaning'. The tags
|
|
allow you to identify how you spent that time, and is used by the reporting
|
|
system to summarize time.
|
|
|
|
You can also record time retroactively. If you forgot to start recording this
|
|
morning, you can do this:
|
|
|
|
$ timew start 8:30am Home Cleaning
|
|
|
|
Or if you forgot a whole activity:
|
|
|
|
$ timew track 8:00am - 8:30am Exercise
|
|
$ timew start 8:30am Home Cleaning
|
|
|
|
More sophisticated use is possible if you have defined your work week:
|
|
|
|
$ timew define week mon-fri
|
|
$ timew define day start 8:30am
|
|
$ timew define day end 1730
|
|
|
|
$ timew track yesterday Home Painting
|
|
|
|
Once the work week is recorded, vague terms like 'yesterday' can be resolved
|
|
into actual start/stop timestamps. If you define holidays, then it knows not to
|
|
track time on those days:
|
|
|
|
$ timew define holidays eng-USA
|
|
|
|
Furthermore, Timewarrior can fill in gaps. For example:
|
|
|
|
$ timew track last tuesday :fill Research
|
|
|
|
There is a :backfill and :fill hint that tells Timewarrior how to fill the time,
|
|
for example:
|
|
|
|
$ timew track yesetrday 8am - 10am Meeting
|
|
$ timew track yesterday 3pm - 17:00:00 Training
|
|
$ timew track yesterday 2pm ProjectA :backfill
|
|
$ timew track yesterday ProjectB :fill
|
|
|
|
And the 'ProjectB' tagged interval will range from 2pm - 3pm.
|
|
|
|
Tags can have their own metadata, for example you can make a tag valid for a
|
|
given time range:
|
|
|
|
$ timew define tag ProjectA end 2016-06-30
|
|
$ timew define tag ProjectA budget 400 hours total
|
|
|
|
This is managed by a rules system that can impose constraints.
|
|
|
|
To see the currently active interval:
|
|
|
|
$ timew
|
|
|
|
(TBD)
|
|
|
|
Reporting tracked time can be done with a simple report:
|
|
|
|
$ timew report today
|
|
$ timew report week Home
|
|
$ timew report summary last week
|
|
|
|
Some early report mockups:
|
|
|
|
http://picpaste.com/week-zWdSp3UI.png
|
|
http://picpaste.com/day-kAqffFmZ.png
|
|
|
|
Or the data can be exported in JSON:
|
|
|
|
$ timew export last month > February.json
|
|
|
|
Some or all of the reports are written using an extension mechanism, and
|
|
will be examples of how to write other reports. Report extensions can be shared
|
|
and enhanced by the community. It should be possible to implement any kind of
|
|
report using the extension mechanism.
|
|
|
|
There is an 'undo' command for reversing changes, and a 'clear' command to
|
|
free up a slot:
|
|
|
|
$ timew clear yesterday
|
|
|
|
$ timew clear 8am - 11am
|
|
|
|
You can start, stop and resume tracking:
|
|
|
|
$ timew start Training
|
|
...
|
|
$ timew stop
|
|
...
|
|
$ timew continue
|
|
|
|
There is also a rules system that can impose constraints on the data, such as
|
|
automatically shutting off tracking after 40 hours is tracked per week, warnings
|
|
about overtime, and more.
|
|
|
|
There is built-in configuration support, logging, and assorted tools to help
|
|
you enact policy.
|
|
|
|
The data will be stored as plain text, and there will a way to merge data from
|
|
multiple sources.
|
|
|
|
|
|
--- Raw Notes ---
|
|
|
|
- add more report mockups
|
|
- demo 'config' command
|
|
- demo 'tags' command
|
|
- demo 'gaps' command
|
|
- demo interval adjustment, corrections
|
|
|