On Product Hunt today

PII guard for Claude Code.

A PreToolUse hook that redacts files before Claude reads them. Real names never enter Claude's context.

Open-source plugin. Detection runs locally. Reversible — you reveal originals in your own terminal, outside Claude. Same engine ships as a CLI for any LLM workflow and a hosted proxy for OpenAI / Anthropic / Azure.

Here's what it looks like before anything leaves your machine.

Original

Anna Müller, born March 12, 1985, granted her tax advisor Markus Schmidt in Munich a comprehensive power of attorney on April 3, 2024.

Pseudonymized

<<PERSON_1>>, born <<DATE_1>>, granted her tax advisor <<PERSON_2>> in <<CITY_1>> a comprehensive power of attorney on <<DATE_2>>.

<<PERSON_1>> <<DATE_1>> <<PERSON_2>> <<CITY_1>> <<DATE_2>>
CLAUDE CODE PLUGIN

Claude Code, without your data ever reaching Claude.

The plugin pseudonymizes your inputs locally before they reach Claude — and restores the responses automatically afterwards.

INSTALL
# add the marketplace once
$ /plugin marketplace add nextaim-de/noirdoc-claude-plugin

# install the plugin inside Claude Code
$ /plugin install noirdoc@nextaim
AUTO REDACT

Redacts without lifting a finger.

As soon as you open or read a protected file in Claude Code, the plugin replaces names, IBANs, and IDs with placeholders locally — before Claude gets to see anything.

REVEAL

Real values stay in your own terminal.

Run `noirdoc reveal` to see the original — but only in your own shell, never inside the Claude Code transcript. The conversation stays clean.

PATH RULES

You decide what's protected.

Glob rules like `./incoming/**` or `*.contract.*` decide which files are pseudonymized automatically. Everything else stays untouched.

LOCAL

Mapping stays on your machine.

Pseudonymized copies live in `.noirdoc/cache/` and the reversible mapping stays local. No API call ever leaves your machine — not even to us.

MIT License · github.com/nextaim-de/noirdoc-claude-plugin

INSTALL

Here's how you get noirdoc onto your machine.

Install via pip, then call it from Python or straight from the shell.

1$ pip install noirdoc
2$ pip install noirdoc[full]    with all optional detectors
3$ noirdoc models pull
1from noirdoc import Redactor
2
3r = Redactor(namespace="mandant-mueller")
4
5r.redact_file("vertrag.pdf", output="vertrag-clean.pdf")
6r.redact_file("brief.docx", output="brief-clean.docx")
7
8translate responses back
9original = r.reveal_text(llm_response)
1one-shot — mapping is discarded
2$ noirdoc redact vertrag.pdf -o vertrag-clean.pdf
3
4persistent — mapping is preserved
5$ noirdoc redact --namespace mandant-mueller brief.docx -o brief-clean.docx
6$ noirdoc reveal --namespace mandant-mueller brief-clean.docx -o brief-revealed.docx
7$ noirdoc lookup --namespace mandant-mueller "<>"

MIT License · github.com/nextaim-de/noirdoc

Three ways to use it

Same engine. Three entry points.

The plugin handles Claude Code. The CLI handles any local document. The hosted proxy handles every API call your team makes.

Plugin · Free · OSS

For Claude Code users

Install once. PreToolUse hook redacts before Claude reads. Reveal locally when you're done.

Install
CLI · Free · OSS

For any LLM workflow

pip install noirdoc. Redact PDFs, DOCX, plain text. Round-trip with consistent placeholders.

Run it
Proxy · From €99/mo

For teams shipping AI

A reverse proxy that scrubs every OpenAI / Anthropic / Azure call. Two-line integration. Audit trail. Hosted in Germany or self-hosted.

See plans

Built by Nextaim — Munich.

If you're a team handling real customer data and want the proxy or self-hosted version, talk to us.