NAME

App::tt - Time tracking application

VERSION

0.09

DESCRIPTION

App::tt is an application that can track how much time you spend on an project from command line.

It is inspired by App::TimeTracker and share the same log file format, but it has (in my humble opinion) a simpler interface and easier to install.

SYNOPSIS

The application is built up by specifying an action and optional arguments.

$ tt <action> [options]
$ tt help <action>
$ tt <action> -h

Available actions: "edit", "log", "register", "start", "status" (default) and "stop".

Basic usage;

# Start to track time
$ cd $HOME/git/my-project
$ tt start
# Work, work, work, cd ..., do other stuff
$ tt stop

A bit more complex:

# Start to work on an event and add a tag
$ tt start -t ISSUE-999 -p some-project-at-work
# Add another tag to the same event and add a --comment
$ tt stop -t GITHUB-1005 "Today I was mostly in meetings"

ACTIONS

Each action can tak -h for more details. Example:

$ tt start -h

edit

This command can be used to rewrite one all all the log entries.

# Edit the last entry with your favorite $EDITOR
$ tt edit

# Edit a given file with your favorite $EDITOR
$ tt edit ~/.TimeTracker/2017/12/20171220-092000_rg.trc

# Rewrite all the log entries with a perl script
# See source code before running this action. (Internals might change)
$ cat rewrite.pl | tt edit

DISCLAIMER! Backup your files before running this action!

export

This will export a given set of records as CSV.

$ tt log         # this month
$ tt log -2      # two months ago
$ tt log year    # log for year
$ tt log -1y     # last year
$ tt log -p foo  # Filter by project name

log

This command will report how much time you have spent on various events.

$ tt log         # this month
$ tt log -2      # two months ago
$ tt log year    # log for year
$ tt log -1y     # last year
$ tt log -p foo  # Filter by project name

register

This command is used to import data from other sources. "project-name" default to "-p" or current git project, "some description" default to "-d" and tags can be specified by -t foo -t bar

$ tt register 2016-06-28T09:00:00 17:00:00 "project-name" "some description" "foo,bar"
$ echo "2016-06-28T09:00:00\t2016-06-28T17:00:00\tproject-name\tsome description\tfoo,bar" | tt register

start

This command will start tracking a new event. It will also stop the current event if any event is in process. This action takes the "-p" and "-t" switches. "-p" (project) is not required if you start from a git repository.

# Specify a tag and custom project name
$ tt start -t ISSUE-999 some-project-name

# Started working at 08:00 instead of now
$ tt start 08:00

status

This is the default action and will return the current status: Are you working on something or not?

$ tt status

stop

This command will stop tracking the current event.

# Add more tags to the current event
$ tt stop -t meetings -t not_fun

# Stop working at 16:00 instead of now
$ tt stop 16:00

COPYRIGHT AND LICENSE

Copyright (C) 2014, Jan Henning Thorsen

This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.

AUTHOR

Jan Henning Thorsen - jhthorsen@cpan.org