PII-Washer runs from source on Windows. The stack itself (FastAPI, React, Presidio) is cross-platform, but other operating systems are untested.
py -3.13).git clone https://github.com/romanmurray/pii-washer.git
cd pii-washer
If your default python is 3.14, create the venv with 3.13 explicitly:
py -3.13 -m venv .venv
.venv\Scripts\activate
Confirm you’re on a supported version:
python --version
# Should show Python 3.11.x – 3.13.x
pip install -e .
This installs Presidio Analyzer, spaCy, FastAPI, and the PII-Washer package itself in editable mode.
To also install development/test dependencies:
pip install -e ".[dev]"
The NER model must be installed via direct URL (it is not available on PyPI):
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_lg-3.8.0/en_core_web_lg-3.8.0-py3-none-any.whl
This downloads ~560 MB. An internet connection is required for this step only — after installation, PII-Washer runs entirely offline.
cd pii-washer-ui
npm install
cd ..
You need two terminals — one for the backend, one for the frontend.
Terminal 1 — Backend:
uvicorn pii_washer.api.main:app --reload
Terminal 2 — Frontend:
cd pii-washer-ui
npm run dev
Open http://localhost:5173 in your browser. The Vite dev server proxies API requests to the FastAPI backend automatically.
PII-Washer can be packaged as a standalone Windows executable — see the Desktop app section in README.md for the PyInstaller command.
Run the test suite to confirm everything is working:
pytest # fast suite (mock detection engine)
pytest -m integration # exercises the real Presidio/spaCy engine
Make sure your virtual environment is activated and you ran pip install -e . from the project root.
If you see errors about en_core_web_lg not being found, re-run the model install command from step 4. Do not use python -m spacy download en_core_web_lg — it is unreliable on Python 3.13+.
spaCy is incompatible with Python 3.14 due to its pydantic v1 dependency. Create the venv with py -3.13.
Vite 8 requires Node 20.19+ (or 22.12+). Check node --version and upgrade from nodejs.org if needed.
Kill any running Python processes before deleting or recreating the .venv directory.