Knot AI Knot Scribe reads a diff and writes the commit message. Both models run entirely on your own hardware, with no code leaving your device. Knot Delta is the bigger one: hand it a change and it reports what actually moved and where the risk sits.
KNOT SCRIBE · 7B
Writes your commits
Reads a diff and writes a Conventional-Commit message with the right type on it. Open weights, on Hugging Face and Ollama.
KNOT DELTA · 9B
Explains what changed
The bigger of the two, aimed at a different question: given a change, it says which files moved and where the risk sits.
git diff → Knot Scribe · 7B → fix: prevent division by zero
Knot Scribe reads the change and gives back a structured message, which is the same contract it was trained and evaluated against.
01
It takes the git diff, plus a little file context for big multi-file changes, packed so the model sees the whole commit's scope.
02
Structured JSON output constrained to {title, body}, a correctly-typed Conventional-Commit subject and body, with fabricated issue-refs and sign-offs stripped.
It's the model behind Knot's hands-free auto-commit, but it's open and standalone, so you can point it at any git workflow.
The set is called gold-v1: sixty hand-reviewed commits, balanced across all eleven commit types. v4 and v5 were both scored on it on 2026-07-21, through the shipping Ollama path.
TYPE ACCURACY, RELEASE OVER RELEASE
The benchmark got harder at v5. v3 and v4 were scored on an earlier JS/TS-only set; v5 is scored on the balanced eleven-type set used everywhere below, where v4 re-scores 48.3%. So v5's real gain over v4 is +11.7 points, larger than the release numbers show.
| Metric | v4 | v5 |
|---|---|---|
| Type accuracy | 48.3% | 60.0% |
| Scope accuracy | 68.3% | 75.0% |
| Title word-overlap | 27.2% | 19.1% |
| Exact title | 6.7% | 0.0% |
| Generation errors / 60 | 7 | 4 |
| Type | n | v4 | v5 |
|---|---|---|---|
| feat | 6 | 4/6 | 4/6 |
| fix | 6 | 5/6 | 4/6 |
| refactor | 6 | 0/6 | 2/6 |
| perf | 6 | 2/6 | 2/6 |
| test | 5 | 4/5 | 4/5 |
| docs | 6 | 4/6 | 5/6 |
| build | 5 | 0/5 | 0/5 |
| ci | 6 | 5/6 | 6/6 |
| chore | 6 | 5/6 | 6/6 |
| revert | 2 | 0/2 | 0/2 |
v5 lifts type accuracy (48 to 60) and scope (68 to 75) and cuts the format errors nearly in half (7 to 4), with the biggest gains on the types v4 got wrong, refactor (0 to 2) and ci and chore up to near-perfect. Title word-overlap and exact-title fall (27 to 19, and 7% to 0%) because v5 paraphrases. It writes its own titles, often more descriptive than the single human commit it is scored against, and exact-match penalizes that. build and revert stay hard (a convention clash and too few examples).
Knot Delta is the 9B half of the pair, and its report names which files moved and what the change was trying to do. It ships inside Knot. Every number below is measured against real git history, beside the baseline a lazy model would score. The scorecard comes from a frozen held-out set of 325 commits across nine repositories Delta never trained on: vite, radicle and svelte are among them. The grounding table underneath adds three single-repo runs on top of that set.
Change-type F1 (intent read from code)
0.409
vs 0.032 majority-class
12.9× base rate · n=235
Cited files that exist in the diff
100%
0% hallucinated on four repos
holds on unseen Go
Reports fully grounded
98.5%
325 held-out commits
first-pass 88%
Exact-line precision
0.64
0.94 lenient (right region)
file and region reliable · exact line is not
| repo | language | verified | line precision |
|---|---|---|---|
| flask | Python | 11/12 | 74% |
| gin | Go · unseen | 12/12 | 70% |
| ripgrep | Rust | 12/12 | 52% |
| frozen 325 | JS/TS + | 320/325 | 64% |
Delta never cites a file that isn't in the diff (100% across every repo, including Go, which is absent from its training data), and it lands in the right region 92 to 100% of the time, depending on the repo. It does not yet reliably pin the exact line: that lands 52 to 74% of the time, lowest on Rust.
Knot Scribe is a QLoRA fine-tune of a permissively-licensed base, trained on 3,227 diff-to-message pairs mined from permissive open-source repositories.
Every file (adapter weights, GGUF, tokenizer, and the full model card) is public on Hugging Face.
Scribe only makes sense on a staged diff. Delta will read whatever diff you hand it.
ollama run pointbreaklab/knot-scribe "$(git diff --staged)" ollama run pointbreaklab/knot-delta "$(git diff)" llama.cpp also works, and Ollama is only the shorter path. The GGUF and the exact command for each model are on its Hugging Face card below. Metal, CUDA and CPU all load the same GGUF.
Knot Scribe writes every commit message inside Knot, and Knot Delta powers its change reports. Knot is PointBreakLab's peer-to-peer version control system.