Skip to content

Proof of Thought, inside your product

Embed the editor, let people bring their AI agents, and seal what they write. Each seal shows which words were typed, shaped, written by AI or pasted, and whether a person was there.

Proof of ThoughtAH271NSHS10/13/26
proof.exalto.ai/AH271NSHS87% typed/shaped · 8% AI · 5% external4 prompts · 2 sessions, 1hr48min

The editor

One call puts the Proof of Thought editor in your page: writing, suggestions, comments and the live seal, recorded as it happens.

Embed the editor

Agents

Your users connect Claude, Codex or any MCP client to their documents in your product. Every word an agent writes is credited to it.

Connect agents

Seals

A snapshot of a document and where its words came from, at a short link anyone can open and check.

Seal and verify

Your accounts, sign-in, document lists, folders, sharing screens and notifications. Proof has no accounts of its own: your server tells Proof who your users are and what they may open, and Proof records what happens in the editor. Proof of Thought itself is built this way, on the same API you use.

Your server holds a secret key; the browser only ever gets a short-lived session token for one document.

server.ts
import Proof from "@exalto/proof";
const proof = new Proof(process.env.PROOF_SECRET_KEY);
const ada = await proof.users.upsert("u_42", { name: "Ada Lovelace" }); // your id for Ada
const doc = await proof.documents.create({ owner: ada.id, name: "On the Analytical Engine" });
const session = await proof.sessions.create({ user: ada.id, document: doc.id });
// Send session.token to the page. Later, when Ada is done:
const seal = await proof.seals.create(doc.id, { user: ada.id });
console.log(seal.url); // https://proof.exalto.ai/AH271NSHS
page.ts
import { mountEditor } from "@exalto/proof-embed";
mountEditor(document.querySelector("#editor"), {
document: "doc_8Hq2Lm4R",
getToken: () => fetch("/proof/session", { method: "POST" }).then((r) => r.json()).then((r) => r.token),
});

The quickstart walks through it with test keys, from an empty project to a seal you can open.

Every page here is also plain Markdown: add .md to its address, or fetch llms.txt for the whole set. If you build with Claude Code, Codex or another agent, start it here.