Sign the prompts
your agents obey.
Know who wrote the skills, agents, and CLAUDE.md / AGENTS.md files your AI runs — and be sure not one line, or the scripts they ship, has changed since. If a publisher turns out to be untrustworthy, their signature can be revoked.
A signature proves who published this and that it hasn't changed — not that it's safe.
Four guarantees and one honest limit.
You know exactly who published a skill — a named identity, never a bare checkmark.
You know not one byte — including the scripts a skill ships — has changed since signing.
Keyless signatures are recorded in a public transparency log that cannot be quietly rewritten.
A compromised key or a bad actor can be revoked, so consumers stop trusting them.
A valid signature on a prompt-injection payload is still a prompt-injection payload. Signing is provenance, not safety.
Start in a terminal, or right here.
The command-line tool signs and verifies, and plugs into Claude Code & Codex hooks that automatically block any instructions that are unsigned or have been tampered with. Prefer not to install anything? The in-browser tools do the same thing — and nothing you drop in ever leaves your computer.
promptsign login && promptsign sign ./my-skillpromptsign verify ./my-skillProof of origin you can check yourself — even offline.
- 01
Fingerprint every file
PromptSign takes a tamper-evident fingerprint (a SHA-256 hash) of every file in the skill — including any scripts it ships. Change a single byte later and the fingerprint no longer matches.
- 02
Sign it under a verified identity
The publisher signs those fingerprints by logging in with an account you already recognize — GitHub, Google, or a company account — so the identity on the signature is confirmed, not typed.
- 03
Ships with the skill
The signature travels with the skill in a small
.promptsign/bundle.jsonfile. To check it, PromptSign re-fingerprints every file and confirms the signature — no server or internet connection required.
{
"schema": "promptsign/bundle/v1",
"envelope": {
"payloadType": "application/vnd.promptsign.manifest+json",
"payload": "eyJzY2hlbWEiOiJwcm9tcHRzaWduL21hbmlmZXN0...",
"signatures": [
{ "keyid": "a1b2c3d4e5f6…", "sig": "MEUCIQD…" }
]
},
"signer": {
"identity": "alice@trailofbits.com",
"scheme": "keyless",
"issuer": "https://accounts.google.com",
"certChain": ["MIICzDCCAlKg…"]
},
"transparency": { "logIndex": 51236401 }
}Notice the identity — confirmed by a real login and named by every verifier. Never a bare green check.