The pipeline
Step 1 — Detecting the text field
Each client uses the native mechanism for its platform.- Browser
- macOS
- Windows
A content script is injected into the supported AI sites listed in the extension’s
host_permissions. When the user hovers a text input, an Analyze affordance appears. The script handles DOM highlighting, the analysis request, and writing accepted text back.The extension is Manifest V3. Page logic lives in the content script; all network and token handling lives in the background service worker.Step 2 — Analysis and suggestion types
Detection is driven by suggestion types — named categories such as PII redaction or tone adjustment. Admins create, edit, toggle, and reset these centrally, and users see only the categories enabled for their organisation. Text is sent to the PromptShields API for analysis, which returns a suggested revision. On the browser client this is the/api/v2/suggestion/analyze/ endpoint; the desktop agents call the equivalent suggestion service.
Categories are org-scoped, not per-user. A user can choose which enabled categories to run against a given prompt, but cannot invent categories or disable ones the organisation requires.
Step 3 and 4 — The user decides
The suggestion is rendered in a non-intrusive overlay near the field — a floating window on desktop, an in-page panel in the browser. The user accepts or rejects. On accept, the client writes the revised text back into the original element (TextInjector on Windows, the Accessibility element on macOS, direct DOM manipulation in the browser).
This is what makes PromptShields deployable without a change-management fight: from the user’s point of view it behaves like a spell-checker, not a gate.
Step 5 — What gets reported
The endpoint emits a structured violation event. The shape is fixed and deliberately narrow:device_id. That is what lets the activity log say “M. Hayes on LAPTOP-MH-01 redacted an SSN in ChatGPT at 14:32” without the system ever having stored the SSN.
The backend refuses raw prompts at the database level — the violation table carries a prompt_hash constraint, so an endpoint that tried to send prompt text would be rejected rather than quietly stored.
Full data-handling detail
What is collected, what is stored where on each platform, and what is deliberately excluded.
Where MDM fits
MDM cannot see prompt content — no MDM can. Its role here is coverage: without a force-install policy, only the willing employees end up protected, which is the same gap every BYOD security tool faces. So the division of labour is:- MDM guarantees the client is installed and configured everywhere.
- The endpoint client does the observation.
- The console aggregates, scores, and reports.