worklogs
Local markdown worklog helpers for developer workflows.
worklogs creates dated markdown files under a scope, date folder, and compact
filename:
~/worklog/<scope>/YYYY/MM-month/DD-ddd/HHMM-Ha--name--kind.md
Installation
uv tool install worklogs
Or with pip:
python -m pip install worklogs
Install workset too if you want worklogs to create git worksets:
uv tool install workset
Usage
Check the installed version:
worklogs --version
Create your first note:
worklogs new first-note--note --scope personal
Create a plan:
worklogs new api-refactor--plan --scope work
Plans create a linked companion note by default:
HHMM-Ha--api-refactor--plan.md
HHMM-Ha--api-refactor--note.md
Preview the generated paths and markdown without writing files:
worklogs new api-refactor--plan --scope work --dry-run
Print created paths for scripts:
worklogs new first-note--note --scope personal --print-path
Supported kinds:
plan
note
investigation
codereview
Worksets
worklogs can create or attach a git workset through the workset package.
Configure repo aliases in ~/.config/workset/repos.toml:
[workset]
root = "~/worksets"
date_prefix = true
timezone = "America/Toronto"
[repos]
api = "~/repos/api"
web = "~/repos/web"
Create the plan first, then attach a workset:
worklogs new api-refactor--plan --scope work
worklogs workset api-refactor api:feat/refactor
Or create the worklog and workset in one command:
worklogs new checkout-flow--plan --scope work \
--workset api:feat/checkout-flow \
--workset web:main
For a first successful zero-to-workset example:
git clone git@github.com:your-org/api.git ~/repos/api
worklogs new api-refactor--plan --scope work
worklogs workset api-refactor api:feat/refactor
Worksets are created under:
<worksets-root>/YYYY/MM-month/DD-ddd/<workset-path>/
Config
Optional defaults live in:
~/.config/worklogs/config.toml
Example:
root = "~/worklog"
default_scope = "work"
timezone = "America/Toronto"
worksets_root = "~/worksets"
Resolution order:
- CLI flags
- environment variables:
WORKLOG_ROOT,WORKLOG_SCOPE,WORKLOG_TIMEZONE,WORKLOG_WORKSETS_ROOT - config file
- package defaults
With default_scope configured, the fast path can omit --scope:
worklogs new api-refactor--plan
With worksets_root configured, the workset path can omit --worksets-root:
worklogs workset api-refactor api:feat/refactor
For shorter personal shell usage, add a local alias:
alias wl='worklogs'
The package installs the explicit worklogs command; wl is intentionally left
as a shell-level shortcut so it cannot shadow another global command.
Development Workflow
Run the standard checks before opening a PR:
uv run ruff format --check .
uv run ruff check .
uv run mypy
uv run pytest
uv build
If you are using standard Python tools instead of uv:
python -m ruff format --check .
python -m ruff check .
python -m mypy
python -m pytest
python -m build
CI / GitHub Actions
GitHub Actions runs:
- fast Ruff-only checks
- Ruff, mypy, and pytest
- package build and wheel smoke test with pip
- package build and wheel smoke test with uv
The release workflow in .github/workflows/release.yml
builds and publishes the package to PyPI when a GitHub Release is published.
Publishing
This project uses PyPI Trusted Publishing. The PyPI pending publisher should be:
PyPI project name: worklogs
Owner: alik-git
Repository name: worklogs
Workflow name: release.yml
Environment name: pypi
Create a GitHub Release for the version in pyproject.toml:
gh release create v0.3.6 \
--title "v0.3.6" \
--notes "Clarify worklog and workset onboarding."
Publishing is release-driven on purpose: normal pushes and pull requests build and test the package, but only GitHub Releases publish to PyPI.
Metadata
Release files for worklogs 0.3.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| worklogs-0.3.6.tar.gz | 38.3 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| worklogs-0.3.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.4 kB
Release files / worklogs-0.3.6.tar.gz
| Download URL | worklogs-0.3.6.tar.gz |
|---|---|
| Size | 38.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c7032bdd1984d23884f8d07aad347834847f47c915c76a82d885d1712e41d382
|
|
BLAKE2b-256 checksum How to use checksums |
8f218f0d9f2cf59d0cbee9ad6281f59c61452ff60b57b5f01af1369e4d0edd9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 16, 2026.
Transparency logRelease files / worklogs-0.3.6-py3-none-any.whl
| Download URL | worklogs-0.3.6-py3-none-any.whl |
|---|---|
| Size | 10.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
34ec97c3d1a4cb01410e07afe7b252ec0717bf8c55d8bdf35c9651c61e273296
|
|
BLAKE2b-256 checksum How to use checksums |
190ce2ed7dd4c3bd3651cfbdb302ee6175c8b1b2e25be9462299880cdcabe5ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 16, 2026.
Transparency logSecurity for worklogs 0.3.6
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.
Attestation for worklogs-0.3.6.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 Jun 16, 2026.
Transparency logA 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.