Skill for Claude
Teach Claude to catch agents that leak or obey.
No account and no key. Install the SDK, plant decoys, run the offline self-test, and read what was caught. Harden the agent after that. A console is optional and last.
- InstallOne command
- Ask ClaudeCopy a sentence
- Read the resultCaught or missed
Watch it
Synthetic English voice, captions on screen. The terminal output is real.
Install
The installer checks SHA-256. No sudo. No key.
Claude Code · macOS and Linux
Every project
curl -fsSL https://www.honeyprompter.com/install-skill.sh | sh -s -- --checksum 9fdf5559777f21769f11e2e2c2352aba3e12b01e4601380fd223e77484e7fab2This repository:
curl -fsSL https://www.honeyprompter.com/install-skill.sh | sh -s -- --project --checksum 9fdf5559777f21769f11e2e2c2352aba3e12b01e4601380fd223e77484e7fab2Claude Code · Windows
PowerShell
& ([scriptblock]::Create((irm https://www.honeyprompter.com/install-skill.ps1))) -Checksum 9fdf5559777f21769f11e2e2c2352aba3e12b01e4601380fd223e77484e7fab2PowerShell 5.1 or newer. No administrator rights.
Claude.ai and the Claude apps
Upload the zip
Add the zip under Settings, in Skills or Capabilities. Uploading skills needs a plan that supports it.
Use it
In Claude Code, say one of these.
Start here
Use the honey-prompting skill to add decoys and canaries to this agent.Review
Review this repo's AI agent for prompt-injection and secret-leak risks, then plan Honey Prompting tripwires.Prove it works
Write tests that prove a leaked decoy is blocked and leaves a receipt, and that a clean reply still passes.Describe it
My support bot reads tickets and has a database URL in its prompt. How would I know if it got hijacked?What Claude does
Six steps. The first five need no console. Connecting one is optional, and last. With no shell, Claude plants the decoys in the chat and walks a published self-test instead of inventing a terminal.
1Installs the SDK
The wheel named in
latest.json. No account and no key.2Plants decoys
Synthetic honey prompts and a canary. Fake secrets only. Nothing that can log in.
3Runs the self-test
honeyprompt selftest, or the same command with--json. Nothing is sent.4Reads the results
What was caught, what was missed, and the rows that stayed quiet on purpose.
5Hardens the agent
Tripwires where the agent can leak, after the self-test passes, plus an honest coverage note.
6Connects a console
Optional, and last. One command and a key for that machine, only if you ask.
Check that it works
Pick where you use Claude. Each check says what a pass looks like, what a fail looks like, and what it does not prove.
In Claude Code (a terminal)
1The skill is installed
ls ~/.claude/skills/honey-prompting/SKILL.mdPass: the file is listed. In a project install the path starts with
.claude/skills/. Then say the "Start here" sentence above: Claude should run the commands below itself and show you their output.2The detection rules fire
honeyprompt selftestPass:
result: PASS,missed: 0andunexpected: 0. It replays planted attacks on this computer. No model is called and nothing is sent. It shows the rules work, not that your agent is covered.3This computer is set up
honeyprompt doctorPass: it ends with
All checks passed.A[warn]line is not a failure; it names what is not set up yet, such as the background check-in.4A catch reaches your console
honeyprompt testNeeds a connected console. Pass: a row labelled as a test appears under Catches within a minute. Then
honeyprompt receipts --verifylists what this machine caught and rechecks every signature.5The whole product, end to end
honeyprompt lab --e2ePass:
E2E PASS. Lines markedSKIPwere not checked; the live model, the console and the site need a key, a console key or--site.6A decoy in your own agent
Write tests that prove a leaked decoy is blocked and leaves a receipt, and that a clean reply still passes.Pass: the leaked decoy is blocked, a receipt exists, and the clean reply is untouched. A quiet console after a real run is not proof of safety.
In the Claude chat app (no terminal)
Claude.ai, the desktop app and the phone app cannot run the SDK. The skill walks you through instead, and says so. The checks below are about whether it is honest, because that is what you can see.
1The skill is loaded
Is the honey-prompting skill available in this chat? Answer yes or no.Pass: yes, and it names the skill. If not, add the zip under Settings, in Skills or Capabilities, and start a new chat.
2It does not pretend to run the test
Use the honey-prompting skill to run the self-test.Pass: the first sentence says it did not run
honeyprompt selftest, then it reads the stored report: 46 of 55 caught, 0 missed, 0 false alarms. Fail: it prints terminal output as if it had run.3It plants inert decoys
Use the honey-prompting skill to plant decoys and a canary for my support bot. Say where each one goes.Pass: four decoys and one canary, each with a place to put it, and labelled as inert. Fail: anything that looks like a working key, or a decoy placed where a real secret lives.
4It does not claim a block
Did that stop an attack?Pass: it says the decoys detect and do not prevent, and that a quiet result is not proof of safety.
5See a real catch
A chat cannot produce one. Put the canary link from Console, Decoys, Canary links in a page your agent will read, then open Catches. Or connect a computer and use the Claude Code checks above.
Not using Claude?
The same instructions, as one Markdown file, for any model.
Put it where your tool reads rules
AGENTS.md, CLAUDE.md, GEMINI.md, .cursor/rules/, or .github/copilot-instructions.md.
Then ask
Follow the Honey Prompting instructions to add decoys and canaries to this agent.Written for Claude and checked with Claude. Not yet tested with other models.
What it will not claim
Honey Prompting detects; it does not prevent. A quiet tripwire is not proof of safety.
- A paraphrased, translated, or spelled-out leak is missed.
- It does not replace least privilege, filtering, or human approval.
- A canary hit can be a link previewer. Read the client type.
The idea is not new. Related work.
Checked, not just written
The skill's tests run the code it teaches.
The snippets run
The Python and JavaScript samples are executed on every change.
The scanner matches the SDK
Ten cases: plain, case, spacing, reversed, ROT13, base64, hex, URL-encoded, a clean reply, and a paraphrase.
The install is verified
The installer is tested, including a tampered download. The Windows installer has not been run on Windows yet.
Share it
Send the link.