Diffsay
Generate a Conventional commit message from the staged git diff, locally with MLX.
Requires Python 3.10+ and Apple silicon.
Install
uv tool install diffsay
Or from this repo:
uv tool install .
Usage
git add .
diffsay
In a terminal, the suggested subject is prefilled. Move with the arrow keys to edit it, then press Enter to git commit. Ctrl-C cancels.
Piped use, or --print-only, only prints the subject:
git commit -m "$(diffsay --print-only)"
Default model is Qwen2.5-Coder-7B-Instruct-4bit. Bare names resolve under mlx-community/.
diffsay -m Qwen2.5-Coder-14B-Instruct-4bit
Use a 7B+ instruct model. Sub-3B models (Gemma 1B, Qwen 1.5B) tend to invent tokens and ignore the “one line” rule.
| Model | RAM (4-bit) | Notes |
|---|---|---|
Qwen2.5-Coder-7B-Instruct-4bit |
~6–8 GB | Default |
Qwen2.5-Coder-14B-Instruct-4bit |
~10–12 GB | Better whole-diff summaries |
Qwen2.5-Coder-32B-Instruct-4bit |
~20+ GB | Needs 24+ GB unified memory |
Llama-3.1-8B-Instruct-4bit |
~6–8 GB | US, follows instructions well |
Qwen3-8B-Instruct-4bit |
~6–8 GB | Newer general model |
Qwen3-14B-Instruct-4bit |
~10–12 GB | Stronger feat vs fix |
Develop
uv sync
uv run ruff check src tests
uv run pytest
Metadata
Release files for diffsay 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| diffsay-0.2.0.tar.gz | 80.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| diffsay-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 85.8 kB
Release files / diffsay-0.2.0.tar.gz
| Download URL | diffsay-0.2.0.tar.gz |
|---|---|
| Size | 80.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a07b498cbce147f6018339da5cead13bb23482a5f0629ae6818d31659d1d9f61
|
|
BLAKE2b-256 checksum How to use checksums |
a6b31ac5137949a7af1f1b7ba7d161c44655cf81a32d914bbf307770df562eea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / diffsay-0.2.0-py3-none-any.whl
| Download URL | diffsay-0.2.0-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0bcbca8753e19f11ab101b4a4d784c91534af07bddd5301b4d295ca5c75f4b94
|
|
BLAKE2b-256 checksum How to use checksums |
68df883076aa0087371daf0d73128d3e2370638b20bf14f8c4585b574cd2cb73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|