Skip to main content

Reconstrueer je urencriterium uit GitHub, Claude Code en Toggl — local-first, voor dev-ZZP'ers.

Project description

urenbewijs

Reconstrueer je urencriterium (1.225 uur/jaar) uit third-party timestamps — local-first, voor dev-ZZP'ers.

Leuker kunnen we het niet maken, wel makkelijker.

Bronnen

  • GitHub commits — sessie-clustering per repo (kost je een PAT)
  • Claude Code sessies — leest lokale .jsonl in ~/.claude/projects/
  • Claude.ai conversaties — uit Takeout-export
  • Toggl Track — voor handmatige uren (reizen, KvK, admin)
  • YouTube kijkgeschiedenis — gefilterd op tech-kanalen, voor leeruren

Toggl wint bij overlap. Output: CSV + Markdown + PDF, jaartotaal en maandtotalen, met bronvermelding.

Install

Vereist uv (single-binary Python-runner).

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

Gebruik

uvx urenbewijs init    # interactieve setup — PAT, Toggl, etc.
uvx urenbewijs run     # genereer rapport
uvx urenbewijs where   # toon paden van config + output

Config en tokens komen in ~/.urenbewijs/. Output in ~/.urenbewijs/output/.

Andere modi

uvx urenbewijs run --year 2025                  # vorig jaar
uvx urenbewijs run --source github,claude_code  # subset bronnen
uvx urenbewijs run --no-pdf --no-dedup          # debug
uvx urenbewijs run --verbose                    # toon elke sessie

Dagelijks automatisch

Windows Task Scheduler:

$uvx     = (Get-Command uv).Source
$action  = New-ScheduledTaskAction -Execute $uvx -Argument 'tool run urenbewijs run'
$trigger = New-ScheduledTaskTrigger -Daily -At 22:00
$set     = New-ScheduledTaskSettingsSet -StartWhenAvailable -ExecutionTimeLimit (New-TimeSpan -Minutes 30)
$user    = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive
Register-ScheduledTask -TaskName 'urenbewijs' `
  -Action $action -Trigger $trigger -Settings $set -Principal $user

macOS/Linux: gebruik cron of launchd.

Privacy

  • Alle tokens staan in ~/.urenbewijs/.env — op Unix chmod 0600
  • Tool draait local-only — geen calls naar 1225.nl backend
  • Output bevat geen ruwe message-content, alleen aggregaten

Development

git clone https://github.com/cryptoprins-ship-it/uren-administratie
cd uren-administratie
uv run --with-editable . urenbewijs --help

Status

  • GitHub source (PAT-based)
  • Claude Code source (auto-detect ~/.claude/projects/)
  • Claude.ai export source
  • Toggl source
  • YouTube/learning source (Takeout-based)
  • Deduplicatie (Toggl > claude_code > claude_web > learning > github)
  • CSV + Markdown + PDF rapport
  • init wizard
  • PyPI publish

License

MIT — zie LICENSE.

Project details


Download files

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

Source Distribution

urenbewijs-0.1.0.tar.gz (24.2 kB view details)

Uploaded Source

Built Distribution

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

urenbewijs-0.1.0-py3-none-any.whl (31.6 kB view details)

Uploaded Python 3

File details

Details for the file urenbewijs-0.1.0.tar.gz.

File metadata

  • Download URL: urenbewijs-0.1.0.tar.gz
  • Upload date:
  • Size: 24.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for urenbewijs-0.1.0.tar.gz
Algorithm Hash digest
SHA256 62a913829f4929566cf56fbeebbe1e244eb25fb7bb8bbae804ba6dc5b5f3574c
MD5 659393a1dc8223827868a044d8ba5719
BLAKE2b-256 87ba1befb805d6fd81d943b3431ea580f4c2ef7fc31a8bc68d9ea4e0df18c101

See more details on using hashes here.

File details

Details for the file urenbewijs-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: urenbewijs-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 31.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for urenbewijs-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6052330915d7dbf661908b6c797d1f04a0b0d494b111cf8348d14529238a6318
MD5 6a5ffb32bdbc124f1ac95d87ffed9a65
BLAKE2b-256 91ccd87c7935d3e9cfe672af9c80078accfb8714677be6dbac4eab392f6c0285

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page