From skull
Detects and de-identifies PII using Microsoft Presidio before data reaches AI models, logs, or external services. Masks, redacts, hashes, or encrypts PII in text, images, and DICOM.
How this skill is triggered — by the user, by Claude, or both
Slash command
/skull:sec-piiThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
The fastest way to leak user data is to pipe raw input straight into an LLM (or a log, or a third-party API).
The fastest way to leak user data is to pipe raw input straight into an LLM (or a log, or a third-party API). Put a de-identification step in front: detect PII, then mask / redact / hash / encrypt it before it leaves your trust boundary. Microsoft Presidio (open-source, MIT) is the standard tool for this.
presidio-analyzer detects PII (NER + regex + checksums): PERSON, EMAIL_ADDRESS,
PHONE_NUMBER, CREDIT_CARD, IBAN_CODE, US_SSN / national-id, LOCATION, MEDICAL_LICENSE, crypto
wallets, dates, and more — across languages.presidio-anonymizer applies an operator per entity:
| Operator | Effect | Reach for it when |
|---|---|---|
redact | removes it | you don't need it at all |
replace | a placeholder (<PERSON>) | the model needs the shape, not the value |
mask | partial (****-**-1234) | keep a recognizable tail |
hash | one-way hash | join / dedupe without the value |
encrypt | reversible with a key | you must restore it later (decrypt inside your boundary) |
from presidio_analyzer import AnalyzerEngine
from presidio_anonymizer import AnonymizerEngine
text = "My name is Sara, card 4095-2609-9393-4932, email [email protected]"
found = AnalyzerEngine().analyze(text=text, language="en")
safe = AnonymizerEngine().anonymize(text=text, analyzer_results=found).text
# -> "My name is <PERSON>, card <CREDIT_CARD>, email <EMAIL_ADDRESS>" → send `safe` to the model
presidio-image-redactor redacts PII text in images and in DICOM medical scans.Don't send raw PII to the model "just for the prototype", don't log it before redaction, and don't trust the model to redact its own input. Redaction happens before the boundary, deterministically — not in the prompt.
Built on Microsoft Presidio (github.com/microsoft/presidio, MIT) — analyzer + anonymizer + image/DICOM
redactor. Complements sec-secrets-crypto (which guards your secrets); this guards your users' PII. See
docs/ECOSYSTEM.md.
npx claudepluginhub aturzone/skullDetects and masks PII spans (names, emails, phone numbers, addresses, credentials, etc.) in text using a bidirectional token-classification model. Provides CLI and Python API for one-shot redaction, batch processing, evaluation, and finetuning.
Detects and anonymizes PII (SSNs, cards, emails, phones, names) and business data (companies, revenue, costs, pricing) in files using Scrubadub and spaCy NER. Supports check-only or 5 strategies (mask/hash/pseudo/token/mixed); GDPR/HIPAA aware.
Implements PII redaction, audit logging, and compliance patterns (GDPR/CCPA) for Anthropic API calls. Helps handle sensitive data before sending to Claude.