TimeStream

Description

TimeStream is a minimalist time-tracking solution where you use live status messages to track what you're working on. It's similar to Twitter or Facebook statuses, but private, secure and with time-tracking functionality.

Learn more at: https://timestreamapp.com

Installation

gem install timestreamapp

Usage and documentation

After installation, login with your TimeStream credentials:

ts 

To view a list of available commands:

ts help

Will output:

Tasks:
  ts commit                 # Commit and push up your Git changes to the remote master with your current TimeStream status as the commit message
  ts current                # Get your current task
  ts date "YYYY-MM-DD"      # Show tasks for a specific date, uses typical formats, e.g.: YYYY-MM-DD, "last monday", MM/DD/YY
  ts help [TASK]            # Describe available tasks or one specific task
  ts login                  # Login to your TimeStream account
  ts logout                 # Logout of your TimeStream account
  ts new "Some new status"  # Add a new task
  ts search "search terms"  # Search tasks
  ts task-time              # Get the task and time together
  ts time                   # Get the duration of your current task
  ts time-task              # Get the time and task together
  ts today                  # Get a list of all of today's tasks

Many of the commands have optional arguments (command line switches). For e.g., to learn more about the "ts current" command, enter the following:

ts help current

This will output:

Usage:
  ts current

Options:
  -f, [--format=FORMAT]  # Specify what you want: time, task, task-time, time-task. If specified, only returns txt.
                         # Default: task
  -o, [--output=OUTPUT]  # Specify an output format: csv, json, pdf, rss, txt or xml
                         # Default: txt
  -i, [--inline]         # Specify if you want the output inline, i.e. with NO newline after the output. Useful when scripting.

Examples

Show the duration of your current task:

ts time

Will output something like:

04:41:45

Show your current time and task together:

ts time-task

Will output:

[04:34:22] This is my awesome task

Add a new task:

ts new "This is some other awesome task"

Show all of today's tasks:

ts today

Will output something like:

00:02:00  This is my awesome task
00:15:54  This is some other awesome task

Search for entries:

ts search "awesome"

Will output:

00:00:49  This is my awesome task  2011-06-07 10:10:46  2011-06-07 10:11:35
00:04:09  This is some other awesome task 2011-04-07 17:03:42  2011-04-07 17:07:51

Show your current task in JSON format:

ts current -o=json

Will output:

{
  "task":"This is my awesome task",
  "duration":"04:44:35",
  "seconds":"17075",
  "created_at":"2011-06-30 11:53:26",
  "timezone":"America/Los_Angeles",
  "source":"quicksilver",
  "ip":"67.188.42.153"
}

Show entries for a specific date:

ts date "2011-05-11"

Will output something like:

01:19:03  SOMECLIENT > Phone > Meeting about 3.x items
00:11:05  ROCKERISTA > CM > Creating header image for Concert Post
00:00:36  VGTRACKER > Dev > Defining responders > PDF > Trying to get webfonts to work
00:00:24  VGTRACKER > Dev > Making root point to home
00:30:50  VGTRACKER > IT > Install production SSL certs
00:17:40  VGTRACKER > IT > Rerouting all traffic through https

Automatically add changed files, commit them with your current TimeStream status as the commit message and push it up to the remote master with Git:

ts commit