STOPWHAT is a command line application to create text reports about events that happened in the past. You use it to create reports of what you have been working on, in the distant past, in the past year, or yesterday. STOPWHAT tells you, through text output, what you have been doing with your time.

This software is like a crystal ball with a fantastic memory. If I want to know when it was that I saw the movie “Nosferatu”, it is as simple as this:

$ stopwhat.py -o full -t Nosferatu

Options, Arguments

This is a full command-line program with lots of different arguments. You can get a report for a certain date. You can have your report in several text formats. You can group the output by projects. You can group the output by date. You can group the output by projects, then date. You can group the output by date, then project. Everything that I thought would make a report useful is in there.

The help text gives some ideas about what this application can do:

$ stopwhat.py --help usage: STOPWHAT [-h] [-i INVOICE] [-db DATABASE] [-o {wide,compact,full}] [-s] [-g {day,project,bucket} [{day,project,bucket} ...]] [-b BUCKETS [BUCKETS ...]] [-xb REMOVEBUCKETS [REMOVEBUCKETS ...]] [-p PROJECTS [PROJECTS ...]] [-xp REMOVEPROJECTS [REMOVEPROJECTS ...]] [-w {this,last}] [-d DATE] [-d1 STARTDATE] [-d2 ENDDATE] [-t TEXT] Run text reports on a STOPTHAT database. optional arguments: -h, --help show this help message and exit -i INVOICE, --invoice INVOICE Prepare data suitable for an invoice, give client id. -db DATABASE, --database DATABASE Interpret this database rather than those in the config file. -o {wide,compact,full}, --output {wide,compact,full} Output style: "wide", "compact", or "full". -s, --summarize Show only summaries of projects, omit task data. -g {day,project,bucket} [{day,project,bucket} ...], --groupby {day,project,bucket} [{day,project,bucket} ...] Group by critera: Any combination of "day", "project", "bucket". -b BUCKETS [BUCKETS ...], --buckets BUCKETS [BUCKETS ...] Include only these buckets in the output. Give bucket ids. -xb REMOVEBUCKETS [REMOVEBUCKETS ...], --removebuckets REMOVEBUCKETS [REMOVEBUCKETS ...] Remove these buckets from the output. Give bucket ids. -p PROJECTS [PROJECTS ...], --projects PROJECTS [PROJECTS ...] Include only these projects in the output. Give project ids. -xp REMOVEPROJECTS [REMOVEPROJECTS ...], --removeprojects REMOVEPROJECTS [REMOVEPROJECTS ...] Remove these projects from the output. Give project ids. -w {this,last}, --week {this,last} Show weekly results. Arg can be "this" or "last". -d DATE, --date DATE Look at a specific date. Arg can be kd, md, "today", or "yesterday". -d1 STARTDATE, --startdate STARTDATE Specify a start date. Arg can be kd or md. -d2 ENDDATE, --enddate ENDDATE Specify an end date. Arg can be kd or md. -t TEXT, --text TEXT Search within the tasks for the given text string. For this to work, STOPTHAT needs to be configured, and there should be some data.

Integration With GUI

STOPTHAT GUI uses STOPWHAT to create common text reports, and display them in the GUI. Very handy. You can immediately tell your coworker how much time, this week, you’ve spent on a given project.