{
  "markdown": "# WUF Unifies Footprints\n\n[![PyPI Latest Release](https://img.shields.io/pypi/v/wuf.svg)](https://pypi.org/project/wuf/)\n[![Pepy Total Downloads](https://img.shields.io/pepy/dt/wuf)](https://pepy.tech/project/wuf)\n[![GitHub License](https://img.shields.io/github/license/janthmueller/wuf)](https://github.com/janthmueller/wuf/blob/main/LICENSE)\n\nWuf shows local Git and filesystem timestamp activity as a representative\nMonday-to-Sunday week or an exact chronological timeline. It makes work\npatterns visible and marks events outside your intended working hours without\npretending that timestamps are hours worked.\n\n![Wuf terminal output](https://raw.githubusercontent.com/janthmueller/wuf/main/docs/public/wuf-output.svg)\n\nWuf is local, terminal-only, and currently alpha.\n\n## Install\n\n```bash\npip install wuf\nwuf --help\n```\n\nFor an isolated installation, use `uv tool install wuf` or `pipx install wuf`.\nStandalone archives are available from\n[GitHub Releases](https://github.com/janthmueller/wuf/releases).\n\n> Wuf is the new name of Workfold. The transitional `workfold` package and\n> command continue to invoke Wuf, but new installations and configuration\n> should use `wuf`.\n\n## Start with your current week\n\nRun Wuf inside a Git repository:\n\n```bash\nwuf\n```\n\nThe default view uses commit author timestamps from local branches, the current\nISO week, your operating system's timezone, and working hours of Monday-Friday\n08:00-16:30.\n\nCommon variations are deliberately composable:\n\n```bash\nwuf ~/code/project -t 2w3d\nwuf -t 2026-W31\nwuf -p fs\nwuf -p both -t 2w\nwuf -p portable -t all\nwuf -e git:tag:tagger fs:file:modified\nwuf --view timeline -t 2w\n```\n\n- `-t/--time` chooses the period.\n- `-p/--profile` chooses a named event set.\n- `-e/--events` replaces the profile with exact event selectors.\n- `--view timeline` shows exact chronological events instead of folding them.\n\nProfiles include `git`, `fs`, `both`, `portable`, and `full`. They change only\nwhich timestamp kinds are selected—not the time period, Git reachability, or\nfilesystem ignore policy.\n\n## Set your schedule\n\n```bash\nwuf --hours 'Mo-Thu 08:00-16:30; Fr 08:00-14:00'\nwuf --hours 'Mo-Fr 08:00-12:00,13:00-16:30'\nwuf --hours all\n```\n\nUse `--timezone Europe/Berlin` or another IANA zone when local time is not the\ndesired reference.\n\n## Save your defaults\n\nAdd a `wuf.toml` to a project, or use `[tool.wuf]` in `pyproject.toml`:\n\n```toml\ntimezone = \"Europe/Berlin\"\nhours = \"Mo-Thu 08:00-16:30; Fr 08:00-14:00\"\nprofile = \"portable\"\ngrid = \"vertical\"\nhide-empty-days = [\"weekend\"]\n```\n\nPersonal defaults may live in the platform configuration directory. Inspect\nthe effective values and where each came from with:\n\n```bash\nwuf --show-config\n```\n\n## What the chart means\n\nEach marker is a discrete timestamp observation, not a work session. Git\nhistory can be rewritten, reflogs can expire, and filesystem metadata is a\nmutable snapshot. Wuf reports incomplete or unsupported collection rather than\nsilently inventing evidence.\n\nCollection stays local: Wuf does not contact GitHub, GitLab, or another remote\nservice.\n\n## Documentation\n\n- [Using Wuf](https://janthmueller.github.io/wuf/guides/usage/)\n- [Coverage, privacy, and accuracy](https://janthmueller.github.io/wuf/reference/accuracy/)\n- [Contributing](https://janthmueller.github.io/wuf/guides/development/)\n\nRun `wuf --help` for the complete option and event-selector reference for your\ninstalled version.\n",
  "bytes": 3433,
  "sha": "7e5314f7de1b7bc65bb938d6e15b97ef2e293e91a41c0416a316c7d48aa17552",
  "repo_slug": "janthmueller/wuf",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_janthmueller_wuf_knowledge_index_md_50ef5025/readme"
}