Beneath the world tree there is a well. Odin gave an eye to drink from it.
Your agent won't need to. We bottled the water.
What this is
brunnr is a security scanner and skills marketplace for Claude Code.
- Scan — a deterministic, zero-dependency scanner that checks SKILL.md files for prompt injection, credential theft, data exfiltration, supply chain poisoning, and 4 other threat classes. No LLM in the scan loop.
- Install — fetch skills from the registry with review-before-install defaults. You see what you're installing before it touches your project.
- Eval — validate skill quality by running test fixtures against Claude. Structured assertions on scores, format, and criteria.
- Pipeline — scan + eval in one command with CI-ready exit codes.
Install
Option 1 — Claude Code (recommended)
# Add the brunnr marketplace
/plugin marketplace add Peleke/brunnr
# Install a skill
/plugin install ax-rubric@brunnr-skills
# Use it
/ax-rubric
Option 2 — CLI
# uv (recommended)
uv tool install brunnr
# or pipx
pipx install brunnr
# or pip
pip install brunnr
# Install a skill from the registry
brunnr install ax-rubric
# Scan your skills for threats
brunnr scan skills/
# Run the eval harness
brunnr eval ax-rubric --dry-run
Skills
| Skill | What it does | Based on |
|---|---|---|
| ax-rubric | Score tool descriptions 0-5 on agent discoverability. Five criteria, pass/fail, rewrite. | I Don't Deliberate About This |
More skills coming. Each one ships alongside an article in the AX series.
Why "brunnr"
Old Norse brunnr: well, spring.
As in Mímisbrunnr — the Well of Mímir beneath Yggdrasil. Odin sacrificed an eye to drink from it and gain wisdom. The well doesn't give you answers. It gives you the capacity to see what was always there.
Your agent doesn't need to sacrifice anything. It just needs tool descriptions that don't waste its context window.
Contributing
Have an agent-facing tool? Run /ax-rubric on your own descriptions first. If they score 4+, you're ahead of 90% of the field.
Want to add a skill? Open a PR. The rubric applies to skill descriptions too.
License
Metadata
Release files for brunnr 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| brunnr-0.1.2.tar.gz | 1.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| brunnr-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.5 MB
Release files / brunnr-0.1.2.tar.gz
| Download URL | brunnr-0.1.2.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ffd5045041efce23e78e608fccc72529e37e2af5846b8cf995869fbd9f43e907
|
|
BLAKE2b-256 checksum How to use checksums |
6f60ffdcc22eb360a55bcd0d28fc14ee0659b56e0a6a9c0f63745d325e3a2201
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 12, 2026.
Transparency logRelease files / brunnr-0.1.2-py3-none-any.whl
| Download URL | brunnr-0.1.2-py3-none-any.whl |
|---|---|
| Size | 19.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
acf1fe6851ccfce1b6038798eb29da6200d11b5780c6c826790a669850a000c1
|
|
BLAKE2b-256 checksum How to use checksums |
5188abe784001d25f04200276d36970a0ffa3e39c238de0c26e27d27c8263dcd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 12, 2026.
Transparency log