Download, install, sign in, and step through a short setup — then watch Locke catch something real. Nothing in setup is a decision you can't revisit later.
1. Download and install
Get the installer for your operating system from sonomos.ai/downloads. Locke runs on x64 Windows and Linux. It is not available for macOS. We plan to add this in a future release.
Installer formats by platform
Platform
File
How to install
Windows x64
Locke-<version>-win-x64.exe
Double-click it. There is no wizard — no directory chooser, no component page, and no administrator prompt. It installs into your own user profile and opens when it finishes.
Linux x64 (Debian, Ubuntu)
Locke-<version>-linux-x64.deb
Install it with your package manager: sudo apt install ./Locke-<version>-linux-x64.deb. There is no automatic updater on Linux — download and install a newer package to update.
Linux x64 (Fedora, RHEL, openSUSE)
Locke-<version>-linux-x64.rpm
Install it with your package manager: sudo dnf install ./Locke-<version>-linux-x64.rpm (or zypper). There is no automatic updater on Linux — download and install a newer package to update.
2. Linux: one privileged step, run by you
On Linux, installing the package is the only part that uses your package manager's privileges. After that, the app unpacks and verifies its own engine into your home directory (~/.local/share/sonomos/app) the first time it runs, as you, with no password. Screening your browser needs nothing more than that plus the extension.
Screening your desktop and command-line traffic needs root once, and Locke asks for it in the open rather than slipping it into the install. The last setup screen — and the Dashboard, until it's done — shows a card titled Finish setting up Locke. Choose Turn on protection and enter your password in the system's own dialog. What exactly will this do? on the card lists every step before you agree:
What the one-time capture setup does, and why each part is needed
It does this
Because
Creates the system groups sonomos-proxy and sonomos-bypass, and adds you to them
Locke's own connections run in these groups, so they are never routed back through Locke. Without it the proxy's outbound traffic is redirected back into itself.
Installs a small launcher at /usr/local/libexec/sonomos-launch
It starts Locke's screening service in those groups right away and checks your membership itself — which is why there is no need to log out and back in.
Installs a root-owned helper at /usr/local/libexec/sonomos-redirect, and /etc/sudoers.d/sonomos-redirect
The helper only switches Locke's traffic redirect and certificate trust on and off, and is owned by the system so it can't be altered. The rule lets you run just that helper without a password. Not a convenience: the redirect is disarmed automatically at shutdown, where there is no terminal to type a password into, and a redirect left armed over a stopped Locke breaks all HTTPS on the machine.
Keeps a system-owned copy of this device's certificate at /usr/local/share/sonomos/device-ca.pem
The proxy has to terminate TLS to see what a command-line tool is sending. The certificate is generated on this machine and its private key never leaves it, and the system trusts it only while protection is running.
Adds one marked line to your shell's startup file setting NODE_EXTRA_CA_CERTS
Node ignores the system's trust store, so command-line AI tools built on Node, like Claude Code and Codex, would otherwise fail with a TLS error under capture. This part runs as you and needs no password.
If this computer has no graphical way to ask for your password — over SSH, or at a text console — the card says so. Run locke setup-capture in a terminal instead (it asks for your password once), then come back and choose Check again.
3. The setup steps
The first time you open Locke, you sign in to your Sonomos account and a short setup runs. There's one screen per step, and you can go back.
Your Locke plan. Locke asks your Sonomos account which plan it is on and shows the answer: Free plan (“Locke, just for you”), Teams · Admin (“You're your team's admin”) or Teams · Member (“You're on a team”). There is nothing to choose — your plan belongs to your account, not to this screen. If you expected a team and Locke says You're not on a team yet, accept the invitation in your email and choose Check again; if it still doesn't show, sign out and sign in again. You can also Continue on the Free plan for now.
What Locke does for you — or, for a team admin, What your team gets. Three things to know before setup: what Locke checks for, that detected values become one-way tokens, and that detection runs on this device. On the Free plan and as a team member you see the first title; a team admin sees the second, with the same three points worded for IT. Choose Get started.
Prepare protection on this device. Locke offers to download its detection models: Download now or Later. The download carries on in the background if you continue.
Checking protection. Locke checks that its detection engine answers and scans one line of sample text. When both pass you see Protection check and sample test passed. If the engine is still loading, choose Retry, or Continue without the engine and come back to it later.
Protect your browser. Install Browser Protection — the Locke extension — from your browser's store. Locke names your default browser and links its store (Install for your browser); once the extension connects, choose Continue. Use another browser too? Each one needs its own copy. Set up later skips this for now.
Protection setup is ready. The last screen shows what the sample scan caught and lets you try a line of your own. On Windows it asks you to approve Locke's certificate; on Linux it shows Finish setting up Locke (section 2). Then Continue to Locke.
The detection engine itself is part of the install. The installer ships a starter set of detection models; setup offers to download the current ones now or later, and if you choose later, the Dashboard and Settings › Protection keep offering the same download for as long as the models are missing. After that, Locke keeps them up to date by itself. There is no size or tier to pick. There is no key to create, and setup does not ask you for one: a detected value is replaced by a one-way token derived from the value itself, so there is nothing to generate, store or lose.
The sample scan in Checking protection is worth reading precisely: it proves the detection engine is installed, running on this machine, and detecting. It is a direct scan, so it does not exercise capture — nothing was intercepted from a browser or a command line to produce it, and a green result here is not proof that either capture path is working. That proof is section 5, and it takes a real request from a real app.
4. The Getting Started card
When setup finishes you land on the Dashboard. Open Detailed status and diagnostics near the bottom and the first thing inside is a short checklist, Welcome to Locke. It tracks real progress, not clicks — each item ticks off when the thing has genuinely happened.
Welcome to Locke
Local diagnostics are ready. A couple of quick steps and you're set.
1 of 3 done
Check the detection engineThe detection engine answered a health check. That doesn't confirm your traffic is routed through it.Answering
2Review configurationSee which AI apps and sites Locke covers.
3See it protect something realLocke's capture log is being watched and nothing has come through yet. Send something sensitive through a configured AI surface and this ticks off.
You can reopen this anytime from Support.
The checklist lives inside Detailed status and diagnostics. The last step ticks itself off the first time Locke protects something in real use.
Check the detection engine. Nothing to click: it ticks off when the engine answers a health check, and the pill reads Answering, Not answering or Can't tell. An answering engine doesn't by itself confirm your traffic is routed through it — that's the last step.
Review configuration. Ticks off once you've opened Controls (Open Controls) and seen which AI apps and sites Locke covers. The defaults are sensible — this step is about knowing what they are. Team admins get one more step, Review local diagnostics (Open Reports), which ticks off when you open Reports.
See it protect something real. Ticks off when Locke masks or blocks something in actual use — not the sample from setup. This is the step worth waiting for.
Dismiss the card with Got it whenever you like. You can bring it back from Support › Replay the welcome guide.
5. Prove it works
The only real proof is a real request. Use ChatGPT, Claude, or any other app Locke protects, and send something recognizably yours — your own email address is the easy test. When Locke masks it, the last Getting Started step ticks off too.
Send the message. Locke masks your email address on the way out, and the AI receives a token in its place.
Back in Locke, the Dashboard's Recent activity lists the catch: the kind of value, the AI service it was headed for, and MASKED.
Open Activity in the sidebar and choose the event to see everything Locke recorded about it — metadata only, never the value itself.
Dashboard
Whether Locke is protecting this device right now, and what it caught. · Monday, October 19
Protection status
Running
Desktop ProtectionUp
Browser ProtectionConnected
Detection engineReady
Configured to monitor 13 AI products.
The engine is responding. This health check does not confirm that your traffic is being screened.
location in Google Gemini / Vertex / AI Studiomasked
Detections and first sightings of a surface come from this session's capture feed; policy rows are the proxy's and the extension's own acks of the surface policy; deletions are this device's record. Rule edits are not in this feed — nothing on this device records when a Never flag or a data-type choice changed.
Summarised from the comprehensive requirement checklist over the 19 outbound detection events this session — the same template Reports exports. A tool-generated record, not legal advice. The same summary is shown for every role: Locke has no organization-wide compliance posture.
23
Items masked before sendingThis device
PII Locke replaced in what you sent since this app opened — across every AI app you used, not one chat. Like the recorded tally, it counts each request's new turn only: the AI tool's own system prompt, the context it injects (saved notes, project files), the tool output it feeds back and re-sent conversation history are masked but not counted. It counts per request rather than per recorded value, so the two figures can differ.
312
Sensitive detections recorded (all-time, You typed only)This device
312 of 947 recorded, per your tally settings — the rest sit in origins you are not counting, or are replayed conversation history.
Recorded detection occurrences in the selected all-time tally — masking outcomes not included.
A deliberate subset: everything recorded here was masked, but not everything masked is recorded here.
13
AI products enabledThis device
Distinct AI products Locke screens, with at least one hostname enabled in its local surface catalog (27 hostnames in all). Every catalog entry ships enabled, so this is Locke's default list until you change it in Controls — runtime interception is reported separately when available.
Not counted: Microsoft Copilot in the browser and Web search (7 hostnames), which Locke lists but does not screen — see Controls.
7 verified · 0 degraded · 20 unverified this session, from captured traffic only.
4
Terminal AI tools protectedThis device
4 of the 4 terminal tools Locke knows about send prompts to an API host Locke's proxy is still told to screen (Claude Code, OpenAI Codex CLI, Gemini CLI, GitHub Copilot CLI). Locke's surface catalog groups hostnames, not command-line tools, so this mapping is Locke's own — it counts endpoint coverage, not tools installed or running on this machine, and runtime interception is reported separately when available.
These four figures are not slices of one another: the first is your live capture feed since this app opened, the second is the all-time metrics store narrowed by your tally settings, the third is your local surface list, and the fourth is how many known terminal tools that list still covers. Only the second is stored history. All four are individual figures — this device, under your account. Locke does not show organization-wide totals anywhere yet.
Detailed status and diagnostics
Welcome to Locke
Local diagnostics are ready. A couple of quick steps and you're set.
1 of 3 done
Check the detection engineThe detection engine answered a health check. That doesn't confirm your traffic is routed through it.Answering
2Review configurationSee which AI apps and sites Locke covers.
3See it protect something realLocke's capture log is being watched and nothing has come through yet. Send something sensitive through a configured AI surface and this ticks off.
You can reopen this anytime from Support.
Your surface and data-type choices on Controls do reach Locke — switching a data type off means Locke still finds that value and sends it through in the clear on purpose. The numbers on this page show what Locke has handled. See the card below for current protection status.
Detection engine is answering
The engine is responding. This health check does not confirm that your traffic is being screened.
What this check confirms
Locke's detection engine answered a health check. This check reaches the detection engine directly. It does not pass through the screening path your traffic takes — the system redirect, the proxy, or Locke's guard — so it cannot tell you that any of those are working. If requests are failing or arriving unredacted while this reads green, that gap is where to look. To report this, open Support › Diagnostics and press Copy diagnostics, then send us what it copies.
Counting You typed · occurrences — change what countsWhat the recorded count leaves out
Locke masks more than it records. Four kinds of masked value are deliberately left out of the total above:
Replayed conversation history. A chat client re-sends the whole transcript every turn. A value is recorded once, on the turn it arrives — every later replay is masked again and not counted again.
Text the machine wrote. Values written by the AI itself are never recorded. Names, places, organisations and keyword-dictionary hits found in tool output are masked but not recorded.
Repeats of a value already counted. The same value in the same position counts once per session. After a large number of distinct occurrences that memory is cleared, so a value seen earlier can be counted once more.
Types the metrics store has no column for. A detected type outside its vocabulary is masked but not recorded.
None of this changes what Locke masks — only what it counts. Your own tally settings then filter that recorded subset further.
312 sensitive occurrences in the selected all-time tally. Masking success is shown only when the capture pipeline supplies explicit outcomes.
Live monitoring feed This device
20 validated detections in the current app-session buffer.
14:32:08email in OpenAI / ChatGPTmasked
14:29:51person in Anthropic / Claudemasked
14:28:34phone in OpenAI / ChatGPTmasked
14:26:58credit_card in Anthropic / Claudemasked
last event just now · live tail · processed locally, never leaves your device
Sensitive data origins (all-time)
Injected context
Things your AI tool quietly attaches to every message — saved notes, memory, project files
not counted39% · 368
You typed
Info you actually wrote into your message
in your tally33% · 312
System prompt
The AI tool's own built-in hidden instructions
not counted13% · 121
Tool output
Results from files or commands the AI read, fed back in
not counted10% · 97
The AI's replies
Text the AI generated
not counted5% · 49
Much of this content isn't typed by you — the app, its tools, or the AI itself can add it. These are detection/count-only aggregates; they do not establish a masking outcome. Choose what's included under Settings → What counts as a detection. Percentages are the share of all recorded origins, including rows excluded from your tally.
Recent activity, at the top of the Dashboard. Each row is the kind of value and where it was going — never the value itself.
Activity
Every PII detection Spliicer recorded
Feed statusLive20 stored0.6 / min
Feed20 stored detections
The newest 500 detections stored in the metrics database. Metadata only — no values are shown.
Pulse
23
Values masked
from 18 masked events
20
Requests
events in this window; one request can carry several values
1
Held back
blocked + withheld
0
Unprotected
mask failed + bypassed
6
Destinations
named by the producer
Per minute · last 60 min · peak 1
masked 18
detected 1
blocked 1
Filters
Showing 20 of 20CSV and JSON export are part of Teams. Upgrade to Teams
Event feed
02:32 PM
id
4d0a748d-4a0a-4fd4-8b0a-7167480a6cae
event id
4d0a748d-4a0a-4fd4-8b0a-7167480a6cae
session id
778a241d-748a-4f64-b58a-20f7728a1c3e
timestamp
2026-10-19T14:32:08Z
direction
outbound
outcome
masked
data type
email
provider id
openai
destination
OpenAI / ChatGPT
surface
extension
source
user
values masked
2
schema version
1
02:29 PM
02:28 PM
02:26 PM
02:24 PM
02:23 PM
02:19 PM
02:17 PM
02:14 PM
02:12 PM
02:10 PM
02:05 PM
02:02 PM
01:58 PM
01:55 PM
01:50 PM
01:47 PM
01:44 PM
01:39 PM
01:34 PM
Metadata only: the newest 500 detections in the metrics database, as Spliicer recorded them. Arrow keys or j/k move, Enter expands, Esc collapses, / searches.
The same event on the Activity page, opened to show what Locke recorded about it.
What using it looks like from here
Nothing. That's the intended answer. Locke screens in the background and masks as it goes; while it is checking a request, the app's title bar shows Screening…. Closing the window doesn't stop it — the app is a window onto Locke, and Locke keeps running when the window is closed. If you'd rather not see the window at all, turn on Settings › General › Start minimized to tray. The app is there when you want to check on it, change what's protected, or pull a report — not something you need to visit.
The rest of this guide is a tour of what's inside for when you do. Start with The window. When you want it gone, Uninstall Locke says exactly what removal reverses on each platform, and what it cannot reverse for you.
Dashboard
Whether Locke is protecting this device right now, and what it caught. · Monday, October 19
Protection status
Running
Desktop ProtectionUp
Browser ProtectionConnected
Detection engineReady
Configured to monitor 13 AI products.
The engine is responding. This health check does not confirm that your traffic is being screened.
location in Google Gemini / Vertex / AI Studiomasked
Detections and first sightings of a surface come from this session's capture feed; policy rows are the proxy's and the extension's own acks of the surface policy; deletions are this device's record. Rule edits are not in this feed — nothing on this device records when a Never flag or a data-type choice changed.
Summarised from the comprehensive requirement checklist over the 19 outbound detection events this session — the same template Reports exports. A tool-generated record, not legal advice. The same summary is shown for every role: Locke has no organization-wide compliance posture.
23
Items masked before sendingThis device
PII Locke replaced in what you sent since this app opened — across every AI app you used, not one chat. Like the recorded tally, it counts each request's new turn only: the AI tool's own system prompt, the context it injects (saved notes, project files), the tool output it feeds back and re-sent conversation history are masked but not counted. It counts per request rather than per recorded value, so the two figures can differ.
312
Sensitive detections recorded (all-time, You typed only)This device
312 of 947 recorded, per your tally settings — the rest sit in origins you are not counting, or are replayed conversation history.
Recorded detection occurrences in the selected all-time tally — masking outcomes not included.
A deliberate subset: everything recorded here was masked, but not everything masked is recorded here.
13
AI products enabledThis device
Distinct AI products Locke screens, with at least one hostname enabled in its local surface catalog (27 hostnames in all). Every catalog entry ships enabled, so this is Locke's default list until you change it in Controls — runtime interception is reported separately when available.
Not counted: Microsoft Copilot in the browser and Web search (7 hostnames), which Locke lists but does not screen — see Controls.
7 verified · 0 degraded · 20 unverified this session, from captured traffic only.
4
Terminal AI tools protectedThis device
4 of the 4 terminal tools Locke knows about send prompts to an API host Locke's proxy is still told to screen (Claude Code, OpenAI Codex CLI, Gemini CLI, GitHub Copilot CLI). Locke's surface catalog groups hostnames, not command-line tools, so this mapping is Locke's own — it counts endpoint coverage, not tools installed or running on this machine, and runtime interception is reported separately when available.
These four figures are not slices of one another: the first is your live capture feed since this app opened, the second is the all-time metrics store narrowed by your tally settings, the third is your local surface list, and the fourth is how many known terminal tools that list still covers. Only the second is stored history. All four are individual figures — this device, under your account. Locke does not show organization-wide totals anywhere yet.
Detailed status and diagnostics
Welcome to Locke
Local diagnostics are ready. A couple of quick steps and you're set.
1 of 3 done
Check the detection engineThe detection engine answered a health check. That doesn't confirm your traffic is routed through it.Answering
2Review configurationSee which AI apps and sites Locke covers.
3See it protect something realLocke's capture log is being watched and nothing has come through yet. Send something sensitive through a configured AI surface and this ticks off.
You can reopen this anytime from Support.
Your surface and data-type choices on Controls do reach Locke — switching a data type off means Locke still finds that value and sends it through in the clear on purpose. The numbers on this page show what Locke has handled. See the card below for current protection status.
Detection engine is answering
The engine is responding. This health check does not confirm that your traffic is being screened.
What this check confirms
Locke's detection engine answered a health check. This check reaches the detection engine directly. It does not pass through the screening path your traffic takes — the system redirect, the proxy, or Locke's guard — so it cannot tell you that any of those are working. If requests are failing or arriving unredacted while this reads green, that gap is where to look. To report this, open Support › Diagnostics and press Copy diagnostics, then send us what it copies.
Counting You typed · occurrences — change what countsWhat the recorded count leaves out
Locke masks more than it records. Four kinds of masked value are deliberately left out of the total above:
Replayed conversation history. A chat client re-sends the whole transcript every turn. A value is recorded once, on the turn it arrives — every later replay is masked again and not counted again.
Text the machine wrote. Values written by the AI itself are never recorded. Names, places, organisations and keyword-dictionary hits found in tool output are masked but not recorded.
Repeats of a value already counted. The same value in the same position counts once per session. After a large number of distinct occurrences that memory is cleared, so a value seen earlier can be counted once more.
Types the metrics store has no column for. A detected type outside its vocabulary is masked but not recorded.
None of this changes what Locke masks — only what it counts. Your own tally settings then filter that recorded subset further.
312 sensitive occurrences in the selected all-time tally. Masking success is shown only when the capture pipeline supplies explicit outcomes.
Live monitoring feed This device
20 validated detections in the current app-session buffer.
14:32:08email in OpenAI / ChatGPTmasked
14:29:51person in Anthropic / Claudemasked
14:28:34phone in OpenAI / ChatGPTmasked
14:26:58credit_card in Anthropic / Claudemasked
last event just now · live tail · processed locally, never leaves your device
Sensitive data origins (all-time)
Injected context
Things your AI tool quietly attaches to every message — saved notes, memory, project files
not counted39% · 368
You typed
Info you actually wrote into your message
in your tally33% · 312
System prompt
The AI tool's own built-in hidden instructions
not counted13% · 121
Tool output
Results from files or commands the AI read, fed back in
not counted10% · 97
The AI's replies
Text the AI generated
not counted5% · 49
Much of this content isn't typed by you — the app, its tools, or the AI itself can add it. These are detection/count-only aggregates; they do not establish a masking outcome. Choose what's included under Settings → What counts as a detection. Percentages are the share of all recorded origins, including rows excluded from your tally.
A day in: protection running, items caught, nothing to do.