Checks Tempo (Jira) for last week's logged hours and shows a popup dialog every 5 minutes until your timesheet is filled and submitted.
- Create a virtual environment and install dependencies:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtOn Ubuntu, install tkinter if not already present:
sudo apt install python3-tk- Create your config file with your Tempo API token and Jira account ID:
echo 'YOUR_TEMPO_TOKEN' > ~/.tempo_token
echo 'YOUR_ACCOUNT_ID' >> ~/.tempo_token
chmod 600 ~/.tempo_token # Linux/macOS only- Test it works:
python timesheet_nag.py --dry-runEach platform has its own installer that schedules the script to run every Monday at 9:00 AM.
./install_linux.sh
systemctl --user status timesheet-nag.timer./install_macos.sh
launchctl list | grep timesheetinstall_windows.bat
schtasks /query /tn "TimesheetNag"Note: The scheduled task fires once on Monday at 9:00 AM and the Python process loops every 5 minutes until the timesheet is complete. If the machine reboots during the day, the task will not re-trigger until the following Monday. You can manually re-run
python timesheet_nag.pyif needed.
./uninstall.sh./uninstall_macos.shuninstall_windows.batpython timesheet_nag.py # check last week (default)
python timesheet_nag.py --week current # check current week
python timesheet_nag.py --dry-run # preview without API calls
python -m pytest test_timesheet_nag.py -v