LOCAL PRIVACY. EUROPEAN CONTEXT.

Keep the context.
Keep your privacy.

Useful AI shouldn’t need your sensitive data. Bowden-PII detects and redacts personal identifiers locally, before your text reaches the cloud.

Swiss / EU focus · Open-source project · Early development

01 / Process on your terms
02 / Minimize before you send
03 / Preserve useful context

THE BOUNDARY, IN MOTION

Let the meaning through.

Identifiers become placeholders.
The original values stay on your side.

YOUR ENVIRONMENTREDACTED OUTPUT
01 / DETECT
mia@example.ch→ bowden / pii →[EMAIL_1]

Illustration using fictional contact details. The animation does not run the detector.

THE APPROACH

A small layer.
A meaningful boundary.

Personally identifiable information (PII) turns everyday text into sensitive data. Bowden-PII is a local guard for the emails, documents, and records you want to work with.

01 — RECOGNIZE

Built around real identifiers

Checksum-aware rules for Swiss AHV/AVS, UID/CHE, IBAN, and credit cards, alongside contact and network identifiers.

Deterministic core available
02 — REPLACE

Keep the useful parts

Replace detected values with consistent, typed placeholders. A local map retains the originals for your application to manage.

Stable placeholders + audit metadata
03 — EXTEND

Go beyond fixed patterns

An optional neural detector explores names, address components, and noisy text. Validated rules take priority when detections overlap.

Experimental hybrid runtime

IN PRACTICE

Same message.
Less exposure.

See what the deterministic Python engine does with a few sample records. These are precomputed examples using fictional contact details and test identifiers.

ORIGINAL TEXT01 / INPUT
Please update the account contact to mia@example.ch.
AHV: 756.9217.0769.85
IBAN: CH93 0076 2011 6238 5295 7
Send confirmation to mia@example.ch.
Sensitive values are highlighted.
REDACTED TEXT02 / OUTPUT
Please update the account contact to [EMAIL_1].
AHV: [AHV_1]
IBAN: [IBAN_1]
Send confirmation to [EMAIL_1].
Repeated values keep the same placeholder.

4 spans redacted · 3 unique placeholders

Precomputed locally · No text upload

Strict includes all supported deterministic identifier classes, including URLs.

WHERE IT FITS

Before the prompt.
Before the log. Before the API.

Add redaction where text crosses your application's privacy boundary. The Python API and CLI are the starting points today.

01Your text

Email, extracted documents,
support notes, or logs

02 / LOCALBowden-PII

Detect identifiers.
Replace them with placeholders.

03Your next step

Send redacted text to an LLM,
an API, or downstream tooling.

The placeholder map stays with your application. Tenant isolation, encrypted storage, and controlled restoration are integration responsibilities today.

BUILT IN THE OPEN

Working today.
Going further.

A practical foundation first, then broader coverage and stronger evaluation. This is an early development project; the roadmap describes direction, not release commitments.

Read the project notes
EARLY DEVELOPMENT
01
IMPLEMENTED

A local foundation

Deterministic detection, typed placeholders, three policy presets, Python API, CLI, and audit metadata without raw values.

02
EXPERIMENTAL

Learning from context

Optional hybrid detection, MiniLM training runs, synthetic multilingual data, and local tools for reviewing public-document extraction.

03
NEXT

Test against messier reality

Broaden public-document and OCR evaluation, strengthen hard negatives, expand phone coverage, and compare a multilingual model.

04
LONGER TERM

Bring the boundary closer

Explore browser and sidecar deployments, managed placeholder storage, and explicit controls for local restoration.

THE PERSON BEHIND THE NAME

Caspar
Bowden.

Privacy advocate. Independent thinker.
A voice for rights across borders.

1998
Co-founds FIPR; its first director
2002
Joins Microsoft as a privacy adviser
2013
Reports to the European Parliament

A name with a purpose.

Caspar Bowden was a British privacy advocate who helped establish the Foundation for Information Policy Research and later served as Microsoft’s chief privacy adviser for Europe, the Middle East and Africa. [1]

Before the Snowden disclosures, he warned that cloud computing could expose European data to foreign surveillance. He brought technical detail and human rights into the same conversation. [2]

Our response: minimize before you send.

Bowden-PII takes inspiration from that concern. It aims to make local data minimization a practical step before using cloud AI: detect sensitive identifiers, replace them locally, and keep the original values under your control.

Named in his honor. This project is independent and unaffiliated with Caspar Bowden’s estate or any organization. This is our interpretation of his influence, not an endorsement.

A BETTER STARTING POINT FOR AI

Less personal data.
More possibility.

Explore the implementation, understand the tradeoffs, and help shape a privacy layer built for Swiss and European workflows.

Get the source on GitHub

0.0.1 · Developer preview / Downloads →

PYTHON / LOCAL RUNTIME
from bowden_pii import redact

result = redact(
    "Contact mia@example.ch",
    policy="strict",
)

print(result.redacted)
# Contact [EMAIL_1]
Installation & usage

A FEW GOOD QUESTIONS

Clear by design.

Is Bowden-PII an LLM?

It is a local detection and redaction layer that can sit in front of an LLM or another service. Its deterministic core works without a neural model. The optional hybrid runtime adds a small token-classification model.

Does this website process my data?

The examples are fixed, precomputed fixtures, with no text-upload form. This website uses analytics served from wave.21nauts.com. Hosting providers also receive ordinary web requests. Running Bowden-PII on your own data requires the local Python runtime.

Is it ready for production?

Bowden-PII is in early development. A working core and experimental model runs are available, but synthetic benchmark results do not establish real-world reliability. Evaluate your own data, review missed detections and false positives, and build the surrounding privacy controls before relying on it.

Why the name Bowden?

The project is named in honor of Caspar Bowden and his work on privacy and cloud surveillance. It is independent and unaffiliated with his estate or any organization.