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.0

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.0
File Size Uploaded Provenance Actions
holded_tt-1.4.0.tar.gz 115.8 kB With provenance Details for holded_tt-1.4.0.tar.gz

Built distribution (wheel)

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

Total release size: 168.7 kB

Release files / holded_tt-1.4.0.tar.gz

Download URL holded_tt-1.4.0.tar.gz
Size 115.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bf9adacf7d36c287b82269c40bd388f2a007d1b5e31673f4b29264f74821fd1c
BLAKE2b-256 checksum
How to use checksums
0f0d667164d80902b7cdfa0e57c708f7b633bb8cbea1b05e1fbef619dd83066c
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 Oct 30, 2026.

Transparency log

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

Download URL holded_tt-1.4.0-py3-none-any.whl
Size 52.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dbfcdb0f51c152fd05a5b8017f95d16dab802c6276ce730d058701e0e4a97bc3
BLAKE2b-256 checksum
How to use checksums
635a28dce1d7b38445a2b5c12bbe83e3b6793f12b6fd4ddc43d808514b393c2c
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 Oct 30, 2026.

Transparency log

Security for holded-tt 1.4.0

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.0.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 Oct 30, 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