---
name: privacy-mask-29059fbb3c33
description: >-
  Mask, redact and anonymize sensitive information (PII) in screenshots and
  images — phone numbers, emails, IDs, API keys, crypto wallets, credit cards,
  passwords, and more. 100% local, 100% offline. Uses OCR with 47 regex rules
  and optional NER. Use when receiving screenshots that may contain private data,
  or when the user mentions privacy/masking/脱敏/打码.
version: 0.3.5
license: MIT
compatibility: Requires tesseract OCR, Python 3.10+, and pre-installed privacy-mask CLI.
metadata:
  author: wuhao
  openclaw:
    requires:
      bins:
        - tesseract
        - python3
        - privacy-mask
    emoji: "\U0001F6E1"
    homepage: https://github.com/fullstackcrew-alpha/privacy-mask
  permissions:
    - id: local-file-read
      description: >-
        Reads image files provided by the user to perform OCR-based
        sensitive information detection. No files are copied or transmitted.
      scope: local
      optional: false
    - id: local-file-write
      description: >-
        Writes masked output images to the local filesystem (same directory
        as input, with _masked suffix, or user-specified path).
      scope: local
      optional: false
  hooks:
    - event: UserPromptSubmit
      description: >-
        Intercepts images in Claude's local image cache and applies
        privacy masking (blur/fill redaction) in-place before they are
        sent to the API. Runs entirely locally with no network calls.
        Requires the privacy-mask CLI to be installed.
      command: scripts/mask-images.sh
      timeout: 30000
---

# Privacy Mask

Detect and mask sensitive information in images locally before they leave your machine.

## Prerequisites

This skill requires the `privacy-mask` CLI to be pre-installed on the system.
If it is not available, inform the user that they need to install it first:

1. Install via pip: `pip install privacy-mask`
2. Ensure Tesseract OCR is installed: `brew install tesseract` (macOS) or `apt install tesseract-ocr` (Linux)
3. Set up the Claude Code hook: `privacy-mask install`
4. Verify: `privacy-mask --version`

After install, all images are automatically masked before upload. No further action needed.

## When to use

- User sends a screenshot or image file (`.png`, `.jpg`, `.jpeg`, `.bmp`, `.tiff`) that may contain private data
- User mentions privacy, masking, 脱敏, or 打码
- You need to analyze an image but want to redact sensitive info first
- IF the user shares a screenshot for debugging, THEN run `privacy-mask mask <path> --dry-run` first to check for PII

## Manual usage

Mask an image:
```bash
privacy-mask mask /path/to/screenshot.png
privacy-mask mask /path/to/screenshot.png --in-place
privacy-mask mask /path/to/screenshot.png --dry-run   # detect only
privacy-mask mask /path/to/screenshot.png --detection-engine regex  # regex only, skip NER
```

Output is JSON:
```json
{
  "status": "success",
  "detections": [{"label": "PHONE_CN", "text": "***", "bbox": [10, 20, 100, 30]}],
  "summary": "Masked 1 regions: 1 PHONE_CN"
}
```

## What it detects

- **IDs**: Chinese ID card, passport, HK/TW ID, US SSN, UK NINO, Canadian SIN, Indian Aadhaar/PAN, Korean RRN, Singapore NRIC, Malaysian IC
- **Phone**: Chinese mobile/landline, US phone, international (+prefix)
- **Financial**: Bank card, Amex, IBAN, SWIFT/BIC
- **Developer keys**: AWS, GitHub, Slack, Google, Stripe tokens, JWT, connection strings, API keys, SSH/PEM keys
- **Crypto**: Bitcoin, Ethereum wallet addresses
- **Other**: Email, birthday, IP/IPv6, MAC, UUID, license plate, MRZ, URL auth tokens
- **NER** (optional): Person names, street addresses, organizations, dates of birth, medical conditions

## Constraints

- Do NOT send unmasked images to any external API or cloud service
- Do NOT skip masking when detections are found
- Do NOT modify the original image unless `--in-place` is explicitly requested

## Important

- All processing is **local and offline** — no data leaves the machine
- The hook intercepts images **before** upload to cloud API
- Configure rules in the bundled `config.json` or pass `--config` for custom rules


---
Source attribution: wuhao
Original project: https://github.com/fullstackcrew-alpha/privacy-mask/blob/3aba8656943aacc012ce7b9dca7c26ea15b6373f/skills/privacy-mask/SKILL.md
License: MIT
License information: https://opensource.org/license/mit
Original upstream instructions; downloaded from Mega AI Hub.

## Upstream license notice

MIT License

Copyright (c) 2026

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



# Mega AI Hub resource metadata

Creator / publisher: wuhao
Original project: https://github.com/fullstackcrew-alpha/privacy-mask/blob/3aba8656943aacc012ce7b9dca7c26ea15b6373f/skills/privacy-mask/SKILL.md
Attribution basis: Source repository record

Fields of work: Data & Analytics, Customer Support
Roles: Data Analyst, Technical Support, Customer Experience
Specialties: Frontend, Stripe, Word Documents, Git, API, Mobile, Backend
Tools: Privacy Mask, Tesseract, Python
Country applicability: Country not specified
Classification basis: Source category, role and specialization labels
Instruction SHA-256: 4dc5096adc627f9f37f651e8eea7ff80f8760cb7711f91dff06653bd15eb4e58
