Context
Cryptographic causation
Protocol
HAPPI/1.4
Engine
Many providers
Status
Chain and quote check live

Do not trust the AI.
Witness it.

CodeTonight — Cape Town, South Africa

We build honest open-source AI that keeps a receipt: the why, the what and the how behind everything it does. You do not have to take its word for any of it. You can look.

Every decision is written down as it happens, sealed to the one before it, and linked to the notes the machine was working from at that moment. Change any of it and the seals stop matching a root you kept earlier. Then every quotation it uses is checked, character by character, against the source it cites. A quotation that is not in that source fails, and the failure cannot be argued with, because it is arithmetic rather than opinion.

AGPL-3.0HAPPI/1.4Cape Town, ZABitcoin block 956992 (pilot)

01 — the idea

You keep the receipt.

When a person makes a decision you can ask them what they were thinking and check whether the answer holds up. When an AI makes a decision you usually get a confident paragraph and no way to tell whether it is true. Asking the machine again does not help, because the second answer is produced the same way as the first.

So we stopped asking. Instead, the machine writes down what it decided, what it believed at the time, and what it claimed — while it is deciding, not afterwards — and each record is sealed to the one before it. Change any earlier entry and every seal after it stops matching.

Be precise about what that buys, because it is easy to overstate. It does not make the records impossible to change. Someone who can rewrite the file can also recompute the seals, and end up with a set that agrees with itself. What the chain gives you is that the tampering shows up against a root you already held — one you wrote down earlier, or that someone outside signed, or that was published somewhere nobody can quietly edit. The value is in comparing against that earlier root, which is why the anchoring work below matters and why we are careful to call it a pilot rather than a running service.

None of the cryptography here is new. Hash chains, Merkle trees and signatures are decades old and we did not invent any of them. What is ours is the composition — four separate records, written at different moments by different parts of the system, that all have to line up — and the fact that a sceptic can sit down and try to break it without asking our permission. Four records raise the cost of a convincing forgery. They do not make one impossible, and only the comparison against an outside root does that.

In plain terms: it is a receipt with a wax seal, and you kept a photograph of the seal. Anyone can read the receipt. Anyone can hold it against your photograph and see whether the seal was broken and re-made. Without the photograph, a good enough forger wins; with it, you do not have to know the shopkeeper.

02 — the mechanism

Four records. One run. One receipt.

Each of the four answers a different question, and each one can be attacked on its own terms. Under every entry below is the thing that would prove it wrong.

01

The decision

IDR

An Intent Decision Record: what was decided, why, how, and when. Records are hash-chained in order and gathered under a single root value, so the whole set can be checked at once and the recorded evidence read back step by step. Reading it back is not re-running the model; see the list further down.

Breaks if: you can alter one record and still match a root that was written down beforehand and kept out of your reach.

02

The belief

Memory chain

A separate record of what the machine had in front of it at the moment it decided. Kept apart from the decision on purpose: a decision that looks reasonable can still rest on notes that were already wrong.

Breaks if: you can swap the context behind a decision and the two chains still agree.

03

The claim

cite.verify

Every quoted sentence is matched, character for character, against the source it is attributed to. Found or not found. There is no partial credit and no persuading it. It checks that the words are really there — not that they support the point being made, which is still your job as a reader.

Breaks if: a quotation that is absent from the supplied source ever comes back green.

04

The commitment

Congruent Continuity In build

Before acting on an assumption, the machine signs a short bet: here is what I am taking as true, and here is what would prove me wrong. An outside checker settles it. If the assumption is refuted, everything built on top of it is marked suspect.

Breaks if: a bet can be written after the outcome is known.

Why four and not one: a single log proves only that a log exists. These four have to agree with each other, and they were written at different moments by different parts of the system, so faking the set means faking all four in a way that still lines up. That raises the cost. It does not make forgery impossible — someone with write access to everything can redo all four consistently. What settles it is holding the set against a root recorded before the tampering, which is the job of the anchoring described further down, and the reason we call that a pilot rather than a running service.

03 — try to break it

Do not believe us. Edit the record.

