
Pii Sanitizer
- 226 installs
- 2 repo stars
- Updated January 25, 2026
- jorgealves/agent_skills
Detect and redact emails, names, IDs, and other PII in logs, prompts, datasets, and exports before sharing artifacts with vendors or model providers.
About
pii-sanitizer helps teams find and remove personally identifiable information from logs, prompts, fixtures, and exports using pattern-aware redaction strategies. It reduces regulatory exposure and vendor data-sharing risk while keeping sanitized artifacts usable for debugging, analytics, and agent training workflows.
- Recognizes common PII and PHI patterns
- Supports tokenization versus full redaction modes
- Scans free text, JSON logs, and chat transcripts
- Preserves structure for debugging where safe
- Documents residual risk after sanitization
Pii Sanitizer by the numbers
- 226 all-time installs (skills.sh)
- +9 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #720 of 2,203 Security skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/jorgealves/agent_skills --skill pii-sanitizerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 226 |
|---|---|
| repo stars | ★ 2 |
| Last updated | January 25, 2026 |
| Repository | jorgealves/agent_skills ↗ |
What it does
Detect and redact emails, names, IDs, and other PII in logs, prompts, datasets, and exports before sharing artifacts with vendors or model providers.
Files
PII Sanitizer
Purpose and Intent
The pii-sanitizer is a data protection tool designed to identify and mask Personally Identifiable Information (PII) from datasets, logs, or communications to comply with privacy regulations like GDPR and CCPA.
When to Use
- Log Scrubbing: Clean application logs before sending them to centralized logging platforms (e.g., ELK, Datadog).
- Dataset Preparation: Sanitize production data before using it in staging or training environments.
- Customer Support: Mask sensitive info in support tickets before sharing them with engineering teams.
When NOT to Use
- Encryption: This is a redaction tool, not an encryption tool. It is for removing data, not securing it for later retrieval.
- Structured Database Migration: While it handles some structure, specialized ETL tools are better for massive DB sanitization.
Error Conditions and Edge Cases
- False Positives: Strings that resemble PII (like internal serial numbers) might be accidentally redacted.
- Ambiguous Context: "Rose" could be a name (PII) or a flower; the tool may err on the side of caution.
- Encoding Issues: Ensure input text is UTF-8 to avoid detection failures on special characters.
Security and Data-Handling Considerations
- Zero Retention: Input data must never be saved to disk.
- Local Processing: Highly recommended to run this within a secure perimeter so sensitive raw data never leaves the local environment.
name: pii-sanitizer
version: 1.0.0
description: Detects and redacts Personally Identifiable Information (PII) like emails, phone numbers, and credit cards. Use when cleaning logs, datasets, or communications to comply with GDPR/CCPA privacy standards.
inputs:
input_data:
type: string
description: The raw text or data string to be sanitized.
required: true
redaction_style:
type: string
enum: [mask, replace, hash]
default: mask
pii_types:
type: array
items:
type: string
description: Specific PII types to look for (e.g., [email, phone, address]).
outputs:
sanitized_data:
type: string
description: The data with PII successfully redacted.
detection_summary:
type: array
items:
type: object
properties:
type:
type: string
count:
type: integer
capabilities:
- Regex and NLP-based detection of common PII formats.
- Support for international formats.
- Preservation of data structures (JSON/XML).
constraints:
- Potential for false positives in unstructured text.
- Cannot guarantee 100% removal in creative text formats.
security:
- Input data MUST NOT be stored or logged.
- Processing happens in-memory only.
examples:
- input:
input_data: "User contact is john.doe@example.com"
redaction_style: "mask"
output:
sanitized_data: "User contact is [EMAIL]"
detection_summary:
- type: "email"
count: 1