Skip to content

Latest commit

 

History

History
192 lines (133 loc) · 6.36 KB

File metadata and controls

192 lines (133 loc) · 6.36 KB

logo Watson

Overview

Watson is here to help you monitor your time. You want to know how much time you are spending on your projects? You want to generate a nice report for your client? Watson is here for you.

Tell Watson when you start working on a task with the start command. Then, when you are done, stop the timer with the stop command. This will create what we call a frame. That's pretty much everything you need to know to start using Watson.

Each frame consists of the name of a project and some tags. Your tags can be shared across projects and can be used to generate detailed reports.

Watson stores everything on your computer, but you can go wild and upload to your own crick server via the sync command to store your sessions remotely and share them with your colleagues.

screenshot

Installation

Watson is available on any platform supported by Python (Windows, Mac, Linux, *BSD…). The easiest way to install it is to use pip:

$ pip install td-watson

Depending on your system, you might need to run this command with root privileges in order to install Watson globally.

On OS X, the easiest way to install Watson is using Homebrew:

$ brew update && brew install watson

Distribution packages

You can install Watson using available distribution packages.

Arch Linux

A PKGBUILD file for building an Arch Linux package is available in the AUR. You can build and install it using the makepkg or an AUR helper. Please refer to the official documentation for more information on installing AUR packages.

Single user installation

You can choose to install Watson for your user only by running:

$ pip install --user td-watson

If after this the watson command is not available, you need to add ~/.local/bin/ to your PATH. If your terminal is Bash, you can do this by running:

$ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc  # Add ~/.local/bin/ to your .bashrc PATH

and restarting your terminal session or sourcing the .bashrc:

$ source ~/.bashrc  # Reload your .bashrc

Development version

The latest development version can be installed using the following commands:

$ git clone https://github.com/TailorDev/Watson.git
$ cd Watson/
$ pip install -e .

Command line completion

Bash

If you use a Bash-compatible shell, you can install the watson.completion file from the source distribution as /etc/bash.completion.d/watson - or wherever your distribution keeps the Bash completion configuration files. After you restart your shell, you can then just type watson on your command line and then hit TAB to see all available commands. Depending on your input, it completes watson commands, command options, projects, tags and frame IDs.

ZSH

If you use zsh, copy the file watson.zsh-completion somewhere in your fpath as _watson. For example, you can put it in /usr/local/share/zsh/site-functions:

cp watson.zsh-completion /usr/local/share/zsh/site-functions/_watson

Make sure that your .zshrc enables compinit:

autoload -Uz compinit && compinit

Fish

If you use fish, you can copy or symlink the file watson.fish from the source distribution to ~/.config/fish/completions/watson.fish. You may need to make the completions directory as it is not created by default.

Once this is done, re-source your fish config: source ~/.config/fish/config.fish

You will now have command completion for fish, including the completion of known projects, tags, and frames.

Getting started

Now that watson is installed on your system, let's start tracking your activity:

$ watson start world-domination +cats

With this command, you have started a new frame for the world-domination project with the cat tag. Time is running. Now, you need to work on your project. Let's do this. Now.

Working cat{: width="400px" }

Welcome back! Now that your world domination plan has been set up, let's stop time tracking via:

$ watson stop
Project world-domination [cat] started 34 minutes ago (id: 166d1fb)

To list all available commands, either explore the commands documentation or use:

$ watson help

` If I want to restart something further back, you can also type the first few characters of the SHA and it will tab autocomplete (you might have to set this up manually on zsh by copying a file).

Getting groovy

There are many ways to use watson and it is important to find what works for you. Below are some tips that we hope can make your time with watson even more efficient.

Although watson supports tab completion, it can help to setup shell aliases to your most commonly used commands, for example:

alias ws='watson start'
alias wp='watson stop'
alias wr='watson restart'
alias wl='watson log'
alias we='watson edit'

Your workflow could be that when you start working for the day, you type wl to see if you want to restart a task you were working on the previous day with wr or start a new one with ws proj +tag.

You might find yourself repeatedly switching between just a few tasks; in these scenario the wr alias is key. If you type it without any arguments restarts the latest entry (great when you continue on the same task after a break) and if you type wr -2, wr -3, it restarts older entries. If you mess up you can type we to edit the last frame, or watson cancel to abort the currently active one.

Sometimes you might forget to start or stop a task, but don't worry, watson got you covered. The --at option lets you put in the time your started, restarted, or stopped a task, so that you can easily log past tasks, e.g. wr -2 --at 10:30, or wp --at 12:00. If you want to start a task right when the previous one ended, you can use ws proj +tag -G.

There are many useful configuration options, including showing the currently active frame in the log output, setting up default tags for projects, printing the log to stdout instead of using a pager and controlling how it is formatted.

We hope you will enjoy Watson!