Checking.
Reading your ledger…
0
Breaches stopped
0
Open alerts
—
Clean rate
—
Time to verdict
Evidence boundary
Capture coverage.
Loading observed SDK continuity…
—
observed capture
of client-reported events were observed by Foxy.
—
Events observed
—
SDK clients
—
Missing events
—
No client identity
Events captured per day · last 90 days
This measures events that reached Foxy. It cannot detect an AI call that bypasses the SDK, and it never reads raw prompts or responses.
Needs your attention
open ledger
Active alerts
see all
Clean rate—
Time to verdict—
Quick actions
Policy rules
configure the AI Judge
Export
compliance passport pdf
API keys
manage tenants
Audit ledger
tamper-proof log
—
Total logged
0
Breaches prevented
0
Active alerts
—
Clean rate
Breaches over time · by risk band, High at the base
Recent high-risk
| # | Policy | Agent | Risk | When |
|---|---|---|---|---|
Activity — last 7 days
Breaches by agent
Average risk
—
avg breach risk
Top flagged policies
Usage — last 90 days
Grading status
Per-client continuity
| Client | Events | Client seq | Status |
|---|---|---|---|
| No identified SDK clients yet. | |||
Checking the chain…
Recomputing every record from the genesis hash.
—
Records
—
Breaches
—
Clean rate
—
Pending grading
Volume · logged / day, last 90
Verdict mix
| tenant | hash | verdict | time |
|---|---|---|---|
| loading… | |||
—
Verify a single record
the hash goes up, the prompt never does
Public-chain anchors
loading receipts…
Content safeguards
Block PII — names, SSNs, emails
A local PII signal from the SDK is enough on its own: the deterministic rule marks the interaction a breach before the judge is asked.
high severityFlag prompt injections
Tells the judge to flag repeated hashes in one session (replay) and token spikes over 10x the average for that policy tag.
high severityRegulated data mode — HIPAA / financial
Any interaction tagged pci, sox, hipaa, gdpr or eu_ai_act is risk-scored 60 or higher unless it is clearly compliant.
medium severityAI Judge — provider & keys
Choose which model grades your events and whose API key pays for those model calls. The Judge is content-blind either way — it receives hashes, token counts and policy tags, never your prompts or responses.
judge provider
whose API key pays for grading
Gemini API key
Stored encrypted; never shown again and never included in exports or the audit chain.
OpenAI API key
Stored encrypted; never shown again and never included in exports or the audit chain.
Report configuration
only verdicts and hashes are included — raw prompts and responses are never exported
date range
from
to
export type
The passport is a self-contained PDF with content-blind hash-chain and capture-coverage evidence. For a live, no-login proof page, mint a public verify link in Settings.
Compliance passport
FOXY
—
—
records—
period—
Chain metadata
records—
chain integrity100% — no gaps
chain head—
org id—
anchor SLA—
Export history
A record of every export you've generated. The server keeps no file archive — re-generate above to download again.
| Type | Range | By | When |
|---|---|---|---|
| No exports yet. | |||
—
Active keys
—
Total keys
—
Key limit
—
Last SDK activity
Your API keys
each key maps to one developer or service · keys authenticate SDK writes via POST /v1/logs/batch · a key's secret is shown once at creation
| Name | Key | Status | Last used | |
|---|---|---|---|---|
Got a key? The install-and-decorate steps live in
Settings → Connect the SDK.
—
Credits used
—
Credits included
—
Remaining
—
Tokens · 30d
Daily usage — last 30 days
Quota headroom—
| day | logs | tokens | breaches |
|---|---|---|---|
| loading… | |||
Current plan
plan—
status—
included / month—
Invoice history
Bars show invoice totals only — Foxy stores no per-line-item breakdown.
| date | amount | status | period |
|---|---|---|---|
| loading… | |||
Credits and anchor cadence are your plan's contracted limits. The amount is confirmed at checkout — Foxy does not hold a copy of the price.
Payments are handled by Paddle, our merchant of record. Your card statement will show PADDLE.NET, not Foxy Audit.
Payments are handled by Paddle, our merchant of record. Your card statement will show PADDLE.NET, not Foxy Audit.
Your account
The things you came here to change
display name (your avatar + greeting)
email
role
org id
Profile photo
PNG, JPEG or WebP.
Change password
Two-factor authentication
Require an emailed one-time code at sign-in for your own account.
Devices & sessions
Active devices signed in to your account · revoke any you don't recognise.
Recent sign-ins
Sign-in attempts on your account, successful and failed. A sign-in you do not recognise is worth acting on — revoke the device above and change your password.
Breach alerts
immediate notice on every breach verdict
Weekly digest
summary of activity every Monday
Key rotation reminders
nudge after 90 days unrotated
Team & access
Who can get into this workspace
Access control
Restrict dashboard access to specific IPs / CIDRs (comma-separated). Blank = allow all. Include your own IP or you'll lock yourself out.
Policy & grading
Read often, changed rarely
Judge sensitivity
judge sensitivity
—
confidence threshold
—
Before the call — what the SDK does
Applies before a prompt reaches a model, on your own machines, inside
the SDK. This is the only setting on this page that can stop a call from happening.
workspace SDK enforcement
—
How this combines with your code
Enforcement really lives in your code — the mode=
argument on @foxy.audit(). This setting
is resolved against it on every call, and it can only ever do three things:
- Tighten to block. Set Block here and every decorated call blocks, whatever the code says.
- Fill a gap. Where the code passes no mode= and no FOXY_MODE, this supplies the default.
- Nothing else. It can never weaken what the code asked for — code that says block keeps blocking — and it can never introduce redaction into code that did not ask for it. Blocking raises an error a developer can see; redaction silently rewrites the prompt, and nobody finds out.
A deployment can opt out entirely with
FOXY_ORG_POLICY=off, which only ever
lands on what the code already said. Changes reach running processes within five
minutes.
After grading — what happens to a verdict
Applies after the AI judge has graded an interaction that already
happened. It does not stop anything from reaching a model.
verdict handling
How loudly a breach is treated once the judge has already found
one — never whether it happens.
- Urgent — a breach emails you unless you chose no notification below.
- Notify — a breach emails you only if you chose immediate alert below.
- Silent — a breach never emails you. It is still recorded: it appears in Alerts, in your ledger and in your export.
To stop a prompt reaching a model at all, use the
SDK enforcement setting below.
Where breach alerts go
notification on breach
alert email (blank = workspace contact)
webhook URL (optional — POSTed on each breach)
Connect
Set up once per surface
Connect the SDK
Wrap any AI call with the decorator — only SHA-256 hashes + metadata leave your machine, never the prompt or response text.
1 · install
pip install foxy-audit
2 · set your key (mint one under Access → “+ new key”)
export FOXY_API_KEY=foxy_sk_your_key_here
3 · decorate your model call
from foxy_audit import FoxyClient
foxy = FoxyClient() # reads FOXY_API_KEY
@foxy.audit(policy="chat", agent="gpt-4o")
def ask(prompt):
return llm(prompt)
foxy = FoxyClient() # reads FOXY_API_KEY
@foxy.audit(policy="chat", agent="gpt-4o")
def ask(prompt):
return llm(prompt)
Desktop app
Run the Foxy compliance-officer fox on your machine — it reacts to live audit events and hosts the chat copilot. Signs you in automatically from this workspace.
Download for Windows
Linux (AppImage)
Early build — Windows may show a SmartScreen notice (More info → Run anyway); on Linux
chmod +x the AppImage.
Data & privacy
Kept last on purpose
Data & privacy
Danger zone
Help & support
Not a setting — a way out of the page
Help & support
Questions, a bug, or help getting set up? We read every message.
Email support
Contact form