How it works
Three lines of code. Zero trust required.
Wrap one function with the SDK. Each captured interaction becomes a local commitment and chained audit record — then you can inspect it in the desktop app and export evidence an auditor can verify.
$ pip install foxy-audit
from foxy_audit import audit
@audit(policy="soc2") # the only line you add
def ask_model(prompt):
return llm.generate(prompt) # your code, unchanged
That decorator is the only change to your app. In default mode, capture is queued locally in the background; regulated services can enable audit_required=True to wait for a durable receipt and fail closed.
01
Hashed on your machine
The moment your wrapped function returns, Foxy creates customer-keyed HMAC-SHA-256 commitments of the prompt and response, then discards the raw text. Only commitments and selected operational metadata leave your servers.
02
Graded against your policy
An optional content-blind judge evaluates recorded metadata against the policy you tagged. Its verdict is a review signal — not a HIPAA or SOC 2 certification — and unavailable judge results remain visibly unknown. You choose the model (Gemini, OpenAI, or both): Pro and Free bring their own provider key, Premium can use their own or Foxy's managed keys. More on the judge →
03
Sealed into a hash chain
Each record's hash folds in the one before it — and which model produced it. Edit any past entry and every hash after it stops matching. Tampering isn't hidden; it's mathematically obvious.
04
Watch live, prove anywhere
The desktop app reacts when captured records and policy results arrive. The dashboard shows the audit trail and exports a compliance passport your auditor can re-verify; it supports evidence mapping and is not a certification.
See it on your own stack.
Book a walkthrough and we'll wire the SDK into a real call live, then verify the chain in front of you.
Book a demo
Foxy Audit