Skip to main content
Browser preview with fictional data

See how each masking mode changes a request

This preview runs in your browser. It does not contact a model or send data anywhere. It demonstrates the regex and synthetic-value paths with fictional examples. The server can also use an optional local ONNX model and real AES-256-GCM encryption. Choose Agent tool call to see how string values in JSON are handled.

Fictional values with a similar format.

You type this
Sent to LLM
Waiting for you to stop typing…
Received from LLM (rehydrated)
The rehydrated reply will appear here.
Type a prompt, or load an example below, to begin
Client setup

Change the client address after configuring the proxy

OpenAI-compatible clients can keep the same request format. Set base_url to the proxy address and configure provider and client keys on the server.

OpenAI-compatible client setup
# Before - talking straight to the provider
$ curl https://api.openai.com/v1/chat/completions \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{"model":"gpt-4o","messages":[{"role":"user","content":"Update record for John Doe, SSN 456-12-7890"}]}'

# After - point the same SDK at LLM-Shield-Proxy. Nothing else changes.
$ curl https://shield.internal.acme.corp/v1/chat/completions \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{"model":"gpt-4o","messages":[{"role":"user","content":"Update record for John Doe, SSN 456-12-7890"}]}'

→ the LLM only ever sees: "Update record for Michael Ito, SSN 839-14-2207"
→ your agent still receives: "Update record for John Doe, SSN 456-12-7890"