Linux 的 systemd 单元默认不启用,需手动 enable 或前台运行 kiji-proxy;CLI 工具需自行设置 HTTP_PROXY/HTTPS_PROXY 指向 127.0.0.1:8081;macOS 自动配置浏览器代理需用 sudo 启动。

kiji-proxy
dataikuApache-2.0活跃维护给 OpenAI 请求加一层隐私代理,自动检测并脱敏提示词中的 PII 等敏感信息,让调用大模型时不泄露用户数据。
Privacy proxy for your OpenAI requests
brew install --cask dataiku/tap/kiji-privacy-proxy
# Linux: sudo dpkg -i kiji-privacy-proxy_X.Y.Z_amd64.deb && sudo systemctl enable --now kiji-privacy-proxyREADME 未说明显存或 GPU 要求;PII 检测用 ONNX 模型在本地推理,平台支持 macOS 与 Linux。
本地隐私代理,自动识别并遮蔽发往 OpenAI 等 AI 服务的 PII,响应时再还原
给 OpenAI 请求加一层隐私代理,自动检测并脱敏提示词中的 PII 等敏感信息,让调用大模型时不泄露用户数据。
核心能力
- 用 ONNX 本地模型检测 26 类 PII,不外发数据
- 把敏感值替换为逼真假值,响应中自动还原原文
- 支持按实体类型关闭遮蔽或自定义正则规则
- macOS 通过 PAC 自动配置 Safari/Chrome 代理,零代码改动
- 提供 Chrome 扩展,在 ChatGPT/Claude/Gemini 页面内联检测
容易踩的坑
- v1.6.8Kiji Privacy Proxy v1.6.8最新正式版2026-10-27 · 2026-10-27 17:19 UTC
Kiji Privacy Proxy v1.6.8
Downloads
- macOS: DMG installer (Apple Silicon and Intel) - Desktop app with UI
- Linux: Standalone binary archive (amd64) - serves the web UI at http://localhost:8080
- Linux (.deb): Debian/Ubuntu package (amd64) with systemd unit
- Chrome Extension: Browser extension for PII detection in web forms
macOS Installation
Homebrew (recommended):
brew install --cask dataiku/tap/kiji-privacy-proxyOr download manually:
- Download
Kiji-Privacy-Proxy-1.6.8.dmg - Open the DMG and drag to Applications
- Launch "Kiji Privacy Proxy"
HTTPS Support - Install CA Certificate:
For HTTPS interception to work, you must trust the proxy's CA certificate:
# System-wide trust (recommended) sudo security add-trusted-cert \ -d \ -r trustRoot \ -k /Library/Keychains/System.keychain \ ~/.kiji-proxy/certs/ca.crtOr use Keychain Access:
- Open Keychain Access app
- File → Import Items →
~/.kiji-proxy/certs/ca.crt - Double-click "Kiji Privacy Proxy CA" certificate
- Expand Trust → Set to Always Trust
Linux Installation
Note: The Linux build serves the embedded web UI at http://localhost:8080 — open it in a browser. Set
KIJI_SERVE_UI=falseto run API-only (headless).Quick Start:
# Extract tar -xzf kiji-privacy-proxy-1.6.8-linux-amd64.tar.gz cd kiji-privacy-proxy-1.6.8-linux-amd64 # Run ./run.shHTTPS Support - Install CA Certificate:
# Ubuntu/Debian sudo cp ~/.kiji-proxy/certs/ca.crt /usr/local/share/ca-certificates/kiji-proxy-ca.crt sudo update-ca-certificates # RHEL/CentOS/Fedora sudo cp ~/.kiji-proxy/certs/ca.crt /etc/pki/ca-trust/source/anchors/kiji-proxy-ca.crt sudo update-ca-trustConfiguration:
# Set API key export OPENAI_API_KEY="your-key-here" # Check health curl http://localhost:8080/health # Test proxy curl -x http://localhost:8080 https://api.openai.com/v1/modelsSee included
README.txtfor systemd service setup and advanced configuration.Debian / Ubuntu (.deb)
sudo dpkg -i kiji-privacy-proxy_1.6.8_amd64.deb # The systemd unit is installed but not enabled by default. # Configure /etc/default or env vars first, then: sudo systemctl enable --now kiji-privacy-proxyFiles land under
/opt/kiji-privacy-proxy/and akiji-proxywrapper is placed onPATHat/usr/bin/kiji-proxy.Chrome Extension
Install from zip:
- Download
kiji-privacy-proxy-extension-1.6.8.zip - Unzip to a folder
- Open
chrome://extensions/ - Enable Developer mode
- Click Load unpacked and select the unzipped folder
Documentation
What's New
See the changelog below for details.
What's Changed
- ci: skip npm version lifecycle script when syncing root version by @Davidnet in https://github.com/dataiku/kiji-proxy/pull/659
- deps(deps-dev): bump @changesets/cli from 2.31.0 to 3.0.3 by @dependabot[bot] in https://github.com/dataiku/kiji-proxy/pull/644
- deps(deps): bump the tailwind-css group across 1 directory with 5 updates by @dependabot[bot] in https://github.com/dataiku/kiji-proxy/pull/650
- deps(deps): bump the production-dependencies group across 1 directory with 7 updates by @dependabot[bot] in https://github.com/dataiku/kiji-proxy/pull/651
- fix: bump electron-builder to 26.18.1 and re-enable DMG release by @hanneshapke in https://github.com/dataiku/kiji-proxy/pull/660
- chore: version packages by @github-actions[bot] in https://github.com/dataiku/kiji-proxy/pull/661
Full Changelog: https://github.com/dataiku/kiji-proxy/compare/v1.6.7...v1.6.8
- v1.6.7Kiji Privacy Proxy v1.6.72026-10-21 · 2026-10-21 21:07 UTC
查看更新说明
Kiji Privacy Proxy v1.6.7
Note: macOS builds are temporarily paused. This release does not include a DMG and the Homebrew cask is not updated. macOS users can keep using the previous release.
Downloads
- Linux: Standalone binary archive (amd64) - serves the web UI at http://localhost:8080
- Linux (.deb): Debian/Ubuntu package (amd64) with systemd unit
- Chrome Extension: Browser extension for PII detection in web forms
Linux Installation
Note: The Linux build serves the embedded web UI at http://localhost:8080 — open it in a browser. Set
KIJI_SERVE_UI=falseto run API-only (headless).Quick Start:
# Extract tar -xzf kiji-privacy-proxy-1.6.7-linux-amd64.tar.gz cd kiji-privacy-proxy-1.6.7-linux-amd64 # Run ./run.shHTTPS Support - Install CA Certificate:
# Ubuntu/Debian sudo cp ~/.kiji-proxy/certs/ca.crt /usr/local/share/ca-certificates/kiji-proxy-ca.crt sudo update-ca-certificates # RHEL/CentOS/Fedora sudo cp ~/.kiji-proxy/certs/ca.crt /etc/pki/ca-trust/source/anchors/kiji-proxy-ca.crt sudo update-ca-trustConfiguration:
# Set API key export OPENAI_API_KEY="your-key-here" # Check health curl http://localhost:8080/health # Test proxy curl -x http://localhost:8080 https://api.openai.com/v1/modelsSee included
README.txtfor systemd service setup and advanced configuration.Debian / Ubuntu (.deb)
sudo dpkg -i kiji-privacy-proxy_1.6.7_amd64.deb # The systemd unit is installed but not enabled by default. # Configure /etc/default or env vars first, then: sudo systemctl enable --now kiji-privacy-proxyFiles land under
/opt/kiji-privacy-proxy/and akiji-proxywrapper is placed onPATHat/usr/bin/kiji-proxy.Chrome Extension
Install from zip:
- Download
kiji-privacy-proxy-extension-1.6.7.zip - Unzip to a folder
- Open
chrome://extensions/ - Enable Developer mode
- Click Load unpacked and select the unzipped folder
Documentation
What's New
See the changelog below for details.
What's Changed
- fix(pii): never echo original PII and generate guaranteed-invalid dummies by @rhiannalitchfield in https://github.com/dataiku/kiji-proxy/pull/594
- docs: updated readme code formatting by @hanneshapke in https://github.com/dataiku/kiji-proxy/pull/613
- feat: i8n Japanese and Korean translations by @hanneshapke in https://github.com/dataiku/kiji-proxy/pull/612
- feat(extension): configure PII entity types and custom regex from options page by @yjouini in https://github.com/dataiku/kiji-proxy/pull/540
- feat: unmask endpoint by @hanneshapke in https://github.com/dataiku/kiji-proxy/pull/625
- feat(pii): load generator word pools from embedded data files by @rhiannalitchfield in https://github.com/dataiku/kiji-proxy/pull/608
- test(pii): add unit tests for masking_service.go by @kalra-mohit in https://github.com/dataiku/kiji-proxy/pull/609
- test(processor): add unit tests for response.go's ProcessResponse by @kalra-mohit in https://github.com/dataiku/kiji-proxy/pull/610
- test(server): add unit tests for server.go's HTTP handlers by @kalra-mohit in https://github.com/dataiku/kiji-proxy/pull/611
- feat(pii): add TTL-only expiration with request-scoped mappings by @Davidnet in https://github.com/dataiku/kiji-proxy/pull/633
- chore: version packages by @github-actions[bot] in https://github.com/dataiku/kiji-proxy/pull/630
- ci(dependabot): run npm updates from the workspace root only by @Davidnet in https://github.com/dataiku/kiji-proxy/pull/638
- ci(dependabot): keep Tailwind native pins in one group and in sync by @Davidnet in https://github.com/dataiku/kiji-proxy/pull/649
- test: set bu
- v1.6.4Kiji Privacy Proxy v1.6.42026-07-16 · 2026-07-16 16:52 UTC
查看更新说明
Kiji Privacy Proxy v1.6.4
Downloads
- macOS: DMG installer (Apple Silicon and Intel) - Desktop app with UI
- Linux: Standalone binary archive (amd64) - serves the web UI at http://localhost:8080
- Linux (.deb): Debian/Ubuntu package (amd64) with systemd unit
- Chrome Extension: Browser extension for PII detection in web forms
macOS Installation
Homebrew (recommended):
brew install --cask dataiku/tap/kiji-privacy-proxyOr download manually:
- Download
Kiji-Privacy-Proxy-1.6.4.dmg - Open the DMG and drag to Applications
- Launch "Kiji Privacy Proxy"
HTTPS Support - Install CA Certificate:
For HTTPS interception to work, you must trust the proxy's CA certificate:
# System-wide trust (recommended) sudo security add-trusted-cert \ -d \ -r trustRoot \ -k /Library/Keychains/System.keychain \ ~/.kiji-proxy/certs/ca.crtOr use Keychain Access:
- Open Keychain Access app
- File → Import Items →
~/.kiji-proxy/certs/ca.crt - Double-click "Kiji Privacy Proxy CA" certificate
- Expand Trust → Set to Always Trust
Linux Installation
Note: The Linux build serves the embedded web UI at http://localhost:8080 — open it in a browser. Set
KIJI_SERVE_UI=falseto run API-only (headless).Quick Start:
# Extract tar -xzf kiji-privacy-proxy-1.6.4-linux-amd64.tar.gz cd kiji-privacy-proxy-1.6.4-linux-amd64 # Run ./run.shHTTPS Support - Install CA Certificate:
# Ubuntu/Debian sudo cp ~/.kiji-proxy/certs/ca.crt /usr/local/share/ca-certificates/kiji-proxy-ca.crt sudo update-ca-certificates # RHEL/CentOS/Fedora sudo cp ~/.kiji-proxy/certs/ca.crt /etc/pki/ca-trust/source/anchors/kiji-proxy-ca.crt sudo update-ca-trustConfiguration:
# Set API key export OPENAI_API_KEY="your-key-here" # Check health curl http://localhost:8080/health # Test proxy curl -x http://localhost:8080 https://api.openai.com/v1/modelsSee included
README.txtfor systemd service setup and advanced configuration.Debian / Ubuntu (.deb)
sudo dpkg -i kiji-privacy-proxy_1.6.4_amd64.deb # The systemd unit is installed but not enabled by default. # Configure /etc/default or env vars first, then: sudo systemctl enable --now kiji-privacy-proxyFiles land under
/opt/kiji-privacy-proxy/and akiji-proxywrapper is placed onPATHat/usr/bin/kiji-proxy.Chrome Extension
Install from zip:
- Download
kiji-privacy-proxy-extension-1.6.4.zip - Unzip to a folder
- Open
chrome://extensions/ - Enable Developer mode
- Click Load unpacked and select the unzipped folder
Documentation
What's New
See the changelog below for details.
What's Changed
- chore: release 1.6.4 by @hanneshapke in https://github.com/dataiku/kiji-proxy/pull/606
- chore: version packages by @github-actions[bot] in https://github.com/dataiku/kiji-proxy/pull/607
Full Changelog: https://github.com/dataiku/kiji-proxy/compare/v1.6.3...v1.6.4
- v1.6.3Kiji Privacy Proxy v1.6.32026-07-16 · 2026-07-16 04:36 UTC
查看更新说明
Kiji Privacy Proxy v1.6.3
Downloads
- macOS: DMG installer (Apple Silicon and Intel) - Desktop app with UI
- Linux: Standalone binary archive (amd64) - serves the web UI at http://localhost:8080
- Linux (.deb): Debian/Ubuntu package (amd64) with systemd unit
- Chrome Extension: Browser extension for PII detection in web forms
macOS Installation
Homebrew (recommended):
brew install --cask dataiku/tap/kiji-privacy-proxyOr download manually:
- Download
Kiji-Privacy-Proxy-1.6.3.dmg - Open the DMG and drag to Applications
- Launch "Kiji Privacy Proxy"
HTTPS Support - Install CA Certificate:
For HTTPS interception to work, you must trust the proxy's CA certificate:
# System-wide trust (recommended) sudo security add-trusted-cert \ -d \ -r trustRoot \ -k /Library/Keychains/System.keychain \ ~/.kiji-proxy/certs/ca.crtOr use Keychain Access:
- Open Keychain Access app
- File → Import Items →
~/.kiji-proxy/certs/ca.crt - Double-click "Kiji Privacy Proxy CA" certificate
- Expand Trust → Set to Always Trust
Linux Installation
Note: The Linux build serves the embedded web UI at http://localhost:8080 — open it in a browser. Set
KIJI_SERVE_UI=falseto run API-only (headless).Quick Start:
# Extract tar -xzf kiji-privacy-proxy-1.6.3-linux-amd64.tar.gz cd kiji-privacy-proxy-1.6.3-linux-amd64 # Run ./run.shHTTPS Support - Install CA Certificate:
# Ubuntu/Debian sudo cp ~/.kiji-proxy/certs/ca.crt /usr/local/share/ca-certificates/kiji-proxy-ca.crt sudo update-ca-certificates # RHEL/CentOS/Fedora sudo cp ~/.kiji-proxy/certs/ca.crt /etc/pki/ca-trust/source/anchors/kiji-proxy-ca.crt sudo update-ca-trustConfiguration:
# Set API key export OPENAI_API_KEY="your-key-here" # Check health curl http://localhost:8080/health # Test proxy curl -x http://localhost:8080 https://api.openai.com/v1/modelsSee included
README.txtfor systemd service setup and advanced configuration.Debian / Ubuntu (.deb)
sudo dpkg -i kiji-privacy-proxy_1.6.3_amd64.deb # The systemd unit is installed but not enabled by default. # Configure /etc/default or env vars first, then: sudo systemctl enable --now kiji-privacy-proxyFiles land under
/opt/kiji-privacy-proxy/and akiji-proxywrapper is placed onPATHat/usr/bin/kiji-proxy.Chrome Extension
Install from zip:
- Download
kiji-privacy-proxy-extension-1.6.3.zip - Unzip to a folder
- Open
chrome://extensions/ - Enable Developer mode
- Click Load unpacked and select the unzipped folder
Documentation
What's New
See the changelog below for details.
What's Changed
- fix: crashing dmg by @hanneshapke in https://github.com/dataiku/kiji-proxy/pull/604
- chore: version packages by @github-actions[bot] in https://github.com/dataiku/kiji-proxy/pull/605
Full Changelog: https://github.com/dataiku/kiji-proxy/compare/v1.6.2...v1.6.3
- v1.6.2Kiji Privacy Proxy v1.6.22026-07-16 · 2026-07-16 03:41 UTC
查看更新说明
Kiji Privacy Proxy v1.6.2
Downloads
- macOS: DMG installer (Apple Silicon and Intel) - Desktop app with UI
- Linux: Standalone binary archive (amd64) - serves the web UI at http://localhost:8080
- Linux (.deb): Debian/Ubuntu package (amd64) with systemd unit
- Chrome Extension: Browser extension for PII detection in web forms
macOS Installation
Homebrew (recommended):
brew install --cask dataiku/tap/kiji-privacy-proxyOr download manually:
- Download
Kiji-Privacy-Proxy-1.6.2.dmg - Open the DMG and drag to Applications
- Launch "Kiji Privacy Proxy"
HTTPS Support - Install CA Certificate:
For HTTPS interception to work, you must trust the proxy's CA certificate:
# System-wide trust (recommended) sudo security add-trusted-cert \ -d \ -r trustRoot \ -k /Library/Keychains/System.keychain \ ~/.kiji-proxy/certs/ca.crtOr use Keychain Access:
- Open Keychain Access app
- File → Import Items →
~/.kiji-proxy/certs/ca.crt - Double-click "Kiji Privacy Proxy CA" certificate
- Expand Trust → Set to Always Trust
Linux Installation
Note: The Linux build serves the embedded web UI at http://localhost:8080 — open it in a browser. Set
KIJI_SERVE_UI=falseto run API-only (headless).Quick Start:
# Extract tar -xzf kiji-privacy-proxy-1.6.2-linux-amd64.tar.gz cd kiji-privacy-proxy-1.6.2-linux-amd64 # Run ./run.shHTTPS Support - Install CA Certificate:
# Ubuntu/Debian sudo cp ~/.kiji-proxy/certs/ca.crt /usr/local/share/ca-certificates/kiji-proxy-ca.crt sudo update-ca-certificates # RHEL/CentOS/Fedora sudo cp ~/.kiji-proxy/certs/ca.crt /etc/pki/ca-trust/source/anchors/kiji-proxy-ca.crt sudo update-ca-trustConfiguration:
# Set API key export OPENAI_API_KEY="your-key-here" # Check health curl http://localhost:8080/health # Test proxy curl -x http://localhost:8080 https://api.openai.com/v1/modelsSee included
README.txtfor systemd service setup and advanced configuration.Debian / Ubuntu (.deb)
sudo dpkg -i kiji-privacy-proxy_1.6.2_amd64.deb # The systemd unit is installed but not enabled by default. # Configure /etc/default or env vars first, then: sudo systemctl enable --now kiji-privacy-proxyFiles land under
/opt/kiji-privacy-proxy/and akiji-proxywrapper is placed onPATHat/usr/bin/kiji-proxy.Chrome Extension
Install from zip:
- Download
kiji-privacy-proxy-extension-1.6.2.zip - Unzip to a folder
- Open
chrome://extensions/ - Enable Developer mode
- Click Load unpacked and select the unzipped folder
Documentation
What's New
See the changelog below for details.
What's Changed
- chore: release 1.6.2 by @hanneshapke in https://github.com/dataiku/kiji-proxy/pull/602
- chore: version packages by @github-actions[bot] in https://github.com/dataiku/kiji-proxy/pull/603
Full Changelog: https://github.com/dataiku/kiji-proxy/compare/v1.6.1...v1.6.2
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Dataiku's Kiji Privacy Proxy
An intelligent privacy layer for AI APIs. Kiji automatically detects and masks personally identifiable information (PII) in requests to AI services, ensuring your sensitive data never leaves your control.
Built by 575 Lab - Dataiku's Open Source Office.
🎯 Why Kiji Privacy Proxy?
When using AI services like OpenAI or Anthropic, sensitive data in your prompts gets sent to external servers. Kiji solves this by:
- 🔒 Automatic PII Protection - ML-powered detection of 26 PII types (emails, SSNs, credit cards, etc.)
- 🎭 Seamless Masking - Replaces sensitive data with realistic dummy values before API calls
- 🔄 Transparent Restoration - Restores original data in responses so your app works normally
- 🎚️ Configurable Masking - Disable specific entity types or add your own regex rules for domain-specific PII (details)
- 🗂️ Review & Delete Mappings - Inspect every masked value and clear mappings from the app
- 🚀 Zero Code Changes - Works as a transparent proxy with automatic configuration (PAC) on macOS
- 🌐 Browser-Ready - Automatic proxy setup for Safari, Chrome - no environment variables needed
- 🧩 Chrome Extension - Inline PII detection for ChatGPT, Claude, Gemini, and other AI chat sites (details)
- 🏃 Fast Local Inference - ONNX-optimized model runs locally, no external API calls
- 💻 Easy to Use - Desktop app for macOS, standalone server for Linux
Use Cases:
- Protect customer data when using ChatGPT for customer support
- Sanitize logs before sending to AI for analysis
- Comply with privacy regulations (GDPR, HIPAA, CCPA)
- Prevent accidental data leaks in development/testing
⚡ Quick Start
For Users
macOS (Desktop App):
Homebrew (recommended):
brew install --cask dataiku/tap/kiji-privacy-proxy
Or download manually:
# Download the latest DMG from
# https://github.com/dataiku/kiji-proxy/releases
open Kiji-Privacy-Proxy-*.dmg
# Drag to Applications folder
Linux (Standalone Server):
Debian / Ubuntu (.deb):
wget https://github.com/dataiku/kiji-proxy/releases/download/vX.Y.Z/kiji-privacy-proxy_X.Y.Z_amd64.deb
sudo dpkg -i kiji-privacy-proxy_X.Y.Z_amd64.deb
# The systemd unit is installed but not enabled by default.
sudo systemctl enable --now kiji-privacy-proxy
# Or run in the foreground:
kiji-proxy
Other distros (tarball):
wget https://github.com/dataiku/kiji-proxy/releases/download/vX.Y.Z/kiji-privacy-proxy-X.Y.Z-linux-amd64.tar.gz
tar -xzf kiji-privacy-proxy-X.Y.Z-linux-amd64.tar.gz
cd kiji-privacy-proxy-X.Y.Z-linux-amd64
./run.sh
Unix socket listener (optional):
PROXY_UNIX_SOCKET_PATH="${XDG_RUNTIME_DIR:-/run/kiji-proxy}/kiji-proxy.sock" kiji-proxy
PROXY_UNIX_SOCKET_PATH behavior
When PROXY_UNIX_SOCKET_PATH is set, Kiji listens on the given Unix socket path instead of binding the main HTTP API to PROXY_PORT.
- If
PROXY_UNIX_SOCKET_PATHis unset, Kiji keeps the default TCP listener behavior and binds toPROXY_PORT. - If the socket file already exists, Kiji removes the stale socket before listening.
- The configured path is treated the same as the
UnixSocketPathconfig field. - The proxy creates the socket with permissions
0600. If broader access is required, the calling process or service wrapper should adjust permissions after startup.
Example:
PROXY_UNIX_SOCKET_PATH="${XDG_RUNTIME_DIR:-/run/kiji-proxy}/kiji-proxy.sock" kiji-proxy
Test It:
macOS (with automatic PAC):
# Start with sudo for automatic browser configuration
cd "/Applications/Kiji Privacy Proxy.app/Contents/Resources"
sudo ./kiji-proxy
# Open browser - requests to api.openai.com automatically go through proxy!
# No configuration needed for Safari/Chrome
# For CLI tools, set environment variables:
export OPENAI_API_KEY="sk-..."
export HTTP_PROXY=http://127.0.0.1:8081
export HTTPS_PROXY=http://127.0.0.1:8081
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "My email is [email protected]"}]
}'
Linux (manual proxy configuration):
# Set environment variables
export OPENAI_API_KEY="sk-..."
export HTTP_PROXY=http://127.0.0.1:8081
export HTTPS_PROXY=http://127.0.0.1:8081
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "My email is [email protected]"}]
}'
What happens:
# Check logs - "[email protected]" was masked before sending to OpenAI
# Response contains the original email (restored automatically)
For Developers
# Clone and setup
git clone https://github.com/dataiku/kiji-proxy.git
cd kiji-proxy
# Install dependencies
make electron-install
make setup-onnx
# Run with debugger (VSCode)
# Press F5
# Or run directly
make electron
See full documentation: docs/README.md
✨ Key Features
- 26 PII Types Detected - Email, phone, SSN, credit cards, addresses, URLs, and more
- ML-Powered - DistilBERT transformer model with ONNX Runtime (model, dataset)
- Configurable Masking - Disable entity types, tune sensitivity, or add custom regex patterns
- Mapping Review - Sortable view of masked values with per-entry and bulk delete
- Automatic Configuration - PAC (Proxy Auto-Config) for zero-setup browser integration on macOS
- Real-Time Processing - Sub-100ms latency for most requests
- Thread-Safe - Handles concurrent requests with isolated mappings
- Desktop UI - Native Electron app for macOS with visual request monitoring
- Production Ready - Systemd service, Docker support, comprehensive logging
- Privacy First - All PII processing happens locally; crash/error telemetry is opt-in and off by default, and never includes your prompts or unmasked text
📚 Documentation
Complete documentation is available in docs/README.md:
- Getting Started - Installation, configuration, first release
- Development Guide - Dev setup, debugging, workflows
- Building & Deployment - Building from source, production deployment
- Release Management - Versioning, changesets, CI/CD
- Advanced Topics - MITM proxy, model signing, troubleshooting
- Chrome Extension - Building, configuring, and publishing the PII Guard extension
- Customizing the PII Model - Training a model with your own entity types
- Masking Controls & Review - Disable entity types, custom regex, mapping review
- Coding Agents (Codex & Claude Code) - Route terminal coding agents through the proxy
Quick Links:
- Installation Guide
- Automatic Proxy Setup (PAC)
- VSCode Debugging
- Build for macOS
- Build for Linux
- Masking Controls - disable entities, custom regex, review mappings
- Coding Agents Setup - Codex & Claude Code via the proxy
🤗 HuggingFace Models & Data
The PII detection model and training data are published on HuggingFace:
| Resource | Link |
|---|---|
| Quantized ONNX model | DataikuNLP/kiji-pii-model-onnx |
| Trained SafeTensors model | DataikuNLP/kiji-pii-model |
| Training dataset | DataikuNLP/kiji-pii-training-data |
You can train your own model or fine-tune the existing one. See Customizing the PII Model for the full workflow.
🏗️ Architecture
┌─────────────────┐ ┌──────────────---───┐ ┌─────────────────┐
│ Your App/CLI │───►│ Kiji Privacy Proxy │───────►│ Provider API │
│ │ │ Forward :8080 │ │ (Masked Data) │
│ │◄───┤ Transparent :8081 │◄───────┤ │
│ Original Data │ │ Detect / Mask / │ │ OpenAI, │
│ │ │ Restore │ │ Anthropic, ... │
└─────────────────┘ └────────────────────┘ └─────────────────┘
What Happens:
- Your app sends request to Kiji Privacy Proxy
- Kiji detects PII using the ML model (plus any custom regex rules) for the entity types you've enabled
- PII is replaced with dummy data
- Request forwarded to the provider (OpenAI, Anthropic, Gemini, Mistral) with masked data
- Response received and PII restored
- Original-looking response returned to your app
You control which entity types are masked and can review or delete recorded mappings from the app — see Masking Controls & Review.
🤝 Contributing
We welcome contributions! Here's how to help:
- Report Issues - Found a bug? Open an issue
- Submit PRs - See docs/02-development-guide.md for dev setup
- Improve Docs - Documentation PRs are always welcome
- Share Feedback - Start a discussion
- Join our Slack - Slack Community
Quick Contribution Guide:
# 1. Fork and clone
git clone https://github.com/YOUR-USERNAME/kiji-proxy.git
# 2. Create feature branch
git checkout -b feature/my-feature
# 3. Make changes and add changeset
cd src/frontend
npm run changeset
# 4. Test
make test-all
make check
# 5. Submit PR
A few things to know before your first PR:
- Sign the CLA — our CLA Assistant bot will comment on your first PR with a one-click link to sign Dataiku's Individual CLA. Required before we can merge.
- Add yourself to CONTRIBUTORS.md once your PR is merged — every kind of contribution counts (code, docs, triage, training data).
See CONTRIBUTING.md for detailed guidelines.
💖 Support the Project
If you find Kiji useful, here's how you can support its development:
⭐ Star the Repository
Click the ⭐ button at the top of this page - it helps others discover the project!
🐛 Report Issues & Request Features
Found a bug or have an idea? Open an issue
📝 Contribute Code or Documentation
Pull requests are welcome! See CONTRIBUTING.md for guidelines.
💬 Spread the Word
- Share on Twitter/LinkedIn
- Write a blog post about your experience
- Present at meetups/conferences
🎓 Improve the ML Model
- Contribute training data samples
- Improve PII detection accuracy
- Add support for new PII types
📚 Write Tutorials
- Create video tutorials
- Write integration guides
- Share use cases and examples
Every contribution, big or small, makes a difference!
🧪 Development
Prerequisites
- Go 1.25+ with CGO enabled
- Node.js 24.x (24.11.0 or newer)
- Python 3.13+
- Rust toolchain
Quick Setup
# Install dependencies
make electron-install
# Run with VSCode debugger (F5)
# Or run directly
make electron
Available Commands
make help # Show all commands
make electron # Build and run Electron app
make build-dmg # Build macOS DMG
make build-linux # Build Linux tarball
make test-all # Run all tests
make check # Code quality checks
See docs/02-development-guide.md for detailed development guide.
📦 Releases
Download the latest release from GitHub Releases:
- macOS:
Kiji-Privacy-Proxy-{version}.dmg(~400MB) - Linux (tarball):
kiji-privacy-proxy-{version}-linux-amd64.tar.gz(~150MB) - Linux (Debian/Ubuntu):
kiji-privacy-proxy_{version}_amd64.deb
Automated Builds: CI/CD builds both platforms in parallel on every release tag.
See docs/04-release-management.md for release process.
🔒 Security
Reporting Vulnerabilities:
Do not open public issues for security vulnerabilities.
Email: [email protected] (or contact maintainers privately)
Security Features:
- All processing happens locally
- No external API calls for PII detection
- Optional encrypted storage for mappings
- MITM certificate for local use only
See docs/05-advanced-topics.md#security-best-practices for security guidelines.
📄 License
Copyright (c) 2026 Dataiku SAS
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
🚀 Contributors
🤝 Project Partners
Kiji is built in collaboration with these partners (read the announcement):
- Outerbounds — ML infrastructure: Metaflow orchestrates the model training pipelines
- HumanSignal — Data labeling: Label Studio powers dataset annotation and refinement
- Doubleword — Inference platform used to generate the synthetic training data
🙏 Acknowledgments
- ONNX Runtime - Microsoft's cross-platform ML inference engine
- HuggingFace - DistilBERT model and tokenizers
- Electron - Cross-platform desktop framework
- Go Community - Excellent libraries and tools