PAGES
← all tools
◆ AI Runtime Defense & Guardrails

Rebuff

v0.1.1 open-source

Rebuff detects and protects LLMLLMA large language model, a neural network trained on large amounts of text to recognize patterns and generate language. Applications use it for tasks such as answering, summarizing and writing code. applications against prompt injectionprompt injectionAn attack where text the model reads, such as a web page, file or tool result, carries instructions that override the user's. It is the main security risk for agents with tools. attacks.

Summary

Rebuff is an open-source library for detecting prompt injection attacks against AI applications, distributed as a Python package that developers import directly into their code. It layers four defenses: heuristics to filter suspicious input before it reaches the LLM, a dedicated LLM to analyze incoming prompts, a vector databasevector databaseA database built to store embeddings and find the nearest ones to a query quickly. It is the retrieval half of most RAG systems. that recognizes similar attacks seen before, and canary tokens that catch prompt leakage. It's aimed at developers building LLM-backed applications who need to harden them against adversarial input rather than at SOCSOCA security operations center, the team or function that monitors threats, investigates alerts and coordinates incident response. Its work can be internal, outsourced or shared. teams monitoring infrastructure. The README describes it as self-hardening, learning from past attacks stored in the vector database, and its own disclaimer is candid that it remains a prototype offering no guarantee of full protection. Started in 2023 with 13 contributors, the project has seen no commits in the past year.

Rebuff detects and protects LLM applications against prompt injection attacks.

How Rebuff helps

Which user inputs to my application are attempts at prompt injection?

runs the input through heuristics, a dedicated detection LLM, and a vector database of known attacks, returning a verdict before the prompt reaches the main LLM

Has this exact attack pattern been tried against my application before?

checks the incoming prompt's embedding against previously stored attack embeddings in the vector database and flags close matches

Is my system prompt or other private context leaking out through model responses?

inserts a canary token into the prompt beforehand and checks completions for that token, revealing leakage even when the attack itself evaded detection

Am I catching more attacks over time as new attempts come in?

stores each detected attack's embedding in the vector database so later prompts that resemble it are recognized on subsequent calls, though this learning only covers attacks already seen

Which obvious injection attempts can I filter before spending an LLM call on them?

applies heuristic filters to the raw input first, screening out crude attempts before the input reaches either the detection LLM or the application's own model

Languages

Not documented

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for Rebuff, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail Rebuff puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

2 entries

  1. January 20242

    2 entries

    Project health

    Issue, contributor and maintainer activity in protectai/rebuff, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 0 ±0 vs prior 12 months
    2. Maintainers 0 +0 joined · −0 left, last 12 months
    3. Bus factor 0 committers behind half the commits
    4. Community-filed not measured of issues opened, last 12 months
    5. Median time to close not measured issues closed, last 12 months
    6. Open backlog 27 of 58 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 27
    3. Contributors / month 0
    4. Commits / month 0
    5. Stars 1,521
    Issue themes, last 12 months not measured

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →