Everything that decides what Locke screens on this device lives here, on four tabs: which AI apps and sites it checks, which kinds of data it masks, how strict it is about names, and what happens to attached files. Under every tab you can export your choices, import them, or test them on sample text.
Available toFreeTeams Admin
On a Teams plan this page works differently. A member has no Controls page — a read-only Team policy page takes its place — and an admin's own device follows the team's policy. See On a Teams plan below.
The four Controls tabs
Tab
Answers
Change it when
Protected Surfaces
Which AI apps and websites does Locke screen, and what happens with AI services it doesn't know?
You use an AI service Locke doesn't list, or want different handling for one it does.
Sensitive data
Which kinds of value are masked, and which go through in the clear?
A type gets in the way of your work, or one particular term keeps being masked when it shouldn't be.
Strictness and Modalities
How sure must Locke be that a word is a name, a place or an organization before it masks it?
Ordinary words are being masked as names, or names are slipping through.
Attachments
What happens to a file you attach to an AI request?
You want images or audio blocked instead of sent unscreened, or text files blocked outright.
Changes take effect as you make them; there is no Save button. Beside the tabs, Saved. confirms it. Your choices are kept on this device and synced to your Sonomos account. A How these controls work disclosure under the tabs sums up the whole page in one place.
Protected Surfaces
A surface is one AI service Locke knows — a website you use in a browser, or the endpoint a desktop app or command-line tool sends prompts to. This list manages AI-service screening. When desktop capture is active, discovery can also decrypt and inspect initial requests to eligible unknown HTTPS destinations that reach the local proxy, including services later classified as non-AI. AI-service controls apply after classification; changing them does not by itself disable initial discovery inspection. See the Locke Privacy Policy for discovery limits and bypasses.
Controls
Choose which apps Locke checks and which data it masks on this device. · Learn more
Saved.
How these controls work
Locke scans at its built-in level; nothing on this page changes that.
Protected Surfaces. Switching a service off now stops Locke screening it; the status card on that tab reports what each component actually applied. Sites listed as recognised but not screened are there so you know Locke recognises them, not because it protects them. Sites listed as not screened — unsupported transport send chat over a WebSocket, which Locke cannot read, so nothing typed there is screened and they have no switch. The same limit applies to voice and realtime modes on services that are otherwise screened, ChatGPT's voice mode included: the typed chat is screened, the realtime session is not.
Unrecognized AI services and exceptions. What Locke does with an AI service its list does not include, and with hosts you name. Each shows what Locke's proxy reports it is actually enforcing — a saved setting is never shown as in force.
Sensitive data. Every type is screened on every scan. Switching a data type off does not stop Locke finding it — it sends that value through in the clear on purpose, through the policy file the engine re-reads every second; the card on that tab reports what the file says. A type marked not enforced has no engine rule, so its switch does nothing.
Strictness and Modalities. How sure Locke must be before it masks a name, place or organization in text, and which kinds of content are screened. Only the Text modality can be set in this release; Image and File are coming in V1.X and Audio later, and are shown but cannot be switched on. Files Locke can read are still screened like typed text. Images and audio are sent unscreened unless blocked (File types, under Attachments).
Attachments. That tab is a record of what the engine does with a file, not a setting.
Windows captureEvery capture setting Locke can check on this machine is in place · open a new terminal
That is what Locke can verify from this machine's settings. It is not a report of traffic actually being screened — see the note below about programs that were already running.
Programs that were already running cannot see this. Windows only gives HTTPS_PROXY to programs started after it was saved, so a terminal that was open when Locke was installed — or whose Windows Terminal window was — never received it, and a command-line tool run in that window goes straight out to the internet while this card still reads as armed. Close every terminal window you had open, open a new one, and run your tool again.
Windows sends traffic to Locke
The system proxy is set to 127.0.0.1:8890 and switched on.
Yes
No other proxy script is overriding that
No automatic proxy-configuration script is set, so the proxy setting above is the one Windows follows.
Yes
Locke is listening for that traffic
Something is accepting connections on 127.0.0.1:8890.
Yes
Locke's certificate is trusted
The certificate Locke presents is in your Windows trusted-root store.
Yes
Command-line tools are pointed at Locke
HTTPS_PROXY is saved for your account as http://127.0.0.1:8890, and HTTP_PROXY as http://127.0.0.1:8890.
Yes
Node-based tools trust Locke's certificate
NODE_EXTRA_CA_CERTS is saved for your account as C:\Users\zbrenner\AppData\Roaming\Locke\ca\locke-ca.pem.
Yes
Python and other tools trust Locke's certificate
SSL_CERT_FILE and REQUESTS_CA_BUNDLE point at Locke's certificate bundle (148 certificates): the usual trusted certificates plus Locke's own, so other sites keep working.
Yes
Locke screens programs on Windows that honour the system proxy setting. A program that ignores it — one that dials out directly or pins its own certificates — is not screened here, and this card cannot see it.
This is a report of what Locke can read from this machine's settings. Nothing on this card turns capture on or off.
AI apps & APIsScreened — every built-in surface is currently screened, with no exceptions.
Locke screens the surfaces listed here. Anything not listed is never decrypted and never screened.
AI websitesScreened — every listed AI website is screened, with no exceptions.
The Locke Extension sends requests from every website to Locke's classifier and screens the ones that look like AI. The AI websites listed here are always screened. A listed website you turn off is never screened.
Not covered yet: Microsoft Copilot browser chat, AI tools that send prompts in a binary format (such as Cursor and Windsurf), chat over live connections (WebSocket) and voice modes are not screened, and AI sites in a browser without the Locke extension are not screened. We plan to add this in a future release.
Known AI services
AI websites
Screened by the Locke browser extension, page-side in the browser.
aistudio.google.com
assistant.kagi.com
chat.deepseek.com
chat.mistral.ai
chat.openai.com
chat.qwen.ai
claude.com
console.anthropic.com
console.x.ai
duck.ai
gemini.google.com
grok.com
meta.ai
perplexity.ai
platform.openai.com
Not screened — unsupported transport · 1
Locke screens what an app puts in a request body. These sites send chat over a connection Locke cannot read, so nothing you type there is screened, and there is nothing to switch off.
The same limit applies to voice and realtime modes on services that are otherwise screened, ChatGPT's voice mode included: the typed chat is screened, the realtime session is not.
copilot.microsoft.comCopilot's browser chat runs over a live connection (a WebSocket) that Locke cannot read yet.
Recognised, not screened yet · 6
Locke recognises these sites but does not screen them: a search travels in the page address instead, which Locke does not see — so nothing you type there is screened, and there is nothing to switch off.
duckduckgo.com
kagi.com
search.brave.com
www.bing.com
www.google.com
you.com
AI apps
Screened by Locke's proxy — in browsers, CLIs and the native desktop app.
api.ai.jetbrains.com.cn
api.anthropic.com
api.app.prod.grazie.aws.intellij.net
api.jetbrains.ai
api.openai.com
api.perplexity.ai
chatgpt.com
claude.ai
copilot-proxy.githubusercontent.com
generativelanguage.googleapis.com
githubcopilot.com
www.perplexity.ai
On this device
AI applications and terminal tools Locke found on this computer. The check is made locally and read-only, and nothing about it is sent anywhere.
Desktop AI applications
ChatGPT · Found on this device · Protected
Claude · Found on this device · Protected
Terminal AI tools
Claude Code · Found on this device · Protected
OpenAI Codex CLI · Not found on this device · Protected
Gemini CLI · Not found on this device · Protected
GitHub Copilot CLI · Not found on this device · Protected
A switch turns screening of the endpoints that program sends prompts to on or off. Programs that share an endpoint change together: Claude and Claude Code both use api.anthropic.com, ChatGPT and OpenAI Codex CLI both use api.openai.com. A program installed somewhere Locke does not look is not listed above, but the same endpoints stay screened for it.
Unrecognized AI services
AI services Locke's list does not include, recognised by how they behave and what they send. While desktop discovery is active, eligible HTTPS traffic to unknown services that reaches Locke's local proxy may be decrypted and inspected on this device before it is classified as AI, including non-AI traffic. Coverage depends on your platform, app and bypass rules; this does not mean all browser traffic is inspected. Local discovery records include hostnames, process details and request-structure metadata.
The controls below apply to detected AI requests. They do not turn off initial discovery or its local inspection.
In force: Locke's proxy is enforcing these settings.
Requests Locke is confident are AI. Locke screens it before it is sent, as it does for known AI services.
Requests Locke suspects are AI but is not sure. Locke holds it and asks you: screen and send, send once without screening, or cancel.
Notify me when Locke suspects an unrecognized AI service
A notification each time, whatever the setting above does with the request.
Explicit exceptions
Hosts you name, with what Locke should do with them. An exception covers the host and its subdomains and takes precedence over Locke's own recognition. Allow and Block apply to every connection to the host. Screen and Ask apply once Locke detects AI traffic to it — Locke never opens a connection to inspection just because a rule names the host.
notebooklm.google.com
In force
The top of the tab. Further down: On this device, Unrecognized AI services and Explicit exceptions.
1Status cards. What is actually in force, as reported by the parts of Locke that do the screening: AI apps & APIs (Locke's proxy) and AI websites (the browser extension). On Windows, a Windows capture card first checks that the machine sends its traffic to Locke at all. A service you switch off is listed on its card.
2Not covered yet. One line naming what this release doesn't screen. The details are on Known limitations.
3Known AI services, in two lists. Each host has a switch and a remove button (×).
Known AI services
The two lists of known AI services
List
What screens it
Examples
AI websites
The Locke browser extension, page-side in the browser. Until the extension connects, this list is replaced by Browser Protection required and a link to install it.
gemini.google.com, perplexity.ai, chat.mistral.ai
AI apps
Locke's proxy — for browsers, command-line tools and the native desktop apps.
Under AI websites, two collapsible lists name sites Locke recognizes but can't screen, so they have no switch. Not screened — unsupported transport holds sites that send chat over a live connection Locke can't read, such as Microsoft Copilot browser chat at copilot.microsoft.com; voice and realtime modes on otherwise-screened services are in the same position. Recognised, not screened yet holds search engines, where a search travels in the page address rather than a request Locke sees.
What you can do with a known AI service
Action
Effect
Switch it off
Locke stops screening that service on this device. It stays on the list, so you can switch it back on, and the status card at the top lists it as turned off. Initial discovery inspection is separate, as described above.
Remove it (×)
Takes the service off the list. Locke stops screening it, exactly as when it is switched off.
On this device
AI applications and terminal tools Locke found on this computer. The check is made locally and read-only, and nothing about it is sent anywhere. Two lists: Desktop AI applications (ChatGPT, Claude, Perplexity) and Terminal AI tools (Claude Code, OpenAI Codex CLI, Gemini CLI, GitHub Copilot CLI). Each row says whether the program was found on this device and whether it is Protected, Partly protected or Not protected, with a switch.
If Locke finds a program whose endpoints are switched off, a Found, but not protected yet box appears at the top of the card with a Begin protecting button beside each one. That button — or the row's switch — turns on screening of the endpoints the program sends prompts to. Programs that share an endpoint change together: Claude and Claude Code both use api.anthropic.com, and ChatGPT and OpenAI Codex CLI both use api.openai.com. A program installed somewhere Locke doesn't look isn't listed, but the same endpoints stay screened for it.
Unrecognized AI services
What Locke does with an AI service its list doesn't include, recognized by how it behaves and what it sends. Two settings, one for Likely AI services (requests Locke is confident are AI; default Screen) and one for Possible AI services (requests Locke suspects are AI but isn't sure of; default Ask me). These settings apply to detected AI requests; they don't turn off initial discovery or its local inspection.
Actions for unrecognized AI services and explicit exceptions
Action
What Locke does
Screen
Screens the request before it is sent, as it does for known AI services.
Ask me
Holds the request and asks you: screen and send, send once without screening, or cancel.
Block
Stops the request from being sent.
Allow
Sends the request without screening.
Notify me when Locke suspects an unrecognized AI service (off by default) gives you a notification each time, whatever the setting does with the request. A line at the top of the card says whether Locke's proxy is enforcing these settings — a saved setting is never shown as in force until the proxy confirms it.
Explicit exceptions
Hosts you name, each with what Locke should do with it: Screen, Ask me, Block or Allow (trusted). An exception covers the host and its subdomains and takes precedence over Locke's own recognition. Allow and Block apply to every connection to the host; Screen and Ask me apply once Locke detects AI traffic to it. Locke never opens a connection to inspection just because a rule names the host. Each exception shows In force once the proxy applies it.
To make sure Locke screens an internal AI tool or a service it doesn't list:
Open Controls › Protected Surfaces and scroll to Explicit exceptions.
Type the host into the box, for example llm.example.com.
Change the action beside it from Allow (trusted) — the preselected choice — to Screen.
Choose Add. The host appears in the list with its action, and you can change the action or remove it (×) later.
Sensitive data
The catalog of what Locke masks: 78 types in eight categories — personal and identity details, government and tax IDs, financial data, health and medical data, secrets and credentials, crypto and web3, legal and business identifiers, and device and network identifiers. Each type has a risk level and a switch. The full list is in What Locke detects.
Controls
Choose which apps Locke checks and which data it masks on this device. · Learn more
Saved.
How these controls work
Locke scans at its built-in level; nothing on this page changes that.
Protected Surfaces. Switching a service off now stops Locke screening it; the status card on that tab reports what each component actually applied. Sites listed as recognised but not screened are there so you know Locke recognises them, not because it protects them. Sites listed as not screened — unsupported transport send chat over a WebSocket, which Locke cannot read, so nothing typed there is screened and they have no switch. The same limit applies to voice and realtime modes on services that are otherwise screened, ChatGPT's voice mode included: the typed chat is screened, the realtime session is not.
Unrecognized AI services and exceptions. What Locke does with an AI service its list does not include, and with hosts you name. Each shows what Locke's proxy reports it is actually enforcing — a saved setting is never shown as in force.
Sensitive data. Every type is screened on every scan. Switching a data type off does not stop Locke finding it — it sends that value through in the clear on purpose, through the policy file the engine re-reads every second; the card on that tab reports what the file says. A type marked not enforced has no engine rule, so its switch does nothing.
Strictness and Modalities. How sure Locke must be before it masks a name, place or organization in text, and which kinds of content are screened. Only the Text modality can be set in this release; Image and File are coming in V1.X and Audio later, and are shown but cannot be switched on. Files Locke can read are still screened like typed text. Images and audio are sent unscreened unless blocked (File types, under Attachments).
Attachments. That tab is a record of what the engine does with a file, not a setting.
78 types
Masking policy1 type is detected and deliberately sent in the clear.
Locke's engine looks for every type it knows on every scan — no setting here can make it stop looking. What these switches decide is whether a value it finds is replaced or sent through in the clear. Everything else the engine finds is replaced, except the value you listed: 1 term on the Never flag list below goes out in the clear wherever the engine finds it whole. This is the file the engine reads, not a report from it: the engine re-reads the file within a second of a change and logs what it found, but nothing has answered back in this session — which is not the same as an engine reporting that nothing went out in the clear.
uuid
9 further types have no switch on this page. They are always masked.
OAuth Token, Court Order Number, Litigation ID, Subpoena Number, Deposition ID, Evidence ID, Witness ID, Filing Number, Settlement Reference, Trademark Number, Entity Number have no matching type in the engine, so their switches do nothing in either direction. They are marked as such below.
Personal & identity
Person NameHigh risk
Email AddressMedium risk
Phone NumberMedium risk
Address / LocationMedium risk
Date of BirthMedium risk
GPS CoordinateHigh risk
Minor / Child TermHigh risk
Passport NumberHigh risk
Driver LicenseHigh risk
Government & tax IDs
Social Security Number (US)High risk
Individual Taxpayer ID Number (ITIN)High risk
Employer Identification Number (EIN)High risk
NHS Number (UK)High risk
National Insurance Number (UK)High risk
Social Insurance Number (Canada)High risk
Financial
Credit CardHigh risk
Card Verification Value (CVV)High risk
Bank Account NumberHigh risk
ABA Routing NumberLow risk
IBANMedium risk
SWIFT / BIC CodeHigh risk
Sort Code (UK)Medium risk
IFSC Code (India)Medium risk
Health & medical
Health TermHigh risk
Medical Record NumberHigh risk
Health Plan IDHigh risk
DEA NumberHigh risk
NPI NumberLow risk
ICD-10 Diagnosis CodeHigh risk
CPT Procedure CodeHigh risk
HCPCS CodeHigh risk
NDC Drug CodeHigh risk
Secrets & credentials
API KeyHigh risk
Generic SecretHigh risk
Private Key (PEM)High risk
JWT TokenHigh risk
Bearer TokenHigh risk
Database URLHigh risk
GCP API KeyHigh risk
Azure API KeyHigh risk
AWS KeyHigh risk
OAuth Tokennot enforcedHigh risk
Exchange API KeyHigh risk
Discord TokenHigh risk
Crypto & web3
BIP-39 Seed PhraseHigh risk
Wallet Private Key (WIF)High risk
Extended Public Key (xpub)Medium risk
Lightning Invoice (BOLT-11)Low risk
Bitcoin AddressMedium risk
Ethereum AddressMedium risk
Ripple AddressMedium risk
Solana AddressMedium risk
Monero AddressLow risk
Transaction IDLow risk
Legal & business
Legal Case NumberHigh risk
Court Order Numbernot enforcedHigh risk
Litigation IDnot enforcedHigh risk
Subpoena Numbernot enforcedHigh risk
Deposition IDnot enforcedHigh risk
Evidence IDnot enforcedHigh risk
Witness IDnot enforcedHigh risk
Filing Numbernot enforcedHigh risk
Settlement Referencenot enforcedHigh risk
Contract NumberMedium risk
Organization NameMedium risk
State Bar NumberLow risk
Patent NumberLow risk
Trademark Numbernot enforcedLow risk
Entity Numbernot enforcedLow risk
Device & network
IMEIMedium risk
ICCID (SIM Card)Medium risk
IP AddressMedium risk
IPv6 AddressMedium risk
MAC AddressMedium risk
Android IDMedium risk
iPhone UDIDMedium risk
UUIDLow risk
Serial NumberLow risk
Never flag
Terms here are still detected and counted, but sent through in the clear.
How never-flag works
An entry does for one value what switching a data type off does for a whole type: Locke still finds it and counts it, then sends it through in the clear instead of masked. A term must be the whole value Locke finds, ignoring case. Limit a term to one data type to let it through only when it is found as that type.
The list lives in the policy file the detection engine reads; what is shown here is that file read back. An engine older than this list can't read it: it refuses the whole policy file and masks everything until it is updated.
Project Falcon
Any data type
1 of 512 entries.
One card per category. The Never flag list is at the bottom of the tab.
1Filter data types… narrows the catalog as you type.
2Masking policy. Reads back the policy file the detection engine uses and says in one line what goes out in the clear. On a fresh install that is one type, UUID.
3Each category card has a switch in its header (All … masking) that sets every type in it at once; it shows a mixed state when some types are on and some off.
4Each type shows High risk, Medium risk or Low risk — how damaging that kind of value is if it leaks.
A switch decides what happens to a value Locke finds, not whether it looks for it. Locke checks for every type on every scan. Switched on, a value is masked: replaced before the request leaves your device with a short token that names its type, like EML_x9k2 for an email address. The same value always gets the same token, and nothing turns a token back into the value. Switched off, Locke still finds and counts the value, and sends it through in the clear on purpose.
Every type starts switched on except UUID, which the engine deliberately lets through — the identifiers AI tools use to keep track of their own requests, which identify nobody. Eleven labels carry a not enforced tag: Locke has no detector behind them yet, so their switch is disabled. A few further types the engine knows have no switch on this page at all; they are always masked.
The Never flag list
The card at the bottom of the Sensitive data tab. Its own description says it: terms here are still detected and counted, but sent through in the clear. An entry does for one value what switching a type off does for a whole type — useful when your company's own name is masked as an organization, or a project codename is masked as a person's name.
Type the term into the box, for example Project Falcon.
Leave the data type at Any data type, or pick Only as … a single type (say, Only as Organization Name) so the term goes through only when Locke finds it as that type.
Choose Add. The entry is listed with its scope and a Remove button. The list holds up to 512 entries.
An entry must match the whole value Locke finds, ignoring case. Entries are plain words and phrases, not patterns.
Strictness and Modalities
Detection strictness sets how sure Locke must be that a word is a name, a place or an organization before it masks it. Card numbers, keys, IDs and other structured data are masked the same way at every setting. Choosing a level applies it straight away.
Controls
Choose which apps Locke checks and which data it masks on this device. · Learn more
Saved.
How these controls work
Locke scans at its built-in level; nothing on this page changes that.
Protected Surfaces. Switching a service off now stops Locke screening it; the status card on that tab reports what each component actually applied. Sites listed as recognised but not screened are there so you know Locke recognises them, not because it protects them. Sites listed as not screened — unsupported transport send chat over a WebSocket, which Locke cannot read, so nothing typed there is screened and they have no switch. The same limit applies to voice and realtime modes on services that are otherwise screened, ChatGPT's voice mode included: the typed chat is screened, the realtime session is not.
Unrecognized AI services and exceptions. What Locke does with an AI service its list does not include, and with hosts you name. Each shows what Locke's proxy reports it is actually enforcing — a saved setting is never shown as in force.
Sensitive data. Every type is screened on every scan. Switching a data type off does not stop Locke finding it — it sends that value through in the clear on purpose, through the policy file the engine re-reads every second; the card on that tab reports what the file says. A type marked not enforced has no engine rule, so its switch does nothing.
Strictness and Modalities. How sure Locke must be before it masks a name, place or organization in text, and which kinds of content are screened. Only the Text modality can be set in this release; Image and File are coming in V1.X and Audio later, and are shown but cannot be switched on. Files Locke can read are still screened like typed text. Images and audio are sent unscreened unless blocked (File types, under Attachments).
Attachments. That tab is a record of what the engine does with a file, not a setting.
Detection strictness
How sure Locke must be that a word is a name, a place or an organization before it masks it. Card numbers, keys, IDs and other structured data are masked the same way at every setting.
The default. Balanced between catching names and leaving ordinary words alone.
Applies to text you send. Files are screened at Standard for now, and images are sent unscreened. Every change is recorded with who made it and appears in your reports.
Modalities
The kinds of content Locke screens. Text is screened today, at the strictness chosen above. The others are not available yet, so they cannot be switched on.
Modality
Screening
Strictness
Text
Enabled
Standard
Image
Coming in V1.X
—
File
Coming in V1.X
—
Audio
Coming later
—
Not covered yet: strictness applies to text only. Images, files and audio have no strictness setting. We plan to add this in a future release.
One three-way choice for text, a table of what kinds of content are screened, and — as under every tab — the card for the configuration file and the rules test.
The three detection strictness levels
Level
What the app says
Good for
Relaxed
Fewer false alarms. Only names and places the model is confident about are masked.
Work where ordinary words keep being masked as names, and an occasional missed name costs little.
Standard
The default. Balanced between catching names and leaving ordinary words alone.
Almost everyone.
Strict
Catches more. Borderline names and places are masked too, so expect more false alarms.
Regulated work where a missed name costs more than a false alarm.
Strictness applies to text you send. Files are screened at Standard for now, and images are sent unscreened. Every change is recorded with who made it and appears in your reports.
Modalities
Modalities
Modality
Screening
Strictness
Text
Enabled
The level chosen above
Image
Coming in V1.X
—
File
Coming in V1.X
—
Audio
Coming later
—
Only text is screened as a modality in this release, and the other rows can't be switched on. That doesn't leave attachments unhandled: a file Locke can read is screened like typed text, and everything else is decided on the Attachments tab. Strictness for images, files and audio is on the Known limitations list.
Attachments
The File types card decides what happens to each kind of file you attach. Locke recognizes a file by what is inside it, not by its name, so renaming a file doesn't change what happens to it.
Controls
Choose which apps Locke checks and which data it masks on this device. · Learn more
Saved.
How these controls work
Locke scans at its built-in level; nothing on this page changes that.
Protected Surfaces. Switching a service off now stops Locke screening it; the status card on that tab reports what each component actually applied. Sites listed as recognised but not screened are there so you know Locke recognises them, not because it protects them. Sites listed as not screened — unsupported transport send chat over a WebSocket, which Locke cannot read, so nothing typed there is screened and they have no switch. The same limit applies to voice and realtime modes on services that are otherwise screened, ChatGPT's voice mode included: the typed chat is screened, the realtime session is not.
Unrecognized AI services and exceptions. What Locke does with an AI service its list does not include, and with hosts you name. Each shows what Locke's proxy reports it is actually enforcing — a saved setting is never shown as in force.
Sensitive data. Every type is screened on every scan. Switching a data type off does not stop Locke finding it — it sends that value through in the clear on purpose, through the policy file the engine re-reads every second; the card on that tab reports what the file says. A type marked not enforced has no engine rule, so its switch does nothing.
Strictness and Modalities. How sure Locke must be before it masks a name, place or organization in text, and which kinds of content are screened. Only the Text modality can be set in this release; Image and File are coming in V1.X and Audio later, and are shown but cannot be switched on. Files Locke can read are still screened like typed text. Images and audio are sent unscreened unless blocked (File types, under Attachments).
Attachments. That tab is a record of what the engine does with a file, not a setting.
File types
Locke recognises a file by what is inside it, not by its name, so renaming a file does not change what happens to it. Every format is either screened (the text is read and masked before the file is sent) or blocked (the file is never sent). The exceptions are audio and images: Locke can't check voice and audio, or images (including NSFW filtering), yet, so they are sent unscreened unless you block them. We plan to add this in a future release. Nothing else can be sent without screening, and the fail-open window never changes that: a blocked file, or one Locke can't read yet, is not sent even while it is on, and audio or an image set to Block stays blocked.
Format
What Locke does
Text, code, CSV, JSON and logs
Rich Text (RTF)
PNG image
JPEG image
GIF image
WebP image
PDF
Word
Excel
PowerPoint
Pages, Numbers and Keynote
BlockCan't screen yet — coming in a future release
SQLite database
BlockCan't screen yet — coming in a future release
Outlook mail
BlockCan't screen yet — coming in a future release
Archives (zip, tar, 7z, rar)
BlockCan't screen yet — coming in a future release
Other images (HEIC, TIFF, BMP)
BlockCan't screen yet — coming in a future release
Audio and voice (not screened yet)
Video
BlockCan't screen yet — coming in a future release
Unknown binary
BlockCan't screen yet — coming in a future release
When a file is blocked you see: “This file was blocked by your file-type setting, so it was not sent. The rest of your message was screened and sent.” Every change is recorded with who made it and appears in your reports.
Not covered yet: files Locke cannot read, such as Apple iWork files and archives, are blocked, not screened. Images are sent unscreened unless blocked, and NSFW filtering is not in this release. We plan to add this in a future release.
What happens to an attached file
A record of what the detection engine does with an attached file — not a setting.
The engine handles an attachment by what its bytes turn out to be, never by its name. A row is what it does with the bytes once it has them — not a promise that an attachment reaches it: the request path that would carry one is still open work.
Images
Not examined in this release: Locke can't check images yet (reading text in a picture and NSFW filtering are not in V1), so an image is sent as it is unless it is set to Block. We plan to add this in a future release.
Image, no codec
The `image` crate is not built with these codecs, so the engine cannot examine the bytes and the item fails closed. Withholding does not rescue it: the placeholder table holds image/png, image/jpeg, image/gif and image/webp only — the four the engine can already read — so an upload declaring its true type (image/heic, image/tiff, image/bmp) has no valid stand-in, and one declaring no type at all blocks too. Only a MISLABELLED upload would be withheld, which is not a coverage claim worth making.
Binary, needs a parser
Containers whose text needs a real extractor, and none is built for these. `file_scan` refuses any blob containing a NUL byte — `NotText`, which the guard reports as an honest `unsupported`: examined, couldn't read it. Refusing is the point: forced into a string, a database would have the scanner find nonsense in binary noise and any redaction would write those bytes back corrupted.
Archives
Deferred: needs recursion plus zip-bomb protection, and none of it is built. Nothing decodes the container, so the member files are never seen.
Audio
Not examined: the v1 scope trim (`2b8aeef`) deleted the audio/voice pipelines, and Locke cannot check audio until a later release. By decision (2026-10-06, "Allow audio, disclose") voice and audio uploads are sent unchanged unless audio is set to Block, on the device or by a Teams policy (`files.block = "audio"`), which refuses the request. Audio is told from video by its content (container structure and codec ids), never its name: a recording with a picture track is video, and a file that only starts like audio, or is declared or named as another format, is blocked.
Video
Removed, not merely unbuilt: the v1 scope trim (`2b8aeef`) deleted the video pipelines and the `sonomos-vlm` crate. Restoring them is a rebuild of something cut, which is a different kind of work from the deferred rows — and until it happens a video fails closed like any other unexaminable blob, whatever its extension (a `.webm` with a picture track included). No setting sends it.
PDF and Office documents
PDF, Word, Excel and PowerPoint files are read and screened like text.
Text decode → full scan
`scan_file_bytes` decodes the bytes and delegates to the ordinary scan pipeline, so these get the same detection chat text gets. Format-shaped text — CSV, TSV, JSON, YAML, Markdown, source and logs — needs no special handling, and token substitution leaves the surrounding structure intact.
Text, degraded
Decodes as ASCII so it does scan, but RTF control words split values across the markup — detection is partial, and writing a redacted string back can break the markup.
Limits and provenance
These cut across every row above, whatever its outcome:
A 10 MiB cap (`MAX_FILE_BYTES`), enforced before reading. It rejects real `.log`, `.mbox`, `.pst` and `.sql` dumps — likely the most common miss in practice — and chunked scanning above the cap is itself deferred.
`redact_file_to` always writes UTF-8, so a UTF-16 upload comes back re-encoded. Harmless for whole-blob splicing; it surfaces as a mangled-export bug report rather than as a scanning failure.
Transcribed by hand from Spliicer-Guard docs/FILES.md against engine commit a9bec51, and checked on 2026-07-30. Engine facts age: this card is only as current as that check, and a row that has quietly changed in the engine will keep reading the old way here until someone re-checks it.
The File types card. Below it, What happens to an attached file records what the engine does with each kind.
File types and what Locke does with them
Format
Choices
Default
Text, code, CSV, JSON and logs; Rich Text (RTF); PDF, Word, Excel and PowerPoint
Screen (the text is read and masked before the file is sent) or Block
Screen
PNG, JPEG, GIF and WebP images
Sent unscreened (Locke can't check images yet) or Block
Sent unscreened
Audio and voice
Sent unscreened (Locke can't check audio yet) or Block
Sent unscreened
Pages, Numbers and Keynote, SQLite databases, Outlook mail, archives (zip, tar, 7z, rar), other images (HEIC, TIFF, BMP), video, unknown binary
Always Block — “Can't screen yet — coming in a future release”
Block
Nothing else can be sent without screening. When a file is blocked you see: “This file was blocked by your file-type setting, so it was not sent. The rest of your message was screened and sent.” Every change is recorded with who made it and appears in your reports.
Below it, What happens to an attached file is a record, not a setting: for each kind of file, the extensions it covers and what the detection engine does with it, with the reasons and the engine's limits behind two disclosures. RTF, for instance, is read as text, but its formatting codes can split a value, so detection there is partial.
Export, import and test
Under every tab, one card holds two tools.
The card under every Controls tab
Tool
What it does
Configuration file › Export configuration
Saves your choices on this page as a JSON file — never captured traffic or detected values. Use it to copy your setup to another device.
Configuration file › Import configuration…
Applies a previously exported file in full, replacing the configuration on this device; the change saves and syncs like an edit made by hand. A file that doesn't validate is refused whole — nothing is partly applied.
Test your rules › Test with sample text
Opens the same test as the Sandbox page, without leaving Controls.
The test area has an Input box, Run test, a Masked output box you can copy, and What was detected: a row per value with its action (masked, or disclosed for a type you've switched off), type, token and confidence. It's the quickest way to see what a change on the Sensitive data tab does. More in Sandbox.
On a Teams plan
Available toTeams MemberTeams Admin
Members: the Team policy page
A member's device is locked to the team's policy, so there is no Controls page in a member's sidebar. Team policy takes its place: a read-only summary of what your organization enforces on this device. There is nothing to switch, and nothing on it can be loosened from your side; if something needs to change, ask your admin.
Team policy
Protection settings from your organization
Your protection settings are configured by your organization's admin. They apply to this device automatically and can't be changed here. Ask your admin if something needs to change.
What your organization enforces
Policies
HIPAA-focused
Text strictness
Strict — Masks borderline matches too. More masking, fewer misses.
Image and file strictness
Coming later
File types blocked
Audio and voice (not screened yet), GIF image, JPEG image, PNG image, WebP image Audio and voice uploads are blocked. Image uploads are blocked. Formats Locke can't screen yet (archives, Apple iWork files, video and similar) are always blocked.
AI apps and sites screened
Every AI app and site Locke screens by default. This device is locked by your team, so Locke keeps screening any a policy leaves out.
Always masked
Personal & identity: Person Name, Email Address, Phone Number, Address / Location, Date of Birth, GPS Coordinate, Passport Number, Driver License
Government & tax IDs: Social Security Number (US)
Financial: Credit Card, Card Verification Value (CVV), Bank Account Number, IBAN
Health & medical: Health Term, Medical Record Number, Health Plan ID, DEA Number, NPI Number, ICD-10 Diagnosis Code, CPT Procedure Code, HCPCS Code, NDC Drug Code
Secrets & credentials: API Key, Generic Secret, Private Key (PEM), JWT Token, Bearer Token, Database URL, GCP API Key, Azure API Key, AWS Key, OAuth Token
Device & network: IP Address
Applied on this device
Oct 19, 2026, 8:47 AM (team revision 12)
What a member sees in place of Controls.
What the Team policy page lists
Row
Means
Policies
The team policies that apply to you, by name — for example HIPAA-focused.
Text strictness
Relaxed, Standard or Strict, set by your admin.
Image and file strictness
Coming later.
File types blocked
The formats your team blocks, such as audio or images. Formats Locke can't screen yet are always blocked.
AI apps and sites screened
Which AI services are screened. On a device the team locks, Locke keeps screening every one it screens by default.
Always masked
The data types your team always masks, by category.
Applied on this device
When your device applied the policy, and its team revision number.
More on what a member controls and what an admin can see in For team members.
Admins: your own device follows the team
As an admin you keep the Controls page, but your own device is covered by your team's policy too, so most of it is read-only: the switches on Protected Surfaces and Sensitive data, the Never flag list, strictness, file types, and importing a configuration file. Strictness and file types say Set by your team's policy. Your administrator changes it from My Team › Policies. To change them, edit the policy in My Team › Policies. Export configuration and the rules test still work.
Controls
Choose which apps Locke checks and which data it masks on this device. · Learn more
How these controls work
Locke scans at its built-in level; nothing on this page changes that.
Protected Surfaces. Switching a service off now stops Locke screening it; the status card on that tab reports what each component actually applied. Sites listed as recognised but not screened are there so you know Locke recognises them, not because it protects them. Sites listed as not screened — unsupported transport send chat over a WebSocket, which Locke cannot read, so nothing typed there is screened and they have no switch. The same limit applies to voice and realtime modes on services that are otherwise screened, ChatGPT's voice mode included: the typed chat is screened, the realtime session is not.
Unrecognized AI services and exceptions. What Locke does with an AI service its list does not include, and with hosts you name. Each shows what Locke's proxy reports it is actually enforcing — a saved setting is never shown as in force.
Sensitive data. Every type is screened on every scan. Switching a data type off does not stop Locke finding it — it sends that value through in the clear on purpose, through the policy file the engine re-reads every second; the card on that tab reports what the file says. A type marked not enforced has no engine rule, so its switch does nothing.
Strictness and Modalities. How sure Locke must be before it masks a name, place or organization in text, and which kinds of content are screened. Only the Text modality can be set in this release; Image and File are coming in V1.X and Audio later, and are shown but cannot be switched on. Files Locke can read are still screened like typed text. Images and audio are sent unscreened unless blocked (File types, under Attachments).
Attachments. That tab is a record of what the engine does with a file, not a setting.
Detection strictness
How sure Locke must be that a word is a name, a place or an organization before it masks it. Card numbers, keys, IDs and other structured data are masked the same way at every setting.
Catches more. Borderline names and places are masked too, so expect more false alarms.
Set by your team's policy. Your administrator changes it from My Team › Policies.
Applies to text you send. Files are screened at Standard for now, and images are sent unscreened. Every change is recorded with who made it and appears in your reports.
Modalities
The kinds of content Locke screens. Text is screened today, at the strictness chosen above. The others are not available yet, so they cannot be switched on.
Modality
Screening
Strictness
Text
Enabled
Strict
Image
Coming in V1.X
—
File
Coming in V1.X
—
Audio
Coming later
—
Not covered yet: strictness applies to text only. Images, files and audio have no strictness setting. We plan to add this in a future release.
An admin's own device: the team's strictness, shown but not editable here.
Unrecognized AI services and Explicit exceptions stay yours unless the team's AI services Locke doesn't recognize setting decides otherwise. If it sets one action for everyone, your two defaults show that action and can't be changed. If it doesn't let members add their own exceptions, yours are kept on the device but marked Not applied: your organization does not allow personal exceptions.