Skip to main content

CLI time tracking software indented for use with JIRA

Project description

This is some time/task tracking software. 🐑

It can talk (barely) to/at JIRA.


python 3.4 (or 3.5 just to be safe)


Clone the source code and install with python3 -m pip install --user -e .[jira,freshdesk]. If you want. You don’t have to. I’m not the police.

CLI Usage

Sheets live in the directory ~/.config/impetuous/sheets. They are in the YAML file format.

The “current sheet” is some file in the sheet directory. The name of the sheet that is considered the “current” one follows the format in the environment variable IM_SHEET_FMT and defaults to {local_time:%Y-%m-%d}. The format string is formatted with the local time using python’s str.format() function such that, by default, impetuous will use a different sheet each day.

A number of commands take a when argument. This has a number of acceptable formats. I can’t explain it since it’s over-engineered and stupid. Here are some examples:

  • 14:15 - 2:15 P.M.
  • .+1h5s - One hour and five seconds after now.
  • .-10m - Ten minutes before now.
  • ]+90s - Ninety seconds after the end of the last/current task.
  • [+1h5s - One hour and five seconds after the beginning of the last/current task.


Here’s a thing:

Usage Demo

It took me three hours to record that without typos … (im start therapy)


You can use im encode to get impetuous to encode your passwords in the configuration file. Then it decodes them when it uses them. It supports a few different encodings. You can encode it multiple times. I don’t know why you want to use this. But it’s there now.


Who knows? If you find one, make a feature report.

Configuration and JIRA and Freskdesk

Edit the configuration by running im config-edit, which just opens the configuration file in ~/.config/impetuous/config.ini in EDITOR. This is an example config.ini:

api = jira
server =
basic_auth = admin:hunter2
pattern = ((?:FOO-\d+)|(?:BAR-\d+))

api = freshdesk
server =
api_key = xxxxxxxxxxxxxxxxxxxx
pattern = freskdesk (\d+)
name = sheepdesk
abbr = 🐑

Each section defines an external service for logging time against. The api determines how we can talk to it. You can add multiple sections and call them whatever you want.

By default, the name and abbreviated name are taken from the section name, but you can set them as shown in the “freshdesk” section above.


Oh man, I don’t know. Just run python3 -m pytest and hope for the best I suppose.

Internationalization / Localization


  1. python3 extract_messages
  2. python3 update_catalog -l fr
  3. Modify the translation file ending in .po … if you want
  4. python3 compile_catalog
  5. Run with LANGUAGE=fr

You actually only need to do step 4 and 5 to run the program with localization if you don’t want to make modifications.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

impetuous-0.2.2.tar.gz (18.9 kB view hashes)

Uploaded source

Built Distribution

impetuous-0.2.2-py3-none-any.whl (24.4 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page