What is a coverage gap?
A surface a security control does not inspect, and why the dangerous ones look exactly like having nothing to report.
Read the articleSurface coverage
Itzal checks what employees send to AI tools in the browser and in the ChatGPT, Claude and Codex desktop apps. It also checks files and mail that leave by other routes: uploads to any website, Outlook and Gmail, USB drives and sync folders. Everything is read on the employee’s own device before it leaves. Coding assistants, agents, phones and the AI inside Office and Workspace are not inspected.
Why we publish this
The most dangerous state for a DLP product is not a missed detection. It is a silent coverage gap: a console showing green and no violations, while the capture layer stopped working three weeks ago when an AI tool shipped a redesign.
Zero detections and perfect coverage look identical on a dashboard, so Itzal reports them as different things.
Rule one
Coverage is measured, not assumed.
Every capture path reports whether it is currently binding on the device, not merely whether it was installed there.
Rule two
What Itzal cannot see is listed.
Every surface it does not inspect is named on this page and in your console, so you can put another control there.
The short version
The extension and the agent on each laptop check what is about to leave, wherever it is going. A date on a card is the month that part becomes available. What Itzal does not inspect is listed underneath, and the matrix below says which control owns it.
The message box on nineteen AI sites, and every file and image attached, dropped or pasted into them. All of it is read on the employee’s own device before anything is sent.
Covered in Chrome, Edge, Firefox and Safari.
The ChatGPT, Claude and Codex apps on Mac and Windows, with files attached to them. The agent reads the message box at the moment of sending, and never the screen, keystrokes or window titles.
Covered on the Mac and on Windows. About Guard
A file uploaded to any website, mail sent from Outlook or Gmail, a file copied to a USB drive, and a file saved into a Dropbox, OneDrive or Google Drive folder. Each route has its own switch, off until an admin turns it on.
Covered for website uploads, Outlook, Gmail, USB drives and sync folders. About Shield and Mail
Not inspected
Coding assistants inside an editor, agents calling tools, API traffic from internal scripts, printing and AirDrop, and anything typed on a phone. The console’s Coverage page names each surface no device covers, next to the figures for the ones it does, so your team can plan around it.
The matrix
Partial is the status most likely to be read as done, so every partial row says what is still missing. Covered elsewhere and out of scope are decisions we made, and the rows below explain them rather than leaving them as gaps.
| Surface | How Itzal reaches it | What limits it | Status |
|---|---|---|---|
| AI tools in the browser | |||
| AI chat on supported sites | The extension binds the message box on nineteen sites, using site rules that arrive with the signed policy | A site redesign can break the binding, so it is reported per site. Nine sites still rely on fallback selectors. | Covered |
| Files attached, dropped or pasted | Held and read in full on the device before upload | Encrypted files, 7z and RAR archives, fax-encoded scans and text saved as UTF‑16 are not read, and are blocked by default. | Partial |
| Pasted images and screenshots | On-device OCR, with Text in images switched on | Without Text in images, an image is allowed or refused by policy and nothing looks inside it. | Partial |
| Browsers | Chrome and Edge, Firefox, and a signed Safari build you can deploy by policy | In Safari, an attach button a site builds in script may be missed. Any other browser is uncovered. | Partial |
| AI tools nobody listed | Discovery reports the hostname, opt-in per tenant | Finding a tool is not watching it. Nothing sent there is inspected. | Visible only |
| Files the AI provider fetches itself | None. Cloud connectors and “read this URL” run on the provider’s servers | Nothing reaches the device to read or hold. | Uncovered |
| Private and incognito windows | The extension, only if browser policy allows it there | Extensions are off in incognito by default. | Usually uncovered |
| AI apps on the desktop | |||
| ChatGPT, Claude and Codex apps on the Mac | The agent reads the message box at the moment of sending and holds the send while it is checked. A file from the attach button is checked before the app opens it | Only these three apps, each switched on separately. A file attached a second time is not read again. | Covered |
| ChatGPT, Claude and Codex apps on Windows | The agent reads the message box at send, checks pasted files and screenshots, and stops the app opening a sensitive file | A send is held only where its gesture is proven, so ChatGPT sends are checked as they go. | Covered |
| Coding assistants: Copilot, Cursor, Claude Code | Inventory of what is installed, when switched on | Nothing typed into an editor or a terminal assistant is read. | Uncovered |
| Agents and MCP tool calls | Inventory of configured MCP servers, when switched on | What an agent sends through a tool is not inspected. | Uncovered |
| Everyday leaks beyond AI | |||
| Uploads to any website | The extension holds and reads an attached file as it does on AI sites. Personal email, file sharing, cloud storage, social and every other site are separate switches | Plain http sites and uploads inside embedded frames are not checked. Banking, health, government and union sites are never inspected. | Covered |
| Outgoing mail in Outlook | An add-in inside Outlook checks the body, subject, attachments and recipients when Send is pressed, on the device | If Outlook’s own time limit runs out, the mail goes with a visible notice that it was not checked. | Covered |
| Gmail in the browser | The extension checks the message being sent: body, subject, attachments and every recipient, Bcc included | Only the message being sent. The inbox and threads are never read, and the Gmail app on a phone is not covered. | Covered |
| USB sticks and external drives | The agent checks each file as it is written to the drive, on Mac and Windows | A check that cannot finish in time lets the copy through and records it. Network shares and disk images are not watched. | Covered |
| Dropbox, OneDrive and Google Drive sync folders | The agent checks a file as it is saved into the folder, on the device. Each service is its own switch | Files already in the folder are never scanned. A check that cannot finish in time lets the file through and records it. | Covered |
| Printing, AirDrop and Bluetooth | None yet | Not checked by the agent or the extension. | Uncovered |
| Outside the managed laptop | |||
| LLM API calls from internal tools | None | The traffic never touches a browser or the agent. It needs a network-side control. | Uncovered |
| AI inside Office, Workspace, Notion and Slack | Microsoft Purview and Workspace DLP, where the document is | A decision rather than a backlog item. The questions below give the reasons. | Covered elsewhere |
| Phones and tablets | None | Mobile browsers take no extensions, and mobile AI and mail apps are opaque. | Uncovered |
| Personal and unmanaged devices | None | A boundary we chose. A product that reached onto them would be a worse one. | Out of scope |
Supported sites
Each site has its own list of selectors for the message box and the send control. The first ten have been checked against the live pages. The other nine were added more recently and bind through the structural fallbacks until they have been, and the console shows which selector each site is running on.
The lists travel inside the signed policy, so a corrected selector reaches every device with the next policy rather than waiting for an extension release.
Checked against the live site
Poe is an aggregator. Events record the destination as poe.com, because which model received the text is chosen inside the page where the browser cannot see it.
Binding on fallback selectors for now
Duck.ai is covered at duck.ai only, not when opened from DuckDuckGo search. HuggingChat is not covered, because it lives on a path of huggingface.co and the extension would have to treat the whole developer platform as an AI chat site to reach it.
Sizing the rest of your stack
Itzal now reaches desktop AI apps, email, drives and uploads as well as the browser. It is still one control, and where it does not reach, something you may already run does. Switching that on now is better than waiting for us.
Mobile browsers take no extensions. MDM app policy and conditional access are the controls that reach a phone, not endpoint DLP.
Purview sensitivity labels and Workspace DLP govern what Copilot and Gemini may read, inside the tenant where the document lives.
Managed browser policy can keep AI tools to the covered browsers and allow the extension in incognito, or turn incognito off.
Out of scope by design. Itzal does not reach onto a device your company does not manage, and a product that did would be a different one.
The same assistants inside other products are not covered
The web versions of Grok, Meta AI, Copilot and Gemini are on the supported list. Notion AI and Slack AI are governed by the switches inside Notion and Slack, which decide whether a workspace is indexed by a model at all.
How it is measured
Each device reports, per supported site, how many page loads bound the message box and the send control, and which selector it took. A site that falls back to a weaker selector shows up before it breaks, rather than after detections quietly stop.
The coverage rate is shown with the number it divides by. If no seat count is set, the console says so, because a company where half the staff never got the agent would otherwise read 100%.
Reported by each device with its heartbeat
Fully covered
96.4%
of 1,900 licensed seats
Seats with no device
38
invisible to every other figure
Out-of-date policy
11
devices on an older bundle
Sent unchecked
23
17 too slow, 6 with no agent
A site stays hidden until five devices have reported it, so one person’s visits never become a row.
Not covered: cloud connectors, read-this-URL, mobile, LLM APIs, coding assistants, productivity suites, printing.
Partly: unlisted AI tools, Safari attach buttons.
Illustration of the console’s Coverage page. The layout and labels are the product’s; the figures are invented.
The detail
A short status hides the part a security team needs most, which is what is still missing. These are the answers to the questions reviewers ask about each row.
A file chosen, dropped or pasted into a supported AI site is taken off the page, read in full on the device, and handed back only if the policy allows it. There is no size limit. Itzal reads plain text, CSV, JSON and source; Word, Excel and PowerPoint, old and new formats, with every sheet and slide and the speaker notes; PDFs, including scanned pages when OCR is on; and ZIP archives nested up to three deep.
A file is judged by its bytes rather than its extension. Encrypted files, 7z, RAR and gzip archives, fax-encoded and JPEG 2000 scans, and text saved as UTF‑16 are not read. They are blocked by default, and an administrator can relax each reason to a warning or a log entry.
With Text in images licensed and switched on, a pasted screenshot, and any picture inside a Word, Excel or PowerPoint file, is held, read on the device, and judged on what was found in it. Nothing is uploaded to be read.
With it off, the image policy still lets you warn on or block every image pasted into an unsanctioned tool, but nothing looks inside the picture, so those events carry no findings. An image the engine could not read is reported unscanned, never clean.
A typed or pasted message is scanned up to 1 MB in Chrome, Edge and Firefox, and up to 512 KB in Safari. Past that the rest is not read, the person is told that only the beginning was checked, and the partial scan is counted in the console’s figures. Attached files are not subject to this limit.
Only the message box, at the moment someone presses Return or clicks Send, and the files and images they paste, drop or pick in the app’s file dialog. On the Mac it also reads the labels of the attachment chips beside the message box, to count what is attached. A file chosen through the attach button is checked before the app can open it. What is read is checked on the device, and only a masked record leaves it.
It never reads window titles, keystrokes, the screen or the conversation, and it looks at the clipboard only at the moment of a paste or drop. Each app is off until it is switched on in the console. On a Mac without device management, setup walks the person through the permissions step by step.
Itzal keeps a signed list of personal email, file sharing, cloud storage and social sites, and each of those kinds is its own switch. One more switch covers every other website. Each is off until an admin turns it on and confirms staff were told. On a covered site, a file attached, dropped or pasted is held and read in full, as it is on an AI site, and at the deeper setting text typed into a form is checked when the form is sent.
Banking, health, government and union sites are never inspected at any setting, so an employee sending their own medical file to their doctor produces no event. Password, one-time-code and card fields are never read. Plain http sites and uploads inside an embedded frame are not checked, and Firefox can withhold the site access the check needs.
Only the message being sent: its body, subject, attachments and recipients, Bcc included. In Outlook an add-in inside the client does the check, with the detection engine running in the add-in on the device. In Gmail the browser extension does it. Recipient addresses are read to tell inside the company from outside, and are masked in the record. The inbox, other folders, contacts and the calendar are never read.
If Outlook’s own time limit for an add-in runs out, the mail is sent with a visible notice that it was not checked.
The agent reads the file being written, at the moment it is written, and nothing else on the drive or in the folder. When the action is block and the check finds something in time, the copy is stopped. When the check cannot finish in time, the copy goes through and is recorded, because hanging the machine would be worse.
On a Mac a sensitive copy is removed from the drive just after it is written, so someone who pulls the drive out in that moment leaves with it, and the deleted bytes may still be recoverable. A Mac can instead be set to refuse every write to a drive that is not approved, which reads nothing. Approved drives are named by vendor and product id.
Copilot, Cursor and Continue run inside an editor, and Claude Code runs in a terminal, where no browser mechanism reaches. Vendor logs do not close the gap either: GitHub’s Copilot audit log excludes prompts, generated code and the files used as context. Until there is an integration, the agent can report which assistants and MCP servers each device has configured, which tells you where to look. It does not read anything typed into them. Claude Code is next on our roadmap, then the Codex, Cursor and Copilot agents.
A hostname and a count, and nothing else. A page counts as an AI chat only when it has a message box, a send control and AI wording in its own interface. Discovery never reads page text, the title or anything typed, and reports one row per device per host per day, suppressed until enough devices have seen it.
It is off until your organisation turns it on, and the setting travels in the signed policy. A host on that report is one where nothing is inspected, which is the point of the report. Finding the AI tools already in use.
Because a browser extension would cover it badly. What Copilot in Word or Gemini in Docs reads is the document, fetched on the provider’s servers, so an extension would see only the prompt typed into the side panel and record a clean send for the request that exposed the file.
Watching that panel would also need script access to the whole mailbox or document store, the largest permission in the product. Purview and Workspace DLP sit where the content is, so the console marks these rows as covered elsewhere rather than planned. A row marked planned invites a team to wait for us with the Purview rule still switched off.
Nearly. Safari has a signed build that can be deployed by policy, like the other two. The attachment readers are the same code in all three builds, but handing a held file back to the page has been proven on Chromium and Firefox and not yet measured in Safari. A file chosen through an attach button that a site builds in script may be missed there. Edge uses the Chrome build.
Read next
One explains why a silent gap is worse than a known one. The other is where your team reads coverage day to day.
A surface a security control does not inspect, and why the dangerous ones look exactly like having nothing to report.
Read the articleFindings by team and framework, the policy editor, and coverage health per device, built on records that hold no message text.
See the consoleBook a demo
Bring the AI tools your staff actually use
Forty-five minutes with one of our engineers. We will go through the rows above that say uncovered and tell you which of them matter for your estate.
Book a technical demo