NoHumanWrites

OPEN SOURCE · v0.3.3 · 30 September 2026

See which parts of a work have a signed record.

Check code and writing against records made when it was written. Find the matching parts, see what changed, and bring the gaps into your review.

A local command-line tool. The signature establishes a writing channel; it cannot establish who thought of the words.

Three signed lines.
One line to review.

In this small test, the first three lines were recorded and signed. A fourth was then added outside that channel. Here is what the checker finds.

demo.py · worked exampleSigned ledger evidence
  1. 1Adef total(items):
  2. 2A return sum(items)
  3. 3Aprint(total([1, 2, 3]))
  4. 4?print('review this new line')
75% attested · 3 of 4 units

demo.py [code]: 1 unattested line(s) → 4

A · matches a verified signed record? · no matching signed record

The percentage measures coverage by signed records, not the likelihood that AI wrote the file. An unattested line could come from a person or an unlogged tool. If a ledger cannot be verified with your trusted keys, the tool reports unverifiable and gives no score.

Start with a local check.

Clone the released version and point it at a project on your machine. You need Git, Python 3.9 or newer, and OpenSSH for signature verification.

There is no upload form or hosted scoring service here. Read the trust model ↗

git clone --branch v0.3.3 \
  https://github.com/NoHumanWrites/nohumanwrites.git
cd nohumanwrites
python3 nohumanwrites.py check /path/to/your-project

No records yet? The result may be “no provenance.” Existing unsigned harness logs are identified as such; they are a different kind of evidence from the signed example above.

In a pull request: one line in a workflow holds the attested share of a folder above a floor and fails the job below it. Verification runs against the public keys committed in your repository.

- uses: NoHumanWrites/nohumanwrites@v0.3.3
  with:
    path: docs
    fail-under: 95
Set up recording for future edits ↗

Use the tool

Follow the command reference, check the trust rules, or explore AI Grade, the label for the signed share of a work.

Read the documentation ↗

v0.3.0 also includes machinize: a signed rewrite with its source and verification report recorded. See the release notes.

Read the research

The full paper explains the method, the limits and the measurements from one developer’s machine. Those measurements are an experience report, not a general accuracy benchmark.

Read the current paper · v0.3 ↗

The earlier web edition · v0.2.2 remains available in full.