What did you do last week, month, year?


Comfortably gather status report data (e.g. list of committed changes) for given week, month, quarter, year or selected date range. By default all available stats for this week are reported.


Usage is straightforward:

did [this|last] [week|month|quarter|year] [opts]


Gather all stats for current week:


Show me all stats for today/yesterday:

did today
did yesterday

Gather stats for the last month:

did last month

See did --help for complete list of available stats.


The list of available options depends on which plugins are configured. Here’s the list of general options which are not related to any plugin:


At least one email address needs to be provided on command line unless defined in the config file. Use the complete email address format Name Surname <email@example.org> to display full name in the report output. For date values today and yesterday can be used instead of the full date format.

--email=EMAILS User email address(es)
--since=SINCE Start date in the YYYY-MM-DD format
--until=UNTIL End date in the YYYY-MM-DD format


The default output is plain text of maximum width 79 characters. This can adjusted using the --width parameter. To disable shortening altogether use --width=0. The default width value can be saved in the config file as well. Use --format=wiki to enable simple MoinMoin wiki syntax. For stats which support them, --brief and --verbose can be used to specify a different level of detail to be shown.

--format=FMT Output style, possible values: text (default) or wiki
--width=WIDTH Maximum width of the report output (default: 79)
--brief Show brief summary only, do not list individual items
--verbose Include more details (like modified git directories)


Multiple emails can be used to put together a team report or to gather stats for all of your email aliases. For this use case --total and --merge can be used to append the overall summary at the end or merge all results into a single report respectively. Use --debug or set the environment variable DEBUG to 1 through 5 to set the desired level of debugging.

--config=FILE Use alternate configuration file (default: ‘config’)
--total Append total stats after listing individual users
--merge Merge stats of all users into a single report
--debug Turn on debugging output, do not catch exceptions

See did --help for complete list of available options.


Install directly from Fedora/Copr repository:

yum install did

or use PIP (sudo required if not in a virtualenv):

pip install did

To build and execute in a docker container, run:

make run_docker

See documentation for more details about installation options.


The config file ~/.did/config is used to store both general settings and configuration of individual reports:

email = "Petr Šplíchal" <psplicha@redhat.com>
width = 79

type = header
highlights = Highlights
joy = Joy of the week ;-)

type = git
did = /home/psss/git/did

type = git
tests = /home/psss/git/tests/*

type = trac
prefix = TT
url = https://some.trac.com/trac/project/rpc

type = bugzilla
prefix = BZ
url = https://bugzilla.redhat.com/xmlrpc.cgi

type = footer
next = Plans, thoughts, ideas...
status = Status: Green | Yellow | Orange | Red

See plugin documentation for more detailed description of options available for particular plugin. You can also check python module documentation directly, e.g. pydoc did.plugins.git or use the example config provided in the package and web documentation.


Petr Šplíchal, Karel Šrot, Lukáš Zachar, Matěj Cepl, Ondřej Pták, Chris Ward, Tomáš Hofman, Martin Mágr, Stanislav Kozina, Paul Belanger, Eduard Trott, Martin Frodl, Randy Barlow, Alois Mahdal and Evgeni Golov.


https://badge.fury.io/py/did.svg https://travis-ci.org/psss/did.svg?branch=master https://coveralls.io/repos/github/psss/did/badge.svg https://img.shields.io/pypi/dm/did.svg https://img.shields.io/pypi/l/did.svg https://readthedocs.org/projects/did/badge/