{"id":51064408,"url":"https://github.com/maya-data-privacy/ai-safe-plugin","last_synced_at":"2026-06-23T05:02:07.017Z","repository":{"id":343078294,"uuid":"1163324185","full_name":"MAYA-DATA-PRIVACY/AI-Safe-Plugin","owner":"MAYA-DATA-PRIVACY","description":"Real-time PII detection and redaction for AI chat interfaces.","archived":false,"fork":false,"pushed_at":"2026-06-21T10:30:54.000Z","size":6907,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-21T12:15:24.807Z","etag":null,"topics":["chatgpt","chrome-extension","claude","gemini","gliner","llm","ner","pii-detection","pii-redaction","security","security-tools"],"latest_commit_sha":null,"homepage":"https://maya-data-privacy.github.io/Veil/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MAYA-DATA-PRIVACY.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"nishikantmandal007","patreon":null,"open_collective":null,"ko_fi":"nishikantmandal007","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2026-02-21T13:03:25.000Z","updated_at":"2026-06-21T10:29:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MAYA-DATA-PRIVACY/AI-Safe-Plugin","commit_stats":null,"previous_names":["nishikantmandal007/veil","maya-data-privacy/ai-safe-plugin"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/MAYA-DATA-PRIVACY/AI-Safe-Plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MAYA-DATA-PRIVACY%2FAI-Safe-Plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MAYA-DATA-PRIVACY%2FAI-Safe-Plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MAYA-DATA-PRIVACY%2FAI-Safe-Plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MAYA-DATA-PRIVACY%2FAI-Safe-Plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MAYA-DATA-PRIVACY","download_url":"https://codeload.github.com/MAYA-DATA-PRIVACY/AI-Safe-Plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MAYA-DATA-PRIVACY%2FAI-Safe-Plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34675978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatgpt","chrome-extension","claude","gemini","gliner","llm","ner","pii-detection","pii-redaction","security","security-tools"],"created_at":"2026-06-23T05:02:05.897Z","updated_at":"2026-06-23T05:02:07.011Z","avatar_url":"https://github.com/MAYA-DATA-PRIVACY.png","language":"JavaScript","funding_links":["https://github.com/sponsors/nishikantmandal007","https://ko-fi.com/nishikantmandal007"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cbr/\u003e\n\n\u003cimg src=\"assets/icons/ai-safe-plugin-wordmark-light.png\" alt=\"MAYA AISafe Plugin\" height=\"96\"\u003e\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n**MAYA AISafe Plugin — real-time PII detection and redaction for AI chat interfaces.**\u003cbr/\u003e\nLocal detection by default, with optional Maya anonymisation when you enable it.\n\n\u003cbr/\u003e\n\n[![CI](https://github.com/Maya-Data-Privacy/AI-Safe-Plugin/actions/workflows/ci.yml/badge.svg)](https://github.com/Maya-Data-Privacy/AI-Safe-Plugin/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow?style=flat-square)](LICENSE)\n[![Chrome Extension](https://img.shields.io/badge/Chrome-Extension-4285F4?style=flat-square\u0026logo=googlechrome\u0026logoColor=white)](https://chrome.google.com/webstore)\n[![Powered by GLiNER2](https://img.shields.io/badge/Powered%20by-GLiNER2-8B5CF6?style=flat-square)](https://github.com/fastino-ai/GLiNER2)\n[![Release](https://img.shields.io/github/v/release/Maya-Data-Privacy/AI-Safe-Plugin?style=flat-square\u0026color=22C55E)](https://github.com/Maya-Data-Privacy/AI-Safe-Plugin/releases)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-orange?style=flat-square)](docs/CONTRIBUTING.md)\n[![Stars](https://img.shields.io/github/stars/Maya-Data-Privacy/AI-Safe-Plugin?style=flat-square\u0026color=yellow)](https://github.com/Maya-Data-Privacy/AI-Safe-Plugin/stargazers)\n\n\u003cbr/\u003e\n\n[Website](https://maya-data-privacy.github.io/AI-Safe-Plugin/) \u0026middot; [Install Guide](https://maya-data-privacy.github.io/AI-Safe-Plugin/install) \u0026middot; [Changelog](CHANGELOG.md) \u0026middot; [Report a Bug](https://github.com/Maya-Data-Privacy/AI-Safe-Plugin/issues/new?template=bug_report.md) \u0026middot; [Request a Feature](https://github.com/Maya-Data-Privacy/AI-Safe-Plugin/issues/new?template=feature_request.md)\n\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n---\n\n## The Problem\n\nEvery time you type a name, email, phone number, or credit card into ChatGPT, Claude, Gemini, or any other AI assistant, that data can leave your browser and land on somebody else's server. It may be logged. It might get used for training. You have no way to get it back.\n\nMost people don't even think about it until it's too late.\n\n## What MAYA AISafe Plugin Does\n\nMAYA AISafe Plugin sits between you and the AI. It watches what you type, spots sensitive information in real time, and gives you a chance to mask it before it gets sent. Names become `[PERSON]`. Emails become `[EMAIL REDACTED]`. Credit card numbers can be replaced before they leave your browser.\n\nDetection runs on your own machine by default using a local NLP model called [GLiNER2](https://github.com/fastino-ai/GLiNER2), plus local regex rules. MAYA AISafe Plugin also has an optional Maya anonymisation mode for realistic replacements; when enabled, selected anonymisation payloads are sent to Maya through MAYA AISafe Plugin's local proxy.\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n```\nYou type:    \"Hey, my name is John Smith and my SSN is 123-45-6789\"\n                                    |\n                              MAYA AISafe Plugin intercepts\n                                    |\nAI receives: \"Hey, my name is [PERSON] and my SSN is [SSN REDACTED]\"\n```\n\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n## Key Features\n\n- **Local detection by default** - GLiNER2 ONNX model runs on localhost. Detection does not require cloud calls and works offline after initial setup.\n- **Inline highlights** - Grammarly-style underlining shows exactly what MAYA AISafe Plugin found. One click to redact, one click to dismiss.\n- **Works everywhere** - ChatGPT, Claude, Gemini, Perplexity, Notion, and any other site with text inputs or contentEditable fields.\n- **Regex fallback** - Built-in patterns catch API keys, JWTs, AWS credentials, SSNs, and more. Works instantly even without the local model.\n- **Custom patterns** - Add your own regex rules for internal IDs, project codes, or anything specific to your workflow.\n- **Keyboard shortcuts** - Use `Alt+Shift+R` to redact all detections in the focused field and `Alt+Shift+V` to pause or resume MAYA AISafe Plugin on the current site.\n- **Adjustable sensitivity** - Low, Medium, or High detection thresholds depending on how aggressive you want the scanning to be.\n- **One-command install** - Single curl/PowerShell command sets up the local server, downloads the model, registers autostart, and you're done.\n- **Cross-platform** - Linux (systemd), macOS (launchd), and Windows (Task Scheduler) autostart out of the box.\n\n## What It Detects\n\n**Via the GLiNER2 model:** Person names, email addresses, phone numbers, physical addresses, social security numbers, credit card numbers, dates of birth, locations, and organizations.\n\n**Via regex patterns:** OpenAI/AWS/GitHub/Stripe/Twilio API keys, JWTs, IPv4/IPv6 addresses, MAC addresses, Indian PAN/Aadhaar/IFSC numbers, passport numbers, connection strings, private keys, and any custom pattern you define.\n\nFor the full, categorized breakdown of everything the product does, see [docs/FEATURES.md](docs/FEATURES.md).\n\n---\n\n## Getting Started\n\n### 1. Install the Extension\n\nDownload the latest `ai-safe-plugin-extension-*.zip` from [Releases](https://github.com/Maya-Data-Privacy/AI-Safe-Plugin/releases), extract it, then:\n\n1. Open Chrome and go to `chrome://extensions`\n2. Turn on **Developer mode** (top right)\n3. Click **Load unpacked** and select the extracted folder\n4. If you previously loaded an older unpacked build, reload the extension once so Chrome uses MAYA AISafe Plugin's fixed extension ID.\n\n### 2. Install the Local Server\n\nThe server handles PII detection using the GLiNER2 model. One command does everything: downloads the server, sets up the Python runtime, downloads the model, registers autostart, and starts the server.\n\n**Linux / macOS:**\n```bash\ncurl -fsSL https://github.com/Maya-Data-Privacy/AI-Safe-Plugin/releases/latest/download/install.sh | bash\n```\n\n**Windows** (PowerShell as Administrator):\n```powershell\nirm https://github.com/Maya-Data-Privacy/AI-Safe-Plugin/releases/latest/download/install.ps1 | iex\n```\n\nThat's it. The server starts immediately and will auto-launch on every login. Advanced/custom builds can still pass an explicit extension ID with `--extension-id` or `-ExtensionId`; ordinary releases use the pinned ID `aggkonihfabdcbgomkfecjhdolddfabe`. Open any AI chatbot and start typing - MAYA AISafe Plugin is watching.\n\n### 3. Verify It Works\n\nClick the MAYA AISafe Plugin icon in your browser toolbar. You should see:\n- A green status dot indicating the local server is online\n- \"Local GLiNER2 is online\" in the status area\n\nType something like \"My name is John Smith and my email is john@example.com\" into any AI chat. MAYA AISafe Plugin should highlight the name and email within a second or two.\n\n---\n\n## How It Works Under the Hood\n\n```\nBrowser Tab (chatgpt.com, claude.ai, etc.)\n    |\n    v\ncontent.js ---- monitors input fields ----\u003e background.js (service worker)\n    |                                              |\n    |   highlights + redaction UI                  v\n    |\u003c-----------------------------    GLiNER2 ONNX server (127.0.0.1:8765)\n    |                                  via native_host.py (Chrome native messaging)\n    v\nUser sees inline highlights. One-click redaction replaces PII before submission.\n```\n\n1. **content.js** watches every text input and contentEditable field on the page. When you type, it debounces and sends the text to the background service worker.\n2. **background.js** forwards the text to the local GLiNER2 server over `localhost:8765` (via Chrome's native messaging bridge for reliability).\n3. The **GLiNER2 server** runs the ONNX model, finds entities, and returns detection results with positions and confidence scores.\n4. **content.js** renders inline highlights over the detected spans. You can dismiss false positives or accept redactions with a single click.\n\nLocal detection happens on your machine. The extension's manifest includes a strict Content Security Policy (`script-src 'self'; object-src 'none'`) and no remote code is ever loaded or executed.\n\n### Data Flow and Retention\n\n- **Detection text**: sent from the active tab to the extension background worker, then to the local MAYA AISafe Plugin server on `127.0.0.1:8765` for GLiNER2 inference. This detection path is local by default.\n- **Optional anonymisation**: when Anonymize mode is enabled and a Maya API key is configured, selected detected values are sent to Maya through the local `/anonymize` proxy so Maya can return realistic replacements. Maya company policy says Maya does not store PII that runs through its anonymisation engine.\n- **Browser-local storage**: settings, custom regex patterns, Maya API key, local server URL override, onboarding/preferences, site redaction counters, and cached redaction state are stored in `chrome.storage.local`, not Chrome sync.\n- **Cached redaction state**: MAYA AISafe Plugin stores recent redaction state locally so page interactions can remain consistent. The cache includes the source text and detected items, and entries older than 24 hours are removed by the extension cache cleanup logic.\n- **Uninstall**: removing the extension clears extension-owned browser storage according to browser behavior. The server uninstall scripts remove the local server runtime, model files, autostart entries, and native messaging host config.\n\n### Security Boundaries\n\n- MAYA AISafe Plugin protects text before submission; it does not control how ChatGPT, Claude, Gemini, or any destination service handles text after you send it.\n- MAYA AISafe Plugin does not inspect provider-owned server logs, conversation databases, or model-training pipelines.\n- The local server binds to `127.0.0.1` by default. Treat other local processes and browser extensions on the same machine as part of your local trust boundary.\n- Custom regex patterns run locally but can still create performance problems if a pattern is pathological. Add only patterns you trust.\n\n---\n\n## Configuration\n\n### Sensitivity Levels\n\n| Level  | Threshold | When to Use |\n|--------|-----------|-------------|\n| Low    | 0.75      | Fewer detections, higher precision. Good if you're getting false positives. |\n| Medium | 0.62      | Balanced. This is the default. |\n| High   | 0.52      | Catches more, but expect some noise. Use when handling highly sensitive data. |\n\n### Custom Regex Patterns\n\nHead to the extension's Settings page, scroll to **Advanced**, and add patterns like:\n\n```json\n{\n  \"id\": \"internal_employee_id\",\n  \"label\": \"employee_id\",\n  \"pattern\": \"\\\\bEMP-[0-9]{6}\\\\b\",\n  \"flags\": \"g\",\n  \"score\": 0.99,\n  \"replacement\": \"[EMPLOYEE ID]\",\n  \"enabled\": true\n}\n```\n\n### Anonymisation Service (Optional)\n\nMAYA AISafe Plugin can optionally connect to the [Maya Data Privacy](https://mayadataprivacy.in) anonymisation API for smarter replacements - turning `John Smith` into a consistent synthetic alias like `Alex Johnson` instead of a generic `[PERSON]` tag.\n\nThis is disabled by default and requires your own Maya API key. When Anonymize mode is enabled, MAYA AISafe Plugin sends the selected detected values and metadata needed for anonymisation to Maya through the local server's `/anonymize` proxy. Maya company policy says Maya does not store PII that runs through its anonymisation engine. Unsupported detections remain local and are masked with local redaction tags.\n\n---\n\n## Uninstalling\n\n**Linux / macOS:**\n```bash\ncurl -fsSL https://github.com/Maya-Data-Privacy/AI-Safe-Plugin/releases/latest/download/uninstall.sh | bash\n```\n\n**Windows:**\n```powershell\nirm https://github.com/Maya-Data-Privacy/AI-Safe-Plugin/releases/latest/download/uninstall.ps1 | iex\n```\n\nThis removes the server, Python virtual environment, downloaded models, autostart registration, and native messaging host config. The Chrome extension itself is removed separately from `chrome://extensions`.\n\n---\n\n## Development\n\n### Prerequisites\n\n- Node.js 18+\n- Python 3.11 (managed automatically by `uv`)\n- Chrome or any Chromium-based browser\n\n### Setup\n\n```bash\ngit clone https://github.com/Maya-Data-Privacy/AI-Safe-Plugin.git\ncd AI-Safe-Plugin\nnpm run setup                    # provisions Python 3.11 + dependencies via uv\nnpm run download-gliner2         # downloads the ONNX model (~2 GB)\nnpm run run-gliner2              # starts the local server on port 8765\n```\n\nLoad `extension/` as an unpacked extension in Chrome, and you're developing.\n\nFor optional Maya anonymisation endpoint overrides, create a local `.env` from the environment variable sample in [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md). Do not commit `.env`.\n\n### Running Tests\n\n```bash\nnpm run test:unit              # JavaScript unit tests\nnpm run test:unit:python       # Python unit tests (pytest)\nnpm run test:e2e               # Playwright end-to-end tests (headless Chromium)\nnpm run test:e2e:headed        # same, but with a visible browser\n```\n\n### Version Management\n\nVersion is defined once in `package.json`. After editing it, run:\n\n```bash\nnpm run version:sync           # propagates to manifest.json + pyproject.toml\nnpm run version:check          # CI uses this to catch drift\n```\n\n### Building a Release\n\n```bash\nnpm run build:zip              # extension zip for Chrome Web Store\nnpm run build:backend-bundle   # server tarball for GitHub Release\nnpm run build:model-bundle     # ONNX model tarball for GitHub Release\n```\n\nReleases are triggered by pushing a `v*` tag. The pipeline verifies version consistency across all files, runs the full test suite, and uploads release assets automatically. The full procedure is in [docs/RELEASING.md](docs/RELEASING.md).\n\n---\n\n## Project Structure\n\n```\nAI-Safe-Plugin/\n├── extension/                  # Chrome extension (load this folder directly)\n│   ├── manifest.json           # MV3 manifest with CSP\n│   ├── background.js           # Service worker: detection routing, server health\n│   ├── content.js              # In-page PII detection, highlights, redaction UI\n│   ├── popup.html / popup.js   # Toolbar popup\n│   ├── options.html / options.js  # Full settings page\n│   ├── pattern_catalog.js      # Built-in + custom regex pattern engine\n│   └── styles.css\n│\n├── server/                     # Local Python backend\n│   ├── gliner2_server.py       # GLiNER2 ONNX inference server (localhost:8765)\n│   ├── native_host.py          # Chrome native messaging bridge (stdio)\n│   ├── native-host/            # Platform install/uninstall for the messaging host\n│   └── autostart/              # Platform service registration (systemd/launchd/schtasks)\n│\n├── scripts/\n│   ├── installers/             # User-facing install.sh, install.ps1, uninstall.*\n│   ├── build_backend_bundle.py # Packages server + runtime for GitHub Release\n│   ├── build_model_bundle.py   # Packages fp16 ONNX model for GitHub Release\n│   ├── build_crx.sh            # Zips extension/ for Chrome Web Store\n│   └── sync_version.py         # Single-source version propagation\n│\n├── tests/\n│   ├── e2e/                    # Playwright browser tests\n│   ├── js/                     # Node.js unit tests\n│   └── server/                 # Python unit tests (pytest)\n│\n├── assets/icons/               # Logos, wordmarks, social preview\n├── docs/                       # Contributing, security policy, architecture\n└── .github/workflows/          # CI, CodeQL, release automation\n```\n\n---\n\n## Security\n\n### What MAYA AISafe Plugin Protects Against\n\nAccidental disclosure of personal data to AI services. If you paste your SSN into ChatGPT without thinking, MAYA AISafe Plugin catches it and gives you a chance to redact it first.\n\n### What It Does Not Protect Against\n\nA compromised browser, a malicious extension with higher privileges, OS-level keyloggers, or network interception. MAYA AISafe Plugin is a privacy safeguard, not a security perimeter.\n\n### Extension Permissions\n\n| Permission | Why |\n|---|---|\n| `storage` | Saves your settings (sensitivity, custom patterns, enabled state) locally |\n| `activeTab` | Shows per-tab detection stats in the popup |\n| `scripting` | Fallback content script injection for dynamic iframes |\n| `nativeMessaging` | Connects to the local GLiNER2 server via Chrome's native messaging bridge |\n| `\u003call_urls\u003e` | Monitors text inputs on any site where you might type sensitive data |\n\n### Reporting Vulnerabilities\n\nPlease do not open public issues for security vulnerabilities. See [docs/SECURITY.md](docs/SECURITY.md) for responsible disclosure instructions.\n\n### Privacy\n\nMAYA AISafe Plugin performs detection locally by default; optional Maya anonymisation runs only when you enable it. See the full [Privacy Policy](docs/PRIVACY_POLICY.md) for what MAYA AISafe Plugin processes, what leaves the device, and how local data is stored and deleted.\n\n---\n\n## Roadmap\n\n- [x] GLiNER2 local NER detection\n- [x] Regex fallback engine with 20+ built-in patterns\n- [x] Inline redaction UI for plain text and contentEditable fields\n- [x] Custom regex pattern support\n- [x] Cross-platform autostart (Linux, macOS, Windows)\n- [x] Bundled ONNX model in GitHub Release (no HuggingFace download needed)\n- [x] Single-source version management\n- [ ] Chrome Web Store listing\n- [ ] Firefox support\n- [ ] On-device ONNX model (no Python server required)\n- [ ] Audit log / export of redacted sessions\n- [ ] Team policy mode (enforce redaction rules via shared config)\n\n---\n\n## Contributing\n\nWe welcome contributions, especially around PII detection accuracy, new browser support, performance improvements, and documentation.\n\nSee [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) for guidelines and [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) for the local development setup.\n\n**Areas where we could use help:** Firefox/Safari port, Windows and macOS native host improvements, ONNX model packaging, UI polish, demo GIFs, and documentation.\n\n---\n\n## Acknowledgments\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"180\"\u003e\n      \u003ca href=\"https://github.com/fastino-ai\"\u003e\n        \u003cimg src=\"https://github.com/fastino-ai.png\" width=\"52\" style=\"border-radius:8px\" /\u003e\u003cbr/\u003e\n        \u003cb\u003eFastino Labs\u003c/b\u003e\n      \u003c/a\u003e\u003cbr/\u003e\n      \u003csub\u003eGLiNER2 — the local zero-shot NER model that powers PII detection\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"180\"\u003e\n      \u003ca href=\"https://github.com/Maya-Data-Privacy\"\u003e\n        \u003cimg src=\"https://github.com/Maya-Data-Privacy.png\" width=\"52\" style=\"border-radius:8px\" /\u003e\u003cbr/\u003e\n        \u003cb\u003eMaya Data Privacy\u003c/b\u003e\n      \u003c/a\u003e\u003cbr/\u003e\n      \u003csub\u003eAnonymisation API for format-preserving entity replacement\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"180\"\u003e\n      \u003ca href=\"https://huggingface.co\"\u003e\n        \u003cimg src=\"https://huggingface.co/front/assets/huggingface_logo-noborder.svg\" width=\"52\" /\u003e\u003cbr/\u003e\n        \u003cb\u003eHugging Face\u003c/b\u003e\n      \u003c/a\u003e\u003cbr/\u003e\n      \u003csub\u003eModel hosting and the transformers ecosystem\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## License\n\n[MIT](LICENSE) \u0026copy; 2025 [Maya Data Privacy](https://mayadataprivacy.in)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaya-data-privacy%2Fai-safe-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaya-data-privacy%2Fai-safe-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaya-data-privacy%2Fai-safe-plugin/lists"}