The demonstration is simple enough to be unfair to us. You are shown a chain of sealed records. You change one of them — a word, a number, whatever you like. Every seal from that point forward turns red, and stays red, because each seal is computed from the record before it.

There is a second one for quotations. Take a sentence with a citation, alter the source it points at, and watch the check fail. Then quote something that was never in the source at all and watch it fail the same way. That is the property we care about most: a quotation that is not in the source it cites cannot pass, because passing is a calculation rather than a judgement. It is a narrow guarantee and we would rather state it narrowly: it catches invented quotations, not weak arguments.

Both run entirely in your browser. Nothing is sent to us, and there is nothing to sign up for.

The demonstrations live on the GRASP site, which is a separate page with its own interactive engine. We link it rather than copying it, so there is only ever one version to keep honest.

04 — the protocol

HAPPI: talking to a model should be one call.

Open standard · version 1.4

Every AI provider has its own way of being asked a question, and every one of them changes it. Code written against one of them is stuck to it. HAPPI is a small open standard that puts one shape around all of them: one envelope goes in, one stream of events comes out, whichever model or provider is behind it.

That sounds like plumbing, and mostly it is. It matters here for one reason: because every request and every reply passes through the same shape, the same shape is where the record gets written. Swapping the model underneath does not change what gets recorded.

Versions 1.0 through 1.4 are all accepted, so something written against an earlier one still works today. Version 1.3 added the citation check. HAPPI/1.4 added pre-registered commitments — the fourth record above.

Without it
openai.chat(...)
anthropic.messages(...)
gemini.generate(...)

three shapes, three sets of
error handling, three places
to write a record
With HAPPI
happi.call(envelope)
  -> event: started
  -> event: context
  -> event: cite.verify
  -> event: completed

one shape, any provider,
one place to write the record

The specification is a single readable file, and it is executable: bash happi.md runs the quickstart out of the document itself. Read it at www.happi.md.

05 — the open proof layer

GRASP is the moat, given away.

AGPL-3.0

Governed Reasoning And Signable Provenance. It is the reference implementation of everything described above, published under a copyleft licence, and it is the answer to the obvious objection: if only we can check the receipts, they are not receipts.

So the checker is a separate small program you can run yourself, on our records or on anyone else's. It does not call us and it does not need our permission. If our own chain were ever tampered with, our own tool would say so.

The format is written up as an individual Internet-Draft at the IETF, because a receipt format owned by one company is a receipt format that can be quietly changed. Being clear about what that is: an individual draft is a submission, not an approval. No working group has adopted it and the IETF has endorsed nothing.

More on the site: grasp-web-chi.vercel.app — including the parts we are careful not to overclaim.

06 — the engine

No single vendor. And you can watch it choose.

GRIP is the working environment and HAL is the layer underneath it that reaches the models. HAL routes across many providers, falls over to another when one is rate-limited or down, and says in the record which one answered. The default is deliberately not a single vendor, because a system that can only reason through one company's model is that company's system.

It can also convene several models at once on the same question — running in parallel or taking turns — and have a different model judge the result. That matters for review: a model marking its own work is not a review, and the record shows plainly who sat and who judged.

One property we hold ourselves to: if two different models arrive at the same conclusion from the same notes, the record should reduce both to the same short identifying value, so you can tell "these two runs agreed" from "these two runs merely sound alike". The mechanism works. We have not yet demonstrated it across enough runs and models to call the property proven, so the table below lists those as two separate lines with two different statuses, rather than one line that would have to be both.

Where the line is drawn. The standard (HAPPI) and the proof layer (GRASP) are open and yours to take today. The runtime that makes it fast is used internally and by a small number of organisations while it is being prepared for release. We would rather say that plainly than describe a private thing as open.

The open-core boundary. On the open side, free to clone today: HAPPI/1.4, the protocol, and GRASP under AGPL-3.0. On the other side, not yet open: HAL, which reaches any model, and GRIP, the working engine, used internally and by a small number of organisations while the release is prepared.
Where the line sits today. It moves in one direction only.

07 — the fourth record

Confidence is the worst signal we have.

Partly in build

