Skip to main content

Aggregate local work activity from Gemini, Claude, Cursor, OpenAI Codex IDE, Chrome, Mail, worklog, optional GitHub public activity, and optional Screen Time.

Project description

Gittan logo

Gittan

Timelog Extract

Local time reports from how you actually work.

Aggregate IDE, browser, mail, and worklog signals—plus optional GitHub activity—into project hours and optional invoice PDFs.
Core reporting is local-first; there is no built-in cloud upload path.

Python 3.9+ License: GPL-3.0 PyPI package


Install

Requirements: Python 3.9+. You do not need a PyPI account to install—only maintainers need PyPI access to publish.

Default (pip):

python3 -m pip install --user timelog-extract

Until the first successful upload to PyPI, that command will not find the package—use from source in “More install options” below.


More install options

Virtual environment

python3 -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install timelog-extract

pipx (isolated CLI; install pipx first—e.g. brew install pipx && pipx ensurepath on macOS)

pipx install timelog-extract

From source

git clone https://github.com/mbjorke/timelog-extract.git
cd timelog-extract
python3 -m pip install -e .

Verify:

gittan --help
gittan -V

A successful PyPI install (pip / pipx / venv pip above) puts gittan and timelog-extract on your PATH.

Publishing checklist: docs/VERSIONING.md.


Get started

  1. Health check — from a git repo that should have (or will have) a worklog:
    gittan doctor
    
  2. First-time setup — wizard for environment, optional global TIMELOG.md hooks, and timelog_projects.json:
    gittan setup --dry-run    # preview
    gittan setup              # interactive
    
  3. First report — today’s activity:
    gittan report --today --source-summary
    

TIMELOG.md in the repository root (where you run the command) is the default worklog unless you pass --worklog or set a path in config. See Timelog vs config below.


Everyday commands

Goal Command
Full report (prompts for range if you omit dates) gittan report
Today / last week / custom range gittan report --today · --last-week · --from 2026-04-01 --to 2026-04-30
Quick hours overview gittan status --today
Source mix / empty collectors gittan sources (and docs/SOURCES_AND_FLAGS.md)
Edit projects JSON gittan projects
Machine-wide commit → TIMELOG.md hooks gittan setup-global-timelog

JSON or HTML export (quiet, script-friendly):

gittan report --today --format json
gittan report --from 2026-04-01 --to 2026-04-30 --format json --json-file out/truth.json --report-html out/report.html

Optional GitHub activity: set GITHUB_USER or --github-user; optional GITHUB_TOKEN for rate limits. Details: docs/SOURCES_AND_FLAGS.md.


What else is in the repo

  • Friend trialpython3 scripts/friend_trial.py --today --invoice-pdf and friend_trial/FEEDBACK_TEMPLATE.md.
  • Cursor extension (companion, beta) — cursor-extension/README.md.
  • Engine script (same API as the extension): python3 scripts/run_engine_report.py --today --pdf.

Timelog vs config

  • TIMELOG.md — human-readable work journal; safe to treat as a diary.
  • timelog_projects.json — machine config; back it up (e.g. under ~/.gittan/). Setup creates timestamped backups before replacing invalid JSON.

Troubleshooting

Issue Where to look
“0 events” / sources empty docs/SOURCES_AND_FLAGS.md
Missing deps / editable install python3 -m pip install -e . from clone
Invalid project config gittan setup; backups named timelog_projects.backup-*.json
Paths / permissions --worklog, browser DBs, Mail / Screen Time access
Global timelog automation gittan setup-global-timelog, GLOBAL_TIMELOG_AUTOMATION.md

Documentation map

Vision, privacy, CLI flags, style, and release checklists live under docs/. Start with docs/VISION_DOCUMENTS.md for an index (e.g. SOURCES_AND_FLAGS.md, PRIVACY_SECURITY.md, TERMINAL_STYLE_GUIDE.md, CLI_FIRST_V1_RELEASE_CHECKLIST.md).


Contributing · tests · 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

timelog_extract-0.2.3.tar.gz (110.4 kB view details)

Uploaded Source

Built Distribution

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

timelog_extract-0.2.3-py3-none-any.whl (99.7 kB view details)

Uploaded Python 3

File details

Details for the file timelog_extract-0.2.3.tar.gz.

File metadata

  • Download URL: timelog_extract-0.2.3.tar.gz
  • Upload date:
  • Size: 110.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for timelog_extract-0.2.3.tar.gz
Algorithm Hash digest
SHA256 048fa15c774d36f768dc137f8a64a8a0998d500c27af8048fd2bb1ee025d1662
MD5 e8c390754eca6bdb8085ea2b01d4e29a
BLAKE2b-256 a19101db5cda728826ec9f4f08d276325e2c5ef2117a55cf9b54632a741409bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_extract-0.2.3.tar.gz:

Publisher: pypi.yml on mbjorke/timelog-extract

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timelog_extract-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: timelog_extract-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 99.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for timelog_extract-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fd34a6bd7e0fc64133844c78156b3355a7fca89f3e9e14043ab17ab97cb89f20
MD5 ede96819a0c40eccff3cc51c3854218e
BLAKE2b-256 45eef4b49e8d20ce1e6b969cc92a55e10d2c16373d45e13250b1fefe30aa69e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_extract-0.2.3-py3-none-any.whl:

Publisher: pypi.yml on mbjorke/timelog-extract

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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