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 (Linux or Windows), 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 and Windows task, 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.5.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.5.0
File Size Uploaded Provenance Actions
holded_tt-1.5.0.tar.gz 134.0 kB With provenance Details for holded_tt-1.5.0.tar.gz

Built distribution (wheel)

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

Total release size: 195.0 kB

Release files / holded_tt-1.5.0.tar.gz

Download URL holded_tt-1.5.0.tar.gz
Size 134.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b838410432115f2e4457a3e5f0178378052bfe5e69abfcb0b7a2531f2bf68524
BLAKE2b-256 checksum
How to use checksums
61d57549384b8d3bc2efe61947df3c8f0d0fb32f1f73ee41fd9944ffcd38c7a5
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.5.0-py3-none-any.whl

Download URL holded_tt-1.5.0-py3-none-any.whl
Size 61.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d0b071b3bef82140ee775b5e997fff8121ce307c995af4a02b961237e801507
BLAKE2b-256 checksum
How to use checksums
82cdf98f669112287af6011f305ce9fede11937646ac163706e65e96b5312342
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.5.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.5.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 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