A model that has gone down the wrong path does not sound uncertain. It sounds consistent, because it is being consistent — with a premise that happens to be false. Everything downstream of that premise is coherent and wrong at the same time. So the machine's own confidence is close to the least useful number in the system, and any safeguard built on it inherits the same blind spot.

Congruent Continuity replaces the question. Before acting on an assumption that matters, the machine signs a short falsifiable statement — this is what I am taking as true, this is what would show me wrong — and does it before the action, so the reasoning cannot be quietly rewritten to fit the outcome. Something outside the machine then settles it: a plain deterministic check wherever one exists, and a model from a different vendor where one does not. When a premise is refuted, everything that depended on it is marked suspect rather than left standing.

Honest status, because this one is easy to oversell. The recorder is written and tested and has been since 30 August 2026. The settlement worker, the statistical predictors and the pre-flight watcher are still being built. There is no live gate — nothing is blocked by this today, and we will not describe it as protecting anything until it does.

08 — on the record

What we are not claiming.

A page about honest machines that overstates its own position would be self-refuting. So here is the list of things people might reasonably assume from everything above, which are not true.

  • Not new cryptography. We recombine primitives that already existed. We did not invent a cipher.Shipped
  • Not bit-for-bit replay. We record evidence and re-derive the decision. We do not claim to reproduce a model run byte for byte — no one can, across different hardware and batching, and we will not pretend otherwise.Shipped
  • Tamper-evident, not tamper-proof. The chain shows that records were changed. It does not stop anyone changing them. Someone who can rewrite the files can recompute the seals too; what they cannot do is match a root you already held elsewhere.Shipped
  • The quotation check does not check reasoning. It proves a quoted passage really appears in the source it cites. It says nothing about whether that passage supports the argument built on it.Shipped
  • Post-quantum signing is parity, not an advantage. It is available. It is not a reason to pick us.Provisioned
  • Anchoring to Bitcoin is a proven pilot, not continuous production. One block, 956992. Not a running service.Pilot
  • The self-check demonstration is one machine checking its own chain. Single node, no network, not anchored.Shipped

Our own claims, with a status on each.

We hold ourselves to the standard we are describing. Where there is doubt, we mark it down rather than up.

Claim Status
Signed decision chain, a separate belief chain, and a claim check, composed togetherShipped
Exact-match citation check — a quotation absent from the supplied source cannot passShipped
Hash-chained, Merkle-rooted, HMAC-SHA256 by defaultShipped
A substrate that is not tied to one vendor, with failover recorded openlyShipped
Same belief, different model, reduced to the same identifying value — the mechanismShipped
Same belief, different model — demonstrated across many runs and modelsRoadmap
GRASP published as an open reference implementation under AGPL-3.0Shipped
Congruent Continuity: the recorderShipped
Congruent Continuity: settlement, predictors and the pre-flight watcherIn build
Bitcoin anchor of a pilot chain (block 956992)Pilot
Per-tenant Ed25519 signing pathProvisioned
Post-quantum dual signing for finance (ML-DSA-65)Provisioned
Continuous production anchoring to BitcoinRoadmap

What we will not do.

We will not ship a thing that is unfinished, and we will not build a thing that should not exist. Where we have drawn a line between what is open and what is not, we say where the line is rather than blurring it.

And these are the phrases you will not find on this page, because each of them is a way of sounding impressive without saying anything:

enterprise-grade load-bearing leverage synergy cutting-edge next-generation game-changing world-class empower supercharge seamless AI-powered trusted by industry leaders digital transformation

09 — the open work

Small tools, each with something to prove.

Around the engine sits a set of open-source tools. Each one carries a claim that could be shown false, which is the only kind of claim worth publishing. Clone any of them.

Bridge

grip-decision-chain

order-evident · append-only · check it yourself

The public face of the record: every decision our AI ships into its own codebase, hash-linked so nothing can be quietly dropped or reordered. No code, no diffs, no client data — an allowlist of what may appear, rather than a redaction of what may not.

git clone https://github.com/CodeTonight-SA/grip-decision-chain

Tool

git-solve

a fixed-point proof

Two sessions edit the same files at once and end up disagreeing. This works the disagreement back down to one answer, a step at a time, and shows every step it took — so you can check the result instead of trusting it.

