Chronicler 
Introduction
Chronicler is an innovative Python tool designed to streamline and automate the documentation process for development projects. By leveraging Git and various language processing technologies, it provides an intuitive interface for tracking changes, generating comprehensive documentation, and ensuring seamless integration with version control workflows.
Chronicler can draft commit descriptions from the current repository status and release notes from the difference between two Git branches. It supports local Ollama models by default and OpenAI models when OPENAI_API_KEY is configured.
Getting Started
Prerequisites
- Python 3.10 or higher
- Git
- uv
Installation
Install from PyPI:
uv tool install py-chronicler
Clone the repository:
git clone https://github.com/jasuca/chronicler.git
cd chronicler
Install the project and development tools with uv:
uv sync --group dev
Run the CLI from the project checkout:
uv run chronicler --help
requirements.txt is retained as a compatibility entry point for tools that still call pip install -r requirements.txt; project dependencies and release metadata live in pyproject.toml.
Usage
To use Chronicler, run the following command:
chronicler release [OPTIONS] LEFT_BRANCH RIGHT_BRANCH [PATH]
chronicler commit [OPTIONS] [PATH]
Options
- commit Generate commit description
- release Generate release notes
- --llm [ollama|openai]: Select the language model provider.
- --llm-model TEXT: Specify the provider model. The default is
llama2. - --help: Display the help message.
Examples
Comparing two branches: chronicler release main develop /path/to/repo
Generate current repo commit: chronicler commit
Generate current repo commit using Ollama(mistral): chronicler commit --llm=ollama --llm-model=mistral .
Generate release notes with OpenAI:
OPENAI_API_KEY=... chronicler release v0.1.1 main . --llm=openai --llm-model=gpt-3.5-turbo-instruct
Development
Run tests:
uv run pytest
Run the CI lint checks locally:
uv run flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
uv run flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
Build release artifacts:
uv run python -m build
If you already synced the dev environment and want to avoid creating an isolated build environment, use:
uv build --no-build-isolation
The package is published to PyPI as py-chronicler. The console command installed by the package is chronicler.
Contributing
We welcome contributions to the Chronicler project! If you have suggestions for improvements or want to contribute code, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Make your changes and commit them (
git commit -am 'Add some feature'). - Push to the branch (
git push origin feature-branch). - Create a new Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Release files for py-chronicler 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| py_chronicler-0.1.3.tar.gz | 6.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| py_chronicler-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.2 kB
Release files / py_chronicler-0.1.3.tar.gz
| Download URL | py_chronicler-0.1.3.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aea1279dabafb1f467e61c917165e029828974484ea399a8b9c0e0344c86d83e
|
|
BLAKE2b-256 checksum How to use checksums |
62f1af8e51076280b426b677ddc4792ad66db814dc8cfb557387c386d2ffc9af
|
| 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 May 30, 2026.
Transparency logRelease files / py_chronicler-0.1.3-py3-none-any.whl
| Download URL | py_chronicler-0.1.3-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0a42b1c6ef1e8999c93b612455d131e4387aa76c0fb8702fa5477bf82f31c501
|
|
BLAKE2b-256 checksum How to use checksums |
eb5410583613f7d543208da37d3acc04223bac11e766ce448757540eaaa65c4a
|
| 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 May 30, 2026.
Transparency log