Complete documentation for Kiji Privacy Proxy - a transparent MITM proxy with ML-powered PII detection and masking.
Kiji Privacy Proxy is an intelligent privacy layer for API traffic. It automatically detects and masks personally identifiable information (PII) in requests to AI services, ensuring sensitive data never leaves your control.
Key Features:
- 🔒 Transparent HTTPS Proxy - MITM interception of encrypted traffic
- 🌐 Automatic Proxy Configuration (PAC) - No manual setup for browsers on macOS
- 🤖 ML-Powered PII Detection - ONNX-based model for accurate detection
- 🎭 Automatic Masking & Restoration - Seamless data protection
- 🎚️ Configurable Masking - Disable entity types or add custom regex patterns
- 🗂️ Mapping Review - Inspect and delete recorded masked values
- 💻 Desktop App (macOS) - Electron-based UI for easy management
- 🐧 API Server (Linux) - Standalone backend for server deployments
- 📊 Request Logging - Complete audit trail with masked data
Learn how to install and configure Dataiku's Kiji Privacy Proxy, and create your first release.
Topics:
- Installation (macOS DMG & Linux tarball)
- Platform-specific setup
- Certificate installation for HTTPS
- Configuration basics
- First run and testing
- Quick start release guide
Start here if you're: New to Kiji Privacy Proxy or want to get up and running quickly.
Set up your development environment and learn development workflows.
Topics:
- Development setup (Go, Rust, Node.js, ONNX Runtime)
- VSCode debugging configuration
- Electron development
- Version handling in development mode
- Development workflows (debugger, hot reload, CLI)
- Testing and code quality
Start here if you're: Contributing to the project or developing new features.
Build Kiji Privacy Proxy from source for macOS and Linux platforms.
Topics:
- Build requirements and architecture
- macOS DMG build process
- Linux tarball build process
- Build flags and optimization
- Production deployment (systemd, Docker)
- Build troubleshooting
Start here if you're: Building from source or deploying to production.
Understand the release process, versioning, and CI/CD workflows.
Topics:
- Changesets workflow for version management
- Creating releases (automatic & manual)
- CI/CD workflows (macOS & Linux parallel builds)
- Release strategy and best practices
- Version management and injection
- Release troubleshooting
Start here if you're: Managing releases or maintaining the project.
Deep dive into advanced features, security, and troubleshooting.
Topics:
- Transparent proxy & MITM architecture
- Certificate management and trust
- Model signing and verification
- Comprehensive build troubleshooting
- Performance optimization
- Security best practices
Start here if you're: Configuring advanced features or troubleshooting issues.
Build, configure, and publish the Kiji PII Guard Chrome extension that intercepts AI chat input in the browser.
Topics:
- Local development and loading the unpacked extension
- Extension architecture and backend integration
- Switching to optional host permissions for the Web Store
- Preparing store listing assets and privacy policy
- Submitting and updating a published extension
- CI/CD integration and automating Web Store uploads
Start here if you're: Working on the Chrome extension or shipping it to the Chrome Web Store.
Train a custom PII detection model with your own entity types, data, and domain-specific needs.
Topics:
- Generating synthetic training data (Doubleword or OpenAI)
- Using HuggingFace datasets (
dataiku/kiji-pii-training-data) - Customizing entity types in
label_utils.py - Reviewing and correcting data in Label Studio
- Running the Metaflow training pipeline
- Loading a custom model in the desktop app
Start here if you're: Adding new PII entity types, retraining the model, or adapting Kiji to your domain.
Control what gets masked and review what already has been, from the desktop app.
Topics:
- Tuning PII detection sensitivity
- Disabling specific entity types so they pass through unmasked
- Adding custom regex patterns for domain-specific PII
- Reviewing, sorting, and deleting masked mappings
- Driving the same controls via config file and HTTP API (standalone)
Start here if you're: Deciding which data to mask, adding custom detection rules, or auditing what Kiji has masked.
Route terminal coding agents through the proxy so PII in prompts, code, and tool calls is masked before it reaches the model and restored in replies.
Topics:
- How agents are intercepted (hosts, masking, streaming restore)
- Claude Code setup (
HTTP_PROXY/HTTPS_PROXY,NODE_EXTRA_CA_CERTS,settings.json) - Codex setup (rustls CA trust via
CODEX_CA_CERTIFICATE, API-key vs ChatGPT-login) - A shared shell snippet for both agents
- Verifying interception and troubleshooting TLS/proxy issues
- Forward-proxy alternative without CA trust
Start here if you're: Using OpenAI Codex or Claude Code and want their traffic masked by Kiji.
Localize the desktop/renderer UI with react-i18next. English is the base language; French, Japanese, and Korean are the translations.
Topics:
- How i18next is wired (namespaces, detection, persistence)
- Using
t()and<Trans>, interpolation, and pluralization - Per-locale plural categories (French
many, Japanese/Koreanother-only) - Language selector and the Electron native-menu sync
- Adding/changing strings and the parity + lint tooling
Start here if you're: Adding UI strings, adding a language, or reviewing translations.
- Generating Training Data
- Reviewing Data in Label Studio
- Training with Metaflow
- Loading a Custom Model
These documents consolidate and supersede the following original files:
- ✅
QUICKSTART-RELEASE.md→ Integrated into Chapter 1 - ✅
MODEL_SIGNING.md→ Integrated into Chapter 5 - ✅
VERSION_DEVELOPMENT.md→ Integrated into Chapter 2 - ✅
BUILD.md→ Integrated into Chapter 3 - ✅
RELEASE_WORKFLOWS.md→ Integrated into Chapter 4 - ✅
TRANSPARENT_PROXY.md→ Integrated into Chapter 5 - ✅
BUILD_TROUBLESHOOTING.md→ Integrated into Chapter 5 - ✅
DEVELOPMENT.md→ Integrated into Chapter 2
Original files are preserved in the docs/ directory for reference, but the new chapter-based structure is now the authoritative documentation.
When updating documentation:
- Follow the chapter structure - Place content in the appropriate chapter
- Update the README - Add links to new sections
- Cross-reference - Link between chapters when relevant
- Keep it current - Update when code changes
- Be concise - Clear, actionable content over verbose explanations
- Headings: Use sentence case
- Code blocks: Always specify language for syntax highlighting
- Commands: Include platform-specific variations when needed
- Examples: Provide working, tested examples
- Links: Use relative paths for internal docs
- Troubleshooting: Include problem, cause, and solution
- Installation Issues: See Getting Started
- Configuration Help: See Advanced Topics
- Bug Reports: GitHub Issues
- Questions: GitHub Discussions
- Development Setup: See Development Guide
- Build Issues: See Building & Deployment
- Contributing: See CONTRIBUTING.md (if available)
- Release Help: See Release Management
Do not open public issues for security vulnerabilities.
Email: opensource@dataiku.com (or contact maintainers privately)
See LICENSE file in the repository root.
- Repository: https://github.com/dataiku/kiji-proxy
- Issues: https://github.com/dataiku/kiji-proxy/issues
- Releases: https://github.com/dataiku/kiji-proxy/releases
- Discussions: https://github.com/dataiku/kiji-proxy/discussions
Documentation Version: 1.0.0
Last Updated: 2026-06-06
Maintained By: 575 Lab, Dataiku's Open Source Office