Skip to main content

Stempeluhr

Stempeluhr (pronounced SHTEM-pel-oor, [ˈʃtɛmpl̩ˌʔuːɐ̯]) is German for punch clock — the clock at the factory gate that workers used to stamp their arrival and leaving times onto a time card. This app is that clock, minus the cardboard.

A Qt-Application to start and stop time tracking, enter additional breaks, view your daily and monthly data, and generate a report out of it.

mainwindow report

Installation

The easiest way is installing from PyPI, otherwise you can use the standalone version.

A: Install from PyPI (recommended)

The app is published on PyPI as stempeluhr. Install it as a tool with uv (or use pipx if you prefer):

uv tool install stempeluhr
stempeluhr

This is especially recommended on macOS, where the standalone binary is not signed and gets blocked by Gatekeeper. Update any time with:

uv tool upgrade stempeluhr

B: Standalone Installation

With a new release, there is also a standalone version available. You can download the latest release from the release page. Choose the right version for your operating system and download the file. Execute the file according to your usual system start option. The application will start and you can use it as described below.

Windows

Just use the installer, put it on the desktop, and start the application via the icon.

Linux

You probably know your ways how to get started with the binary file. But if you are lazy like me, you can install the application with the following script:

curl -s https://raw.githubusercontent.com/AndreWohnsland/TimeTracker/master/scripts/installer.sh | bash

This will download the latest release, put it into your binary folder, and create an application entry.

macOS

This is currently still experimental, but you can try either the manual installation or the standalone version.

B: Manual Installation

We use uv for managing Python versions and packages. First clone the repository and cd into it. To start the app, you run the runme.py file, you can create a shortcut on your desktop:

git clone https://github.com/AndreWohnsland/TimeTracker.git
cd TimeTracker
uv sync
uv run runme.py

If you want to contribute, also install the pre-commit hooks, they run linting and formatting before each commit:

uv run pre-commit install

Manual build of the standalone version

If you want to build the standalone version by yourself, you can also do it with uv. Especially on windows and macOS, because on these systems, they will probably complain that the downloaded binary is not trusted. First, make sure you have uv installed and clone the repository. Then run the following commands to create the standalone version:

uv run pyinstaller installer.spec

The created binary will be in the dist folder.

Options

On first startup, the application will create the needed configuration and the database. You can adjust your settings via Options > Configure Settings and the folder to save the reports to with Options > Set Save folder. With Start the tracking is started and with Stop the tracking is stopped. You can repeat this start-stop procedure any time you want. Over the spin box you can select the pause time and submit them with the Pause button. It is also possible to enter negative Pause to correct previous mistakes. You can also start and stop over the tray icon in the taskbar.

settings

Reports

An overview can be seen when clicking Options > Summary. With a datepicker, a day can be chosen to display a summary of the data in either the according month or all events of this day. The day / month view can be changed over the view toggle button. To generate the report of your overtime or work time, click the Export button. By default settings, the report will be saved into the reports folder of this application. As soon as the save folder was changed over the option setting, the app will use this location instead. The default work time for overtime is eight hours, time worked less than eight will displayed as zero overtime. The overtime/work time is rounded to the closest quarter hour. Breaks are already subtracted in the calculation, adherence to the regular break times is not observed.

Adjust Past Values

To enter values you have missed, you can switch to past entry mode. This can be done over the Options > Switch to Past Entry setting. A date and time can be selected with the according action to insert past values. To go back to the default option, click the shown back button.

Updating to latest Version

Just download the latest executable from the release page. If you have installed the application manually, you can update it with git:

git pull
uv sync

Download files

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

Source Distribution

stempeluhr-1.6.0.tar.gz (68.7 kB view details)

Uploaded Source

Built Distribution

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

stempeluhr-1.6.0-py3-none-any.whl (85.2 kB view details)

Uploaded Python 3

File details

Details for the file stempeluhr-1.6.0.tar.gz.

File metadata

  • Download URL: stempeluhr-1.6.0.tar.gz
  • Upload date:
  • Size: 68.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for stempeluhr-1.6.0.tar.gz
Algorithm Hash digest
SHA256 0147634a511fc0f9e5ea34fcd06f9fa25e40c56f3846a5493cd5939d20fcd780
MD5 c2671c75cd63cafd5d6adcc238e4b613
BLAKE2b-256 d2eed4106d79ed6e0885c8ebabd65dde58011b7855fc047ff8d630006f69d094

See more details on using hashes here.

File details

Details for the file stempeluhr-1.6.0-py3-none-any.whl.

File metadata

  • Download URL: stempeluhr-1.6.0-py3-none-any.whl
  • Upload date:
  • Size: 85.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for stempeluhr-1.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 42ac1367cd8aea9d7a5d1fb13278b1f6acbbe7b46a4fab9ca22550ffedc012d7
MD5 7432026258758f5bb8c4c38bbc722864
BLAKE2b-256 b6d7452bc3f4c8edef756147edfdd609432ef03eb112a72881a1724f8621a83e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.6.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page