{
  "data": {
    "a": {
      "slug": "llamafirewall",
      "name": "LlamaFirewall",
      "vendor": "Meta",
      "vendorUrl": "https://dev.meta.ai/llama/llama-protections",
      "kind": "framework",
      "category": "guardrails",
      "summary": "LlamaFirewall is Meta's open-source Python library for screening an AI agent's inputs, tool results and outputs. It runs scanners for prompt injection, hidden characters, insecure generated code and goal drift, and returns allow, block or human review.",
      "url": "https://www.anchorterminal.com/tools/llamafirewall",
      "markdownUrl": "https://www.anchorterminal.com/tools/llamafirewall.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/llamafirewall.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/llamafirewall.json",
      "repo": "https://github.com/meta-llama/PurpleLlama/tree/main/LlamaFirewall",
      "license": "MIT (library). The Prompt Guard 2 weights it downloads are under the Llama 4 Community Licence",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "llamafirewall"
        }
      ],
      "auth": "none",
      "authNotes": "The library has no account or key of its own. The Prompt Guard scanner needs a Hugging Face token for an account Meta has approved for the gated `meta-llama/Llama-Prompt-Guard-2-86M` weights. AlignmentCheck and the PII scanner need `TOGETHER_API_KEY` for Together AI. The regex, hidden ASCII and CodeShield scanners need neither.",
      "pricing": "free",
      "pricingNotes": "Free under the MIT licence, with nothing to buy from Meta and no hosted version found. The cost is the owner's compute, plus Together AI's own charges when AlignmentCheck or the PII scanner is switched on. Those were not priced here.",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source. LlamaFirewall is a library the owner runs, with no payment route (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 4423,
        "npmWeekly": null,
        "pypiWeekly": 1029,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://meta-llama.github.io/PurpleLlama/LlamaFirewall/",
      "capabilities": [
        "guard.injection",
        "guard.pii",
        "guard.policy",
        "guard.self-host"
      ],
      "tags": [
        "framework",
        "open-source",
        "self-hosted",
        "local",
        "python",
        "free",
        "gated",
        "no-telemetry",
        "stale-release"
      ],
      "lastRelease": "2025-05-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.8,
        "grade": "D",
        "agentReady": false,
        "rank": 682,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 13,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 15,
          "payments": 50,
          "reliability": 53,
          "schema": 49,
          "security": 56,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "One `scan()` call runs several checks on the owner's machine and returns a short typed result. The last PyPI release is 1.0.3 from 29 May 2025, and its Prompt Guard loader imports a `huggingface_hub` class that current versions no longer export, so a fresh install needs older pins. The classifier weights also need Meta's manual approval.",
        "bestFor": "A Python agent team that wants injection, hidden-character and generated-code checks in process, is willing to pin dependencies or install from main, and can get the gated weights.",
        "strengths": [
          "Six scanner types sit behind one call, set per message role (user, assistant, tool, system, memory) in a plain mapping",
          "`ScanResult` is four typed fields (`decision`, `reason`, `score`, `status`), with decisions limited to allow, block or human review",
          "Prompt Guard, CodeShield, regex and hidden-character scanners run locally, and no telemetry code was found in the source",
          "MIT licence for the library, with tests run in public CI on Python 3.10 and 3.12 that passed on main on 29 September 2026",
          "`scan_replay` checks a whole conversation trace, and AlignmentCheck compares each agent step with the first user message"
        ],
        "weaknesses": [
          "No PyPI release since 1.0.3 on 29 May 2025, and no changelog, tags or deprecation notes were found",
          "The 1.0.3 wheel imports `HfFolder` from `huggingface_hub`, which version 2.2.0 no longer exports. Main fixed the scanner on 26 March 2026, unreleased",
          "The Prompt Guard 2 weights are gated on Hugging Face with manual review, and the loader calls an interactive `login()` when no token is set",
          "Prompt Guard input is truncated at 512 tokens in the library, so later text in a long tool result is not scored",
          "AlignmentCheck and the PII scanner send the conversation to Together AI by default, and `create_scanner` passes no option to change the model or endpoint",
          "The custom scanner guide names a `BaseScanner` class that is not in the source, and LlamaFirewall issues from June and July 2025 have no reply"
        ],
        "agentNotes": [
          "Pin `huggingface_hub` below 1.0 and a matching `transformers` 4.x before importing the Prompt Guard scanner from the 1.0.3 wheel, or install from main",
          "Get access to `meta-llama/Llama-Prompt-Guard-2-86M` and set a Hugging Face token first. Without one the loader prompts for a login and a headless run stalls",
          "Call `scan_async` inside a running event loop. `scan()` wraps `asyncio.run` and fails there. `scan_async` returns score 0.0 and reason `default` on every allow",
          "Split text longer than 512 tokens yourself before a Prompt Guard scan. The library truncates and does not chunk",
          "Do not feed a block `reason` back to the model. The Prompt Guard reason quotes the full scanned text, and the hidden ASCII reason decodes the hidden payload"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.8
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 15,
          "payments": 50,
          "reliability": 53,
          "schema": 49,
          "security": 56,
          "transparency": 56
        },
        "provenanceScore": 60
      },
      "connect": {
        "install": "pip install llamafirewall\nllamafirewall configure"
      },
      "letme": {
        "capability": "https://letme.dev/guard.injection",
        "tool": "https://letme.dev/llamafirewall"
      },
      "sameCompany": [
        "llama-guard"
      ],
      "area": "models",
      "provenance": {
        "legalEntity": "Meta Platforms, Inc.",
        "domain": "llama.com",
        "domainRegistered": "1994-11-01",
        "domainNote": "A Python library the owner runs, not a service. Code is on github.com under the meta-llama organisation, docs on meta-llama.github.io, and Meta's Llama Protections page lists it.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The MIT licence in the LlamaFirewall folder is the document that governs use of the library, so it is recorded as the terms. Its copyright line reads Meta Platforms, Inc. and affiliates.",
          "The Prompt Guard 2 weights the library downloads are under the Llama 4 Community Licence, a separate document, and the repository root carries a Llama 3.2 licence file.",
          "No privacy policy governs the library, because the owner runs it. The privacy field is left out. The Hugging Face access form for the weights says details entered are handled under the Meta Privacy Policy.",
          "AlignmentCheck and the PII scanner send data to Together AI under the owner's own Together account. Meta publishes no data statement for that path.",
          "www.llama.com/llama-protections redirected to dev.meta.ai/llama/llama-protections on 8 October 2026, which names LlamaFirewall and links its paper. RDAP gives 1 November 1994 as the registration date of llama.com.",
          "No status page, because nothing is hosted. No changelog, release notes or version tags were found in the repository.",
          "security.txt returns 404 on meta-llama.github.io and dev.meta.ai. SECURITY.md in the LlamaFirewall folder sends reports to bugbounty.meta.com."
        ],
        "score": 60
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/llamafirewall.json"
    },
    "answer": "Presidio scores 66 (B) on agent readiness against LlamaFirewall's 50.8 (D), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "microsoft-presidio",
      "name": "Presidio",
      "vendor": "Data Privacy Stack",
      "vendorUrl": "https://dataprivacystack.org",
      "kind": "sdk",
      "category": "guardrails",
      "summary": "Open-source Python library and Docker services that detect personal data in text and images and replace, mask, hash or encrypt it. Created at Microsoft and run since June 2026 by the community organisation Data Privacy Stack.",
      "url": "https://www.anchorterminal.com/tools/microsoft-presidio",
      "markdownUrl": "https://www.anchorterminal.com/tools/microsoft-presidio.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/microsoft-presidio.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/microsoft-presidio.json",
      "repo": "https://github.com/data-privacy-stack/presidio",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "presidio-analyzer"
        },
        {
          "registry": "pypi",
          "name": "presidio-anonymizer"
        },
        {
          "registry": "pypi",
          "name": "presidio-image-redactor"
        },
        {
          "registry": "pypi",
          "name": "presidio"
        }
      ],
      "auth": "none",
      "authNotes": "None. The Python library runs in the caller's process, and the REST containers accept any caller. The FAQ states the endpoints have no built-in authentication by design and should sit behind a gateway, reverse proxy or service mesh (https://presidio.dataprivacystack.org/faq/). Optional recognisers that call Azure AI Language, Azure Health Data Services or a language model take those services' own credentials.",
      "pricing": "free",
      "pricingNotes": "Free under the MIT licence, with no hosted or paid option from the project and no account needed. The cost is the compute to run it, plus any outside service an optional recogniser is configured to call (https://github.com/data-privacy-stack/presidio/blob/main/LICENSE).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 11231,
        "npmWeekly": null,
        "pypiWeekly": 1217281,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://presidio.dataprivacystack.org",
      "openapi": "https://presidio.dataprivacystack.org/api-docs/api-docs.yml",
      "capabilities": [
        "guard.pii",
        "guard.self-host"
      ],
      "tags": [
        "sdk",
        "open-source",
        "self-hosted",
        "local",
        "python",
        "free",
        "docker",
        "openapi",
        "pii",
        "community-governed"
      ],
      "lastRelease": "2026-07-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66,
        "grade": "B",
        "agentReady": false,
        "rank": 281,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 63,
          "payments": 60,
          "reliability": 78,
          "schema": 69,
          "security": 53,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "MIT-licensed personal data detector with a public OpenAPI document, tests on Python 3.10 to 3.14 and about 1.2 million weekly PyPI downloads. The REST containers have no authentication, the project states no SLA or support, and it covers personal data only, with no prompt injection or content moderation checks.",
        "bestFor": "Detecting and masking personal data in prompts, outputs, logs and images on the owner's own machines, with detection tuned by entity, threshold and custom recognisers.",
        "strengths": [
          "MIT licence, source on GitHub, and nothing to buy. No account, key or card is needed to install or run it",
          "OpenAPI 3.0 document for the analyser and anonymiser REST services, with request examples and 400 and 422 error shapes",
          "CI runs each package on Python 3.10, 3.11, 3.12, 3.13 and 3.14, with CodeQL and Dependabot configured",
          "Detection is tunable per call with an entity list, a score threshold, an allow list and ad hoc recognisers",
          "Anonymiser operators cover replace, redact, mask, hash, encrypt and custom functions, and encrypted values can be reversed with the key"
        ],
        "weaknesses": [
          "The REST containers have no authentication by design. The FAQ says to put a gateway or proxy in front",
          "SUPPORT.md states no SLA and no official support. The project is run by volunteers since leaving Microsoft",
          "One release in the 90 days to 8 October 2026 (2.2.364 on 22 July), and CHANGELOG.md has no section for it",
          "Covers personal data only. No prompt injection, jailbreak or content moderation checks",
          "The README warns that detection is automated and may miss personal data, so other protections are still needed",
          "98 open pull requests, and most issues opened since 20 September 2026 had no reply on 8 October"
        ],
        "agentNotes": [
          "Install from PyPI or pull images from ghcr.io/data-privacy-stack. The mcr.microsoft.com/presidio-* images are no longer updated",
          "Download a spaCy model (python -m spacy download en_core_web_lg) before the first `AnalyzerEngine()` call, or use the Docker image",
          "Send both text and language to `/analyze`. A request missing either returns HTTP 500 with a JSON error field",
          "Pass entities and score_threshold to limit results. Many country-specific recognisers are disabled by default and need enabling in the registry YAML",
          "Keep the containers on a private network or behind your own authenticating proxy. They accept any caller"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 63,
          "payments": 60,
          "reliability": 78,
          "schema": 69,
          "security": 53,
          "transparency": 76
        },
        "provenanceScore": 53
      },
      "connect": {
        "install": "pip install presidio-analyzer presidio-anonymizer\npython -m spacy download en_core_web_lg",
        "http": "docker run -d -p 5002:3000 ghcr.io/data-privacy-stack/presidio-analyzer:latest\ncurl -X POST http://localhost:5002/analyze \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\": \"My phone number is 555-123-4567.\", \"language\": \"en\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/guard.pii",
        "tool": "https://letme.dev/microsoft-presidio"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "Data Privacy Stack (community organisation, no legal entity stated)",
        "domain": "dataprivacystack.org",
        "domainRegistered": "2026-04-13",
        "domainNote": "A library and self-hosted containers, not a service. Code is on github.com under the data-privacy-stack organisation and docs on presidio.dataprivacystack.org.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/data-privacy-stack/presidio/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "Presidio was created at Microsoft. The transition notice says it is now a community-governed project under Data Privacy Stack and is not owned or operated by a commercial entity. The blog post announcing the move is dated 29 June 2026.",
          "github.com/microsoft/presidio answers 301 to github.com/data-privacy-stack/presidio, and microsoft.github.io/presidio shows a moved notice.",
          "The LICENSE copyright line reads Presidio Contributors. The FAQ says usage terms are the repository's licence and that there is no warranty or SLA.",
          "No privacy policy was found on dataprivacystack.org or the docs site. Nothing is hosted, so the field is left out.",
          "security.txt returns 404 on dataprivacystack.org and presidio.dataprivacystack.org. SECURITY.md uses GitHub private vulnerability reporting.",
          "RDAP gives 2026-04-13 as the registration date of dataprivacystack.org. The repository was created on 4 May 2018."
        ],
        "score": 53
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/microsoft-presidio.json",
      "live": {
        "slug": "microsoft-presidio",
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/data-privacy-stack/presidio/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:24:05.686879193Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "609d3fe25dbc"
          }
        ],
        "updatedAt": "2026-10-08T18:24:05.686879193Z"
      }
    },
    "facts": [
      {
        "a": "Agent framework",
        "b": "SDK + MCP",
        "name": "Kind"
      },
      {
        "a": "Meta",
        "b": "Data Privacy Stack",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (library). The Prompt Guard 2 weights it downloads are under the Llama 4 Community Licence",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2025-05-29",
        "b": "2026-07-22",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "4.4k stars, 1k PyPI/wk",
        "b": "11k stars, 1.2M PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Presidio scores 66 (B) on agent readiness against LlamaFirewall's 50.8 (D), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, LlamaFirewall or Presidio?"
      },
      {
        "answer": "Yes. LlamaFirewall is open source (MIT (library). The Prompt Guard 2 weights it downloads are under the Llama 4 Community Licence). Presidio is open source (MIT).",
        "question": "Are LlamaFirewall and Presidio open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "A Python agent team that wants injection, hidden-character and generated-code checks in process, is willing to pin dependencies or install from main, and can get the gated weights.",
        "slug": "llamafirewall",
        "watchFor": "No PyPI release since 1.0.3 on 29 May 2025, and no changelog, tags or deprecation notes were found"
      },
      {
        "aheadOn": [
          "Reliability, 78 against 53",
          "Schema \u0026 documentation, 69 against 49",
          "Agent ergonomics, 69 against 60",
          "Payments \u0026 pricing, 60 against 50",
          "Maintenance \u0026 community, 63 against 15",
          "Transparency \u0026 trust, 65 against 58"
        ],
        "also": null,
        "goodFor": "Detecting and masking personal data in prompts, outputs, logs and images on the owner's own machines, with detection tuned by entity, threshold and custom recognisers.",
        "slug": "microsoft-presidio",
        "watchFor": "The REST containers have no authentication by design. The FAQ says to put a gateway or proxy in front"
      }
    ],
    "job": {
      "capability": "guard.pii",
      "name": "Guard pii"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-llamafirewall.json",
        "title": "Amazon Bedrock Guardrails vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-llamafirewall.json",
        "title": "Azure AI Content Safety (Prompt Shields) vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-llamafirewall.json",
        "title": "Cisco AI Defense Inspection API vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-model-armor-vs-llamafirewall.json",
        "title": "Google Cloud Model Armor vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/google-model-armor-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-llamafirewall.json",
        "title": "Granite Guardian vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guardrails-ai-vs-llamafirewall.json",
        "title": "Guardrails AI vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/guardrails-ai-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lakera-guard-vs-llamafirewall.json",
        "title": "Lakera Guard (Check Point AI Guardrails) vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/lakera-guard-vs-llamafirewall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-nemo-guardrails.json",
        "title": "LlamaFirewall vs NVIDIA NeMo Guardrails",
        "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-nemo-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-openai-guardrails.json",
        "title": "LlamaFirewall vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-prisma-airs.json",
        "title": "LlamaFirewall vs Prisma AIRS AI Runtime Security API",
        "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-prisma-airs"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-microsoft-presidio.json",
        "title": "Amazon Bedrock Guardrails vs Presidio",
        "url": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-microsoft-presidio.json",
        "title": "Cisco AI Defense Inspection API vs Presidio",
        "url": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-model-armor-vs-microsoft-presidio.json",
        "title": "Google Cloud Model Armor vs Presidio",
        "url": "https://www.anchorterminal.com/compare/google-model-armor-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guardrails-ai-vs-microsoft-presidio.json",
        "title": "Guardrails AI vs Presidio",
        "url": "https://www.anchorterminal.com/compare/guardrails-ai-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lakera-guard-vs-microsoft-presidio.json",
        "title": "Lakera Guard (Check Point AI Guardrails) vs Presidio",
        "url": "https://www.anchorterminal.com/compare/lakera-guard-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-mistral-moderation.json",
        "title": "LlamaFirewall vs Mistral Moderation API",
        "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-mistral-moderation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-mistral-moderation.json",
        "title": "Presidio vs Mistral Moderation API",
        "url": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-mistral-moderation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-nemo-guardrails.json",
        "title": "Presidio vs NVIDIA NeMo Guardrails",
        "url": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-nemo-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-openai-guardrails.json",
        "title": "Presidio vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-prisma-airs.json",
        "title": "Presidio vs Prisma AIRS AI Runtime Security API",
        "url": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-prisma-airs"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-microsoft-presidio.json",
        "title": "Granite Guardian vs Presidio",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llama-guard-vs-microsoft-presidio.json",
        "title": "Llama Guard 4 vs Presidio",
        "url": "https://www.anchorterminal.com/compare/llama-guard-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llama-guard-vs-llamafirewall.json",
        "title": "Llama Guard 4 vs LlamaFirewall",
        "url": "https://www.anchorterminal.com/compare/llama-guard-vs-llamafirewall"
      }
    ],
    "scores": [
      {
        "by": 25,
        "edge": "microsoft-presidio",
        "key": "reliability",
        "llamafirewall": 53,
        "microsoft-presidio": 78,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 20,
        "edge": "microsoft-presidio",
        "key": "schema",
        "llamafirewall": 49,
        "microsoft-presidio": 69,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 9,
        "edge": "microsoft-presidio",
        "key": "ergonomics",
        "llamafirewall": 60,
        "microsoft-presidio": 69,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 3,
        "edge": "llamafirewall",
        "key": "security",
        "llamafirewall": 56,
        "microsoft-presidio": 53,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 10,
        "edge": "microsoft-presidio",
        "key": "payments",
        "llamafirewall": 50,
        "microsoft-presidio": 60,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 48,
        "edge": "microsoft-presidio",
        "key": "maintenance",
        "llamafirewall": 15,
        "microsoft-presidio": 63,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 7,
        "edge": "microsoft-presidio",
        "key": "transparency",
        "llamafirewall": 58,
        "microsoft-presidio": 65,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Presidio scores 66 (B) on agent readiness against LlamaFirewall's 50.8 (D), and leads in 6 of 7 scored categories. Both do guard pii.",
    "verdicts": {
      "llamafirewall": "One `scan()` call runs several checks on the owner's machine and returns a short typed result. The last PyPI release is 1.0.3 from 29 May 2025, and its Prompt Guard loader imports a `huggingface_hub` class that current versions no longer export, so a fresh install needs older pins. The classifier weights also need Meta's manual approval.",
      "microsoft-presidio": "MIT-licensed personal data detector with a public OpenAPI document, tests on Python 3.10 to 3.14 and about 1.2 million weekly PyPI downloads. The REST containers have no authentication, the project states no SLA or support, and it covers personal data only, with no prompt injection or content moderation checks."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio",
    "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio.md",
    "slim": "https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio.min.md"
  },
  "markdown": "Presidio scores 66 (B) on agent readiness against LlamaFirewall's 50.8 (D), and leads in 6 of 7 scored categories. Both do guard pii.\n\n- LlamaFirewall: grade D, 50.8/100, rank #682 of 842. Markdown https://www.anchorterminal.com/tools/llamafirewall.md · JSON https://www.anchorterminal.com/api/v1/tools/llamafirewall.json\n- Presidio: grade B, 66/100, rank #281 of 842. Markdown https://www.anchorterminal.com/tools/microsoft-presidio.md · JSON https://www.anchorterminal.com/api/v1/tools/microsoft-presidio.json\n\n## Which one, for what\n\n### LlamaFirewall (D)\n\nGood for: A Python agent team that wants injection, hidden-character and generated-code checks in process, is willing to pin dependencies or install from main, and can get the gated weights.\n\nWatch for: No PyPI release since 1.0.3 on 29 May 2025, and no changelog, tags or deprecation notes were found\n\n### Presidio (B)\n\nGood for: Detecting and masking personal data in prompts, outputs, logs and images on the owner's own machines, with detection tuned by entity, threshold and custom recognisers.\n\nAhead on:\n- Reliability, 78 against 53\n- Schema \u0026 documentation, 69 against 49\n- Agent ergonomics, 69 against 60\n- Payments \u0026 pricing, 60 against 50\n- Maintenance \u0026 community, 63 against 15\n- Transparency \u0026 trust, 65 against 58\n\nWatch for: The REST containers have no authentication by design. The FAQ says to put a gateway or proxy in front\n\n\n## Score by category\n\n| Category | Weight | LlamaFirewall | Presidio | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 53 | 78 | Presidio +25 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 49 | 69 | Presidio +20 |\n| Agent ergonomics | 13% (16.2 this run) | 60 | 69 | Presidio +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 56 | 53 | LlamaFirewall +3 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 50 | 60 | Presidio +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 15 | 63 | Presidio +48 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 58 | 65 | Presidio +7 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **50.8 · D** | **66 · B** | |\n\n## Facts side by side\n\n| Fact | LlamaFirewall | Presidio |\n| --- | --- | --- |\n| Kind | Agent framework | SDK + MCP |\n| Vendor | Meta | Data Privacy Stack |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  | HTTP |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT (library). The Prompt Guard 2 weights it downloads are under the Llama 4 Community Licence | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2025-05-29 | 2026-07-22 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 4.4k stars, 1k PyPI/wk | 11k stars, 1.2M PyPI/wk |\n\n## Verdicts\n\n**LlamaFirewall.** One `scan()` call runs several checks on the owner's machine and returns a short typed result. The last PyPI release is 1.0.3 from 29 May 2025, and its Prompt Guard loader imports a `huggingface_hub` class that current versions no longer export, so a fresh install needs older pins. The classifier weights also need Meta's manual approval.\n\n**Presidio.** MIT-licensed personal data detector with a public OpenAPI document, tests on Python 3.10 to 3.14 and about 1.2 million weekly PyPI downloads. The REST containers have no authentication, the project states no SLA or support, and it covers personal data only, with no prompt injection or content moderation checks.\n\n## Before you call either\n\n### LlamaFirewall\n\n1. Pin `huggingface_hub` below 1.0 and a matching `transformers` 4.x before importing the Prompt Guard scanner from the 1.0.3 wheel, or install from main\n2. Get access to `meta-llama/Llama-Prompt-Guard-2-86M` and set a Hugging Face token first. Without one the loader prompts for a login and a headless run stalls\n3. Call `scan_async` inside a running event loop. `scan()` wraps `asyncio.run` and fails there. `scan_async` returns score 0.0 and reason `default` on every allow\n4. Split text longer than 512 tokens yourself before a Prompt Guard scan. The library truncates and does not chunk\n5. Do not feed a block `reason` back to the model. The Prompt Guard reason quotes the full scanned text, and the hidden ASCII reason decodes the hidden payload\n\n### Presidio\n\n1. Install from PyPI or pull images from ghcr.io/data-privacy-stack. The mcr.microsoft.com/presidio-* images are no longer updated\n2. Download a spaCy model (python -m spacy download en_core_web_lg) before the first `AnalyzerEngine()` call, or use the Docker image\n3. Send both text and language to `/analyze`. A request missing either returns HTTP 500 with a JSON error field\n4. Pass entities and score_threshold to limit results. Many country-specific recognisers are disabled by default and need enabling in the registry YAML\n5. Keep the containers on a private network or behind your own authenticating proxy. They accept any caller\n\n## Questions\n\n### Which is better for AI agents, LlamaFirewall or Presidio?\n\nPresidio scores 66 (B) on agent readiness against LlamaFirewall's 50.8 (D), and leads in 6 of 7 scored categories.\n\n### Are LlamaFirewall and Presidio open source?\n\nYes. LlamaFirewall is open source (MIT (library). The Prompt Guard 2 weights it downloads are under the Llama 4 Community Licence). Presidio is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio.json, and with the fewest tokens: https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"llamafirewall\", \"b\": \"microsoft-presidio\"}`. From a terminal: `anchor compare llamafirewall microsoft-presidio`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/llamafirewall.json and https://www.anchorterminal.com/api/v1/tools/microsoft-presidio.json\n\n## Other comparisons with LlamaFirewall or Presidio\n\n- [Amazon Bedrock Guardrails vs LlamaFirewall](https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-llamafirewall.md)\n- [Azure AI Content Safety (Prompt Shields) vs LlamaFirewall](https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-llamafirewall.md)\n- [Cisco AI Defense Inspection API vs LlamaFirewall](https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-llamafirewall.md)\n- [Google Cloud Model Armor vs LlamaFirewall](https://www.anchorterminal.com/compare/google-model-armor-vs-llamafirewall.md)\n- [Granite Guardian vs LlamaFirewall](https://www.anchorterminal.com/compare/granite-guardian-vs-llamafirewall.md)\n- [Guardrails AI vs LlamaFirewall](https://www.anchorterminal.com/compare/guardrails-ai-vs-llamafirewall.md)\n- [Lakera Guard (Check Point AI Guardrails) vs LlamaFirewall](https://www.anchorterminal.com/compare/lakera-guard-vs-llamafirewall.md)\n- [LlamaFirewall vs NVIDIA NeMo Guardrails](https://www.anchorterminal.com/compare/llamafirewall-vs-nemo-guardrails.md)\n- [LlamaFirewall vs OpenAI Guardrails](https://www.anchorterminal.com/compare/llamafirewall-vs-openai-guardrails.md)\n- [LlamaFirewall vs Prisma AIRS AI Runtime Security API](https://www.anchorterminal.com/compare/llamafirewall-vs-prisma-airs.md)\n- [Amazon Bedrock Guardrails vs Presidio](https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-microsoft-presidio.md)\n- [Cisco AI Defense Inspection API vs Presidio](https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-microsoft-presidio.md)\n- [Google Cloud Model Armor vs Presidio](https://www.anchorterminal.com/compare/google-model-armor-vs-microsoft-presidio.md)\n- [Guardrails AI vs Presidio](https://www.anchorterminal.com/compare/guardrails-ai-vs-microsoft-presidio.md)\n- [Lakera Guard (Check Point AI Guardrails) vs Presidio](https://www.anchorterminal.com/compare/lakera-guard-vs-microsoft-presidio.md)\n- [LlamaFirewall vs Mistral Moderation API](https://www.anchorterminal.com/compare/llamafirewall-vs-mistral-moderation.md)\n- [Presidio vs Mistral Moderation API](https://www.anchorterminal.com/compare/microsoft-presidio-vs-mistral-moderation.md)\n- [Presidio vs NVIDIA NeMo Guardrails](https://www.anchorterminal.com/compare/microsoft-presidio-vs-nemo-guardrails.md)\n- [Presidio vs OpenAI Guardrails](https://www.anchorterminal.com/compare/microsoft-presidio-vs-openai-guardrails.md)\n- [Presidio vs Prisma AIRS AI Runtime Security API](https://www.anchorterminal.com/compare/microsoft-presidio-vs-prisma-airs.md)\n- [Granite Guardian vs Presidio](https://www.anchorterminal.com/compare/granite-guardian-vs-microsoft-presidio.md)\n- [Llama Guard 4 vs Presidio](https://www.anchorterminal.com/compare/llama-guard-vs-microsoft-presidio.md)\n- [Llama Guard 4 vs LlamaFirewall](https://www.anchorterminal.com/compare/llama-guard-vs-llamafirewall.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "LlamaFirewall vs Presidio",
        "url": ""
      }
    ],
    "description": "Presidio scores 66 (B) on agent readiness against LlamaFirewall's 50.8 (D), and leads in 6 of 7 scored categories. Both do guard pii. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "LlamaFirewall D 50.8",
      "Presidio B 66",
      "scores"
    ],
    "h1": "LlamaFirewall vs Presidio",
    "image": "https://www.anchorterminal.com/assets/og/compare-llamafirewall-vs-microsoft-presidio.png",
    "path": "/compare/llamafirewall-vs-microsoft-presidio",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LlamaFirewall vs Presidio for AI agents, D 50.8 vs B 66",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 530
  },
  "version": 1
}
