Skip to content

v2.0.2 — Complete Node.js rewrite

Choose a tag to compare

@gregmos gregmos released this 28 Apr 07:24
· 15 commits to main since this release

v2.0.2 — Complete Node.js rewrite

PII Shield has been rewritten from scratch in Node.js. The v1.0.0 Python implementation is preserved at tag v1.0.0 for anyone who needs it.

How install works now

No terminal commands. No model download upfront. PII Shield handles the model install in-chat via a panel that appears the first time you anonymize.

  1. Download the .mcpb for your OS:
    • Windows / Linux → pii-shield-v2.0.2-windows-linux.mcpb
    • macOS (Intel or Apple Silicon) → pii-shield-v2.0.2-macos.mcpb (bundles Node 24.15.0 to dodge a Claude Desktop darwin host-runtime launch bug)
  2. Install the MCP extension — Claude Desktop → Settings → Extensions → Advanced Settings → Install extension → select your .mcpb.
  3. Upload the skill — Claude Desktop → Customize → Skills → + → Upload a skill → select pii-contract-analyze.skill. Drives anonymize → review → analysis → deanonymize end to end.
  4. Open a new chat, ask Claude to anonymize a document. On the very first run an in-chat panel pops up with two buttons:
    • Download model — opens your default browser, downloads gliner-pii-base-v1.0.zip (~634 MB) from this release. The browser handles the transfer (no SmartScreen / Defender issues with unsigned scripts).
    • Install downloaded ZIP — PII Shield finds the ZIP in your Downloads / OneDrive / Desktop / Documents folder, validates it (model.onnx ≥ 600 MB + 4 tokenizer files), atomic-extracts into ~/.pii_shield/models/, and re-initializes NER. Anonymization continues automatically.

After that first run the panel never appears again. NER deps install once via npm ci --ignore-scripts into a versioned cache (~/.pii_shield/deps/installs/<slug>/) — 2–3 min, instant on every subsequent boot.

What changed under the hood

  • Runtime: Node.js (was Python 3.10+). No PyTorch, no SpaCy, no presidio.
  • NER: GLiNER via @xenova/transformers + onnxruntime-node 1.22.0 (pinned triplet, deterministic npm ci).
  • Package: .mcpb (was .dxt).
  • HITL review: MCP Apps iframe in chat (was localhost web server + browser tab).
  • Install: in-chat setup panel (was terminal one-liner). See above.
  • Sizes: ~700 KB thin .mcpb on Windows/Linux, ~83 MB macOS variant (bundles Node).

Release artefacts

File What Size
pii-shield-v2.0.2-windows-linux.mcpb MCPB for Windows + Linux (uses host Node) ~700 KB
pii-shield-v2.0.2-macos.mcpb MCPB for macOS arm64 + x64 (bundles Node 24.15.0) ~83 MB
pii-contract-analyze.skill Contract analysis skill (load into ~/.claude/skills/) ~25 KB
gliner-pii-base-v1.0.zip GLiNER NER model — fetched by the in-chat install panel ~613 MB

Migrating from v1.0.0

This is a separate product, not a drop-in upgrade. If you want to stay on Python, pin to tag v1.0.0.

Known notes

  • macOS users: install only pii-shield-v2.0.2-macos.mcpb, not the windows-linux one. The Mac variant bundles Node 24.15.0 to work around a Claude Desktop host-Node launch bug on darwin.
  • Mappings live at ~/.pii_shield/mappings/ with a 7-day default TTL. Raise PII_MAPPING_TTL_DAYS in extension settings for matters that span weeks / months.
  • The model can also be installed manually if you can't use the panel — drop gliner-pii-base-v1.0.zip somewhere PII Shield scans (Downloads / OneDrive / Desktop / Documents) and click the panel's Install button.