veil
Privacy middleware for AI coding agents. The model sees consistent pseudonyms
(user_ab12@example.test, First_Ab12 Last_Ab12); your machine keeps the real values,
and commands the agent runs locally get the real values back (shell- and SQL-safe).
pip install "veil-proxy[postgres]" # extras: postgres, mysql, mongo, redis, bedrock, ner, all
# (installs the `veil` and `veil-hook` commands; import name `veil`)
veil init ~/code/myapp # seed from .env DB URLs, SQLite, fixtures; wire Claude Code
veil service install # proxy as a LaunchAgent (macOS) / systemd user unit (Linux)
veil status ~/code/myapp
Evidence from our own test runs (details and the harness to re-run them are on GitHub: https://github.com/lemonadesaltbagel/veil):
- 39 requests from real agent sessions against a live model leaked 0 real values (checked with a scanner that also decodes escaped and transformed text), and every session still found the bug.
- Seeding from your own data lets 1.8% of names and contact details through, versus 80.4% for pattern matching (1,000 labelled records).
- 20/20 one-command bypass transforms are contained, and restored values are escaped for their shell/SQL context (35/35 injection tests).
- Prompt caching keeps working (74–89% cache hits); about 19 ms overhead per request at 40k seeded values.
One local proxy (default 127.0.0.1:8787) serves every client, routed by path:
Anthropic Messages (Claude Code, Agent SDK), Amazon Bedrock InvokeModel (binary eventstream),
Google Vertex rawPredict, OpenAI Chat Completions (Aider, Continue, OpenAI SDK) and
OpenAI Responses (Codex CLI).
Teams: veil team export | join shares the pseudonym secret (never the vault key);
veil team managed-settings writes a Claude Code managed-settings.d/ drop-in that pins the
proxy with allowedProviders: ["customEndpoint"].
Optional NER for free text: pip install "veil-proxy[ner]" then veil ner-model fetch.
Status: alpha. Keys: macOS Keychain / Linux Secret Service (secret-tool), or VEIL_VAULT_KEY /
VEIL_TOKEN_SECRET (base64). State: ~/.veil (encrypted vault).
Metadata
Release files for veil-proxy 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| veil_proxy-0.1.1.tar.gz | 63.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| veil_proxy-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 140.7 kB
Release files / veil_proxy-0.1.1.tar.gz
| Download URL | veil_proxy-0.1.1.tar.gz |
|---|---|
| Size | 63.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cc75e36d84796aab5e3c1d1f8496307fc551e6d0a32f1d5f09647adc4abd3af6
|
|
BLAKE2b-256 checksum How to use checksums |
836bea09f0b198816f5e48709e5f431257e58cb01f834782b77661bbfadb27aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / veil_proxy-0.1.1-py3-none-any.whl
| Download URL | veil_proxy-0.1.1-py3-none-any.whl |
|---|---|
| Size | 77.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
064dc04bc7f94dd374057d0c00e327442b840d17056bcc65b2068fb36a4a07a9
|
|
BLAKE2b-256 checksum How to use checksums |
bc66e6ec6c2a8e4a7a9c2b0b9538dc3ed4c12f1e328243b2d37fb900b56feb16
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for veil-proxy 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.