Ultimate Time Tracker (utt) is a minimalist command-line time tracking application written in Python. It is intended for people who need to report their time on another system and want a preliminary time sheet.
There are four commands in utt: hello
, add
, report
and edit
.
Say hello when you arrive in the morning:
$ utt hello
Add a task when you have finished working on it:
$ utt add "configuring server"
Show report:
$ utt report
------------------------ Monday, Jul 08, 2013 (week 28) ------------------------
Working Time: 0h07
Break Time: 0h00
----------------------------------- Projects -----------------------------------
(0h07) : configuring server
---------------------------------- Activities ----------------------------------
(0h07) : configuring server
----------------------------------- Details ------------------------------------
(0h07) 08:27-08:34 configuring server
Edit your time sheet with your favorite text editor:
$ utt edit
An activity name does more than just identifying it. It's used to determine its type and to group them.
There are three activity types: working, break, ignored.
This is the default activity. It contributes to the working time.
$ utt add "task #4"
Activity whose name ends with **
. It contributes to the break time.
Example:
$ utt add "lunch **"
Activity whose name ends with ***
. Only shown in the "Detail
section".
Example:
$ utt add "ignored activity ***"
The "Projects" section of the report groups activities by projects. A project can be associated to an activity by prefixing it with a non-whitespace string followed by a colon.
Example:
$ utt add "#89"
$ utt add "project1: #43"
$ utt add "project1: #12"
$ utt add "project2: #63"
$ utt report
...
----------------------------------- Projects -----------------------------------
(0h30) : #89
(0h45) project1: #12, #43
(1h00) project2: #63
---------------------------------- Activities ----------------------------------
(0h30) : #89
(0h30) project1: #12
(0h15) project1: #43
(1h00) project2: #63
...
If multiple activities have the same name, they are merged as one activity in the "Activities" section.
Example:
$ utt add "#83"
$ utt add "#26"
$ utt add "#83"
...
---------------------------------- Activities ----------------------------------
(1h00) : #26
(2h15) : #83
----------------------------------- Details ------------------------------------
(1h30) 08:30-10:00 #83
(1h00) 10:00-11:00 #26
(0h45) 11:00-11:45 #83
The report
command let you choose the date of the report. If
omitted, it's the current date.
Example:
$ utt report 2013-07-01
A -- Current Activity --
is inserted if the date of the report is
today.
The first duration between the parentheses (1h00) represents the working time without the current activity. The second duration between the parentheses (0h22) represents the duration of the current activity.
Example:
$ utt add "#12"
$ utt report
------------------------ Monday, Jul 08, 2013 (week 28) ------------------------
Working Time: 1h22 (1h00 + 0h22)
Break Time: 0h00
----------------------------------- Projects -----------------------------------
(1h22) : #12, -- Current Activity --
---------------------------------- Activities ----------------------------------
(1h00) : #12
(0h22) : -- Current Activity --
...
You can change the current activity name with the --current-activity
argument.
Example:
$ utt report --current-activity "#76"
------------------------ Monday, Jul 08, 2013 (week 28) ------------------------
Working Time: 1h22 (1h00 + 0h22)
Break Time: 0h00
----------------------------------- Projects -----------------------------------
(1h22) : #12, #76
---------------------------------- Activities ----------------------------------
(1h00) : #12
(0h22) : #76
...
Or, you can remove the current activity with the
--no-current-activity
flag.
Example:
$ utt report --no-current-activity
------------------------ Monday, Jul 08, 2013 (week 28) ------------------------
Working Time: 1h00
Break Time: 0h00
----------------------------------- Projects -----------------------------------
(1h00) : #12
---------------------------------- Activities ----------------------------------
(1h00) : #12
The time reported in the square brackets is the total time for the week.
$ utt report
----------------------- Tuesday, Mar 25, 2014 (week 13) ------------------------
Working Time: 1h00 [8h00]
Break Time: 0h00 [0h30]
...
$ pip install utt
utt is only compatible with Python 3. Make sure you are using pip
with Python 3.
python3 setup.py install
Python 3
Mathieu Larose <mathieu@mathieularose.com>
utt is released under the GPLv3. See the LICENSE file for details.