OPEN MODEL · APACHE-2.0 · RUNS ON YOUR MACHINE
Knot AI Knot AI

Two small models
that run on your machine.

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.

git diff → Knot Scribe · 7B → fix: prevent division by zero

01 KNOT SCRIBE

Scribe only ever sees a diff

Knot Scribe reads the change and gives back a structured message, which is the same contract it was trained and evaluated against.

01

What it sees

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

Writes the message

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.

02 SCRIBE BENCHMARK

How Scribe was scored

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

v3
40%
v4
55%
v5 · current
60%

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.

metrics.txt · gold-v1 · 60 commits, all 11 types
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
by-commit-type.txt · correct / n · gold-v1 · 10 of the 11 types
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).

03 KNOT DELTA

Delta's numbers

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

grounding.txt · exact-line precision · 4 unseen repos
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.

04 TRAINING & FILES

Trained on one RTX 3060

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.

knot-scribe-model.txt
Base model → A permissively-licensed open code model · Apache-2.0
Method → QLoRA (4-bit) · completion-only SFT (loss on the message only)
Hardware → A single NVIDIA RTX 3060 (12 GB)
Data → 3,227 diff→message pairs mined from permissive OSS · JS/TS, Python, Rust, Go
Privacy → No user data · no private code · public commit history only
Formats → LoRA adapter (PEFT safetensors) + LoRA GGUF (llama.cpp / Ollama)
License → Apache-2.0 (open-base derivative)

Every file (adapter weights, GGUF, tokenizer, and the full model card) is public on Hugging Face.

05 RUN IT

Running it

Scribe only makes sense on a staged diff. Delta will read whatever diff you hand it.

KNOT SCRIBE · commit message
ollama run pointbreaklab/knot-scribe "$(git diff --staged)"
KNOT DELTA · change report
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.