Skip to content

A secure, client-side PII masking tool that redacts sensitive information (emails, names, SSNs) locally in the browser before sending text to LLMs or GPT.

License

Notifications You must be signed in to change notification settings

akio-tanaka/SecureTextMasker

Repository files navigation

Secure Text Masker

Deploy to GitHub Pages

A secure PII (Personally Identifiable Information) sanitization tool that works entirely in your browser.

🚀 Live Demo

It detects email addresses, phone numbers, and other sensitive information in text and replaces them with placeholders. No data is sent to external servers; all processing is completed locally, allowing you to handle confidential information safely.

Features

  • 🔒 Fully Local Processing: Data never leaves your browser. No external server requests.
  • 🛡️ Presidio-Compatible Engine: An analyzer engine inspired by Microsoft Presidio for high-accuracy PII detection.
  • 🛠️ Custom Pattern Management: Add your own detection rules using regular expressions. Supports CSV import/export and pattern editing.
  • 🔦 Visual Highlighting: Real-time highlighting of detected sensitive areas in the text area.
  • 🔄 Reversible Sanitization: Restore original values from placeholders (within the same session).
  • 🌍 Global Support: Supports phone numbers and identification numbers (SSN/My Number) from various countries, including Japan, the US, and Europe.
  • 🎨 Modern UI: Clean and intuitive design using shadcn/ui. Supports dark mode and multiple languages.

Setup

# Install dependencies
npm install

# Start development server
npm run dev

Production Build

# Run build
npm run build

# Preview build result
npm run preview

After a successful build, static files are generated in the dist directory.

Deployment

This project is configured for automated deployment to GitHub Pages using GitHub Actions. Builds and deployments are triggered automatically when pushing to the main branch.

Tech Stack

  • Frontend: React, Vite
  • Styling: Tailwind CSS, shadcn/ui
  • Internationalization: i18next, react-i18next
  • Icons: Lucide React

Testing

This project uses monkey testing in the browser to ensure robustness.

  • Manual Testing (Test Prompts): Sample data for various languages and patterns can be found in docs/TEST_PROMPTS.md. Use these to verify functionality.
  • Monkey Testing: Simulates random clicks and inputs to detect unexpected crashes. For detailed execution steps, see docs/MONKEY_TESTING.md.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A secure, client-side PII masking tool that redacts sensitive information (emails, names, SSNs) locally in the browser before sending text to LLMs or GPT.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published