little-canary
SkillAI & modelsUse when you need to screen inbound untrusted text before it reaches a primary model, detecting prompt injection by its behavioral effect on a sacrificial canary model, not just pattern matching, and want a block/flag/pass routing decision plus explicit behavioral-coverage state. Inbound preflight sensor, not a guarantee.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the little-canary skill
What this skill tells your AI
The instructions your AI receives, as published by hermes-labs-ai/little-canary in .agents/skills/little-canary/SKILL.md and read by ahel’s review.
little-canary detects prompt injection by its effect on a sacrificial canary model, not just pattern matching: untrusted input hits a powerless model first, a behavioral check reads the residue, and it returns block, flag, or pass before your primary model acts. Inbound preflight sensor, not a guarantee.
Use it for
- Screening inbound untrusted text before it reaches a main model
- Combining structural pattern checks with sacrificial-canary behavior checks
- Getting a routing decision (block/flag/pass) plus an explicit
behavioral-coverage state (
REPLAY,LIVE,MOCK,STATIC_ONLY) - Running a local HTTP detection server in front of an agent's input path
Do not use it for
- A guarantee that prompt injection is impossible
- A replacement for runtime containment controls
- A benchmark suite
Quickstart
pip install little-canary
little-canary demo --replay
Or without installing, via uv:
uvx little-canary demo --replay
Real output (no packaged replay fixture admitted in this environment):
RUN_KIND REPLAY
MODEL_CALL no — recorded output
CANARY NOT EXERCISED THIS RUN
EGRESS none
REPLAY UNAVAILABLE
DETAIL no admitted replay fixture is packaged
Live contrast against a local Ollama backend:
uvx little-canary demo --live --backend ollama --model qwen2.5:1.5b
Output shape
demo --replay: verifies analyzer behavior only when admitted response bytes are packaged; otherwise exitsREPLAY UNAVAILABLE— unavailable replay is never evidence that input is safedemo --live: exercises the fixed synthetic contrast against loopback Ollama and binds the result to one backend, model digest, runtime, and configurationserve: persistent HTTP detection server; returns a verdict object with safety, degradation, canary/analysis status, summary, risk, and optional advisory text--json: emits the stablelittle-canary-demo/v1schema
Common gotchas
REPLAYverifies analyzer behavior only when admitted response bytes are packaged; an unavailable replay result must not be read as "input is safe."- Replay never calls a model — it is bytes-in, verdict-out.
- Remote backends receive raw input; a configured judge receives raw input plus canary output.
More
Full docs and CLI reference: https://github.com/hermes-labs-ai/little-canary
Signals
- GitHub stars
- 38
- Forks
- 8
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
little-canary- Source
- github.com/hermes-labs-ai/little-canary