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.2
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.2.tar.gz | 65.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| veil_proxy-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 142.1 kB
Release files / veil_proxy-0.1.2.tar.gz
| Download URL | veil_proxy-0.1.2.tar.gz |
|---|---|
| Size | 65.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
41c113b13ba6b408837fb563701c89e872096a95d88ee7b82e9ca574ae2b65d6
|
|
BLAKE2b-256 checksum How to use checksums |
6761be7b303b49c0319b0bc3af41498d75ee69f826c1f4e3ff8c9305edfbaf36
|
| 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.2-py3-none-any.whl
| Download URL | veil_proxy-0.1.2-py3-none-any.whl |
|---|---|
| Size | 76.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b3e78527735c580e6c19a07929aefcd6fd6fffd668c88af02ebd2cf2b2f5a28
|
|
BLAKE2b-256 checksum How to use checksums |
d363aea23bd8826fa7f3d68c6d32e28114b9f37a6024d7737519483ce58046e7
|
| 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.2
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.