Skip to main content

Holded TT

holded-tt is an unofficial Python CLI for automating time tracking on Holded. It is a focused time-tracking tool, not a general-purpose Holded client.

Install

Requirements

  • Python 3.11+
  • A Holded account with time tracking enabled
  • An interactive terminal for holded-tt login (email/password prompt, plus 2FA prompt when required)
# Install from PyPI (recommended for end users)
pipx install holded-tt

# or
uv tool install holded-tt

# or, inside an existing virtualenv
pip install holded-tt

With Nix, the repository is a flake:

nix run github:Villoh/holded-tt -- --help

To install it declaratively, add it as an input and use inputs.holded-tt.packages.${system}.default.

After installation, you can check the global CLI version with:

holded-tt --version

Quick start

# 1. Authenticate
holded-tt login

# 2. Check your workplace ID
holded-tt workplaces

# Optional: inspect your profile and organization directory
holded-tt employee
holded-tt organization

# 3. Save your defaults
holded-tt config set defaults.workplace_id <id>
holded-tt config set defaults.start 09:00
holded-tt config set defaults.end 18:00
holded-tt config set defaults.timezone Europe/Madrid
holded-tt config set defaults.pause 14:00-15:00

# 4. Register a date range (preview first)
holded-tt track --from 2026-01-07 --to 2026-04-07 --dry-run
holded-tt track --from 2026-01-07 --to 2026-04-07

To have your days clocked for you (on Linux), run holded-tt clock install once. See Automatic clocking.

Documentation

Guide What is in it
Account login, session, workplaces, employee, organization, session troubleshooting
Configuration config, every default and per-weekday overrides, where files are stored
Track Register, inspect and update days in bulk, with jitter
Clock Real-time clock-in, clock-out, pause and resume
Automatic clocking clock tick, clock install, clock skip, the systemd units, retries and failure handling
Time off Vacation availability, requests and holidays
Export PDF and Excel reports
Development Running from source, tests

Every command also has --help.

Security note

session.json stores sensitive authentication cookies. The CLI must never log those cookies, and file permissions are applied on a best-effort basis (0600 where supported).

License

MIT — see LICENSE.

Metadata

Release files for holded-tt 1.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for holded-tt 1.4.2
File Size Uploaded Provenance Actions
holded_tt-1.4.2.tar.gz 118.2 kB With provenance Details for holded_tt-1.4.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for holded-tt 1.4.2
File Interpreter ABI Platform Actions
holded_tt-1.4.2-py3-none-any.whl Python 3 none any Details for holded_tt-1.4.2-py3-none-any.whl

Total release size: 171.7 kB

Release files / holded_tt-1.4.2.tar.gz

Download URL holded_tt-1.4.2.tar.gz
Size 118.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c16b0e85eea7c9f901e81f0f3396b1d3ed62a0594445583c0a84857de23e8969
BLAKE2b-256 checksum
How to use checksums
fea41f27ad0da2629321c0fcc9a557ed2b797be94b0075b0741a1bf3ccbc721b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / holded_tt-1.4.2-py3-none-any.whl

Download URL holded_tt-1.4.2-py3-none-any.whl
Size 53.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
359e77428c31754da83ebb2bd9f1d54670ae1330397d3cbe46db5b1537a684cc
BLAKE2b-256 checksum
How to use checksums
ec6d975dc28bcffe1a2c0035ca217db2e143161b7172e7e221308346b10ee152
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Security for holded-tt 1.4.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for holded_tt-1.4.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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