Skip to main content

Log your work time to tempo from the command line.

Project description

Log Time to Tempo

PyPI - Version PyPI - Python Version Ask DeepWiki


Log your time to tempo on a self-hosted Jira instance and get relevant insights into your logged time per project from the convenience of your command line.

Requirements

This tool is developed against

  • Jira Server v9.4.17
  • Tempo Timesheets 17.2.0 plugin

Any deviation from that setup might lead to issues. Feel free to provide PRs to support other configurations.

Installation

pip install log-time-to-tempo

Getting Started

To initialize authentication and local caches of projects and issues, run

lt init

If you want to enable shell completion (which makes picking issues much easier), run

lt --install-completion

Usage

Log Time

# log full workday to default issue
lt log
# log 2h to default issue
lt log 2h
# log 2h to specific issue
lt log 2h TSI-1
# log with custom message
lt log -m "working on foo" 2h TSI-1
# log multiple entries at once
lt logm MyProject:6,OPT:2

Check Logged Time

# show logged time per issue
lt stats
# show logged time per issue for current month
lt stats month
# ..also show individual worklogs
lt stats -v

The stats command includes sparkline visualizations with axis information to help you understand when you started logging time for each project:

  • Yearly ranges (e.g., year, last_year): Show month abbreviations (Jan, Feb, Mar, ...)
  • Monthly ranges (e.g., month, last_30_days): Show week numbers (W1, W2, W3, ...)
  • Weekly ranges (e.g., week, last_7_days): Show no axis labels to reduce clutter

Check Budget (i.e. logged and remaining time per person)

# show remaining time for last booked issue (auto-selected)
lt budget
# show remaining time for specific issue
lt budget TS-XXXXX

Set Aliases

# set alias name for a commonly used issue
lt alias TSI-7 OPT
lt alias TS-10402 ProjectName
# unset aliases
lt alias --unset ProjectName
# show all aliases
lt alias

Configuration

The lt config command allows to change the default behavior, either system wide (--system) or in the local directory and subdirectories.

Here are a couple of usage examples:

# Set custom jira instance for all projects (i.e. system-wide)
lt config --system JIRA_INSTANCE https://jira.my-server.com

# Set default issue for worklogs created from current directory (and subdirectories)
lt config LT_LOG_ISSUE TSI-7

# Start all your worklogs at 10am (instead of the default 9am)
lt config --system LT_LOG_START 10

# Remove all custom configuration
lt config --unset

Changes

latest

0.0.9 - 2025-10-22

  • add axis to stats sparklines to indicate time periods
  • budget command automatically selects the most recent issue when no issue is specified
  • fix output of stats -v command (dim worklog comments, show day/time correctly, normalize sparkline height to 0-8)

0.0.8 - 2025-07-09

  • stats command includes sparkline visualizations to show daily time patterns
  • budget command shows logged and remaining hours for a given issue
  • fix redundant display of configuration options in config command error messages

0.0.7 - 2025-04-10

  • list command produces output in table format
  • show issue summary when suggesting similar issues
  • detect overlaps with existing issues and warn user
  • fix issue, where a custom default start time would prevent dynamic start time based on today's last worklog

0.0.6 - 2025-03-20

  • when logging to an issue that does not exist, provide suggestions (based on similar aliases and issue summaries)
  • add lt logm command to log multiple entries at once (e.g. lt logm MyProject:6,OPT:2)

0.0.5 - 2025-03-03

  • fix lt list command

0.0.4 - 2025-01-14

  • on lt alias --unset completion, only existing aliases are suggested
  • fix keyring issues
    • keyring provided by 1password-cli could not be used to persist token → default to system keyring on macOS
    • keyring fails on platforms other than macOS → alternative keyring backends are used.
  • fix issue where lt init would update cache twice.

0.0.3 - 2024-09-12

  • add lt stats command to aggregate spent time per issue
  • add lt alias command to provide more meaningful aliases for issue descriptions
    • lt alias --unset to remove previously set aliases
  • renamed relative date ranges
    • weeklast_7_days
    • monthlast_30_days
    • week_to_dateweek
    • month_to_datemonth
  • support abbreviations for relative date ranges (e.g. l7 for last_7_days)
  • fix issue where app dir would not be created on first run
  • fix issue with formatted durations, where days would not be accounted for
  • fix issue where token was saved to third-party keyrings (e.g. 1Password)
  • parse more relative dates (e.g. "3 weeks ago") (using dateparser.parse)

0.0.2 - 2024-04-17

  • add log --lunch option to reduce the amount of math you have to do in your head when entering your time
    • lunch will simply be deducted from the total duration and your end time
  • rename log --from-time '' --to-time '' options to log --start '' --end ''
  • log --day is now case-insensitive (so Mo will be recognized as monday)
  • add --version flag

0.0.1 - 2024-03-25

  • authorize with JIRA instance using personal access token
    • prompt for token and persist using keyring package
  • create and list worklogs via tempo's REST API
  • list projects and issues using jira API
  • cache projects and issues for faster responses and shell completion

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

log_time_to_tempo-0.0.9.tar.gz (786.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

log_time_to_tempo-0.0.9-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

File details

Details for the file log_time_to_tempo-0.0.9.tar.gz.

File metadata

  • Download URL: log_time_to_tempo-0.0.9.tar.gz
  • Upload date:
  • Size: 786.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.4

File hashes

Hashes for log_time_to_tempo-0.0.9.tar.gz
Algorithm Hash digest
SHA256 59d693df13926cb19e8a42c888c55c4a7017c69da67f96f02e3769504f03e758
MD5 7678b2cd51f3edfa258bf4c19bf37a99
BLAKE2b-256 33d61463b3b3ebb4d6ede8d1da1ab952942d5ebd35b6be5b2696e81737feebc0

See more details on using hashes here.

File details

Details for the file log_time_to_tempo-0.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for log_time_to_tempo-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 aea71fe646f6f91cf7af779bcdeee1b65b191c2bdd7085c30860fcb97c908203
MD5 39f36360843d0c164e2fa7db5e2b24a4
BLAKE2b-256 6364f6d64ed5c70e93fbe88fe5a7c9994f3df0d56080f2ac919ee37bc296b4cd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page