git clone https://github.com/CodeTonight-SA/git-solve

Tool

prompt-cache-keepalive

a cost model you can check

Keeps a long session's cache warm so it stops paying to re-read the same context. The saving is arithmetic you can repeat, not a number we assert.

git clone https://github.com/CodeTonight-SA/prompt-cache-keepalive

Tool

grip-post

refuses to write filler

A formatter for LinkedIn with a gate that will not write empty phrases. We run it on our own writing, which is why the list above exists.

git clone https://github.com/CodeTonight-SA/grip-post

Tool

grip-session-mesh

three layers, cleaned up on a timer

Shares one knowledge base across concurrent sessions: an inbox, a register of who is running, and live snapshots that expire instead of piling up.

git clone https://github.com/CodeTonight-SA/grip-session-mesh

Tool

skill-forge

against skill atrophy

For engineers using AI every day: keep your own edge sharp. A sword is forged by use, not by watching someone else swing one.

git clone https://github.com/CodeTonight-SA/skill-forge

Witness

grip-rsi-witness

self-improvement, in the open

The engine improving itself, with each step recorded as it happens. Watching it is the point; a claim about self-improvement with no record is just a claim.

Sandbox

happiverse

the protocol, running

HAPPI in motion rather than on paper — a place to see what the envelope and the event stream actually look like.

10 — built and running

Things with real users.

Work that shipped and stayed shipped. Some of it is serious and some of it is a father and son making each other laugh, and both are here on purpose.

Game

Kwartel

three years · more than 100 000 players

An Afrikaans daily word game. Plain JavaScript, works offline, no dependencies at all. Woordraaispel — lekker.

App

google-vibe-os

no telemetry

Gmail, Calendar, Drive and Tasks in one desktop app, reachable by an AI assistant if you want it to be. It talks to Google, because that is the whole point of it, and to a model provider if you switch the assistant on. It sends nothing to us, and it carries no analytics or tracking of any kind.

11 — for the fun of it

Made with my son.

Personal projects, open source, built for laughs. They are on this page because pretending a company is only its serious work is its own kind of dishonesty.

Game

Tung Tung Tung Sahur

by a father and son

Tap when the word appears. Very little code, a great deal of noise.

Game

Mixing Mod

version 0.9.0

Combine characters into hybrids until one of them becomes the final boss.

Also in the workshop: TWR, a clipboard manager that treats your clipboard like a version-controlled file. And tralala.

12 — who this is

Three people. Cape Town.

Small, focused and opinionated. If you write to us, one of these three reads it.

V>>

Founder, engineer, and a self-declared polymath who studied philosophy and never quite got over it. Favourite programming languages: Latin and Greek. Some people call him a leader and some call him a jerk; the ones who stay are the ones patient enough to hear out the ramblings.

Builds small AI for the public, for a better tomorrow. Like Gandalf, often late, but arrives precisely when he means to. Claims, in the manner of Hobbits and with no supporting evidence whatsoever, to have recently celebrated his eleventy-first birthday. Defers to his elders. Blessed, or cursed, with a habit of seeing the pattern connecting two things that are almost certainly unrelated.

A>>

Craftsperson and scientist. Full-stack, business-minded, and the reason V>> stays on the ground. A gentle giant, free of mind and spirit, who spends a good deal of his time helping other people put down constraints they invented for themselves — and does it for nothing.

"Did you know the brain is capable of anything?" said one of his students. We think that is actually true. Describe an idea and he will start building it before you finish the sentence. His bias for action is matched only by his bias towards good times and good meat. Braai until we die.

K>>

Genius. Sometimes fewer words say it best. Hand him your C and he will take over the memory management for an organisation's oldest codebase. He rescues servers for a living.

Reportedly reads shell scripts at night, because it is the only thing that puts him to sleep — there is a book called bash sleep --help. Builds things that ought to be impossible. As gracious as he is clever.

13 — get in touch

Write to us.

development@codetonight.co.za

Tell us what you are building, what you need to be able to prove about it, and who has to believe you. If you would rather read first, the whitepapers are available under a short confidentiality agreement — say so below or email us directly.