Loupe is an open-source visual-feedback tool. It lets you inspect an element on a web page, attach a comment, and capture a screenshot or a short screen recording. It then sends that feedback to a Loupe backend that you or your organization control. This policy explains what data the extension handles and where it goes.
Contents:
The extension declares no content scripts and no host permissions. It never runs on a page by itself. It enters a tab only when you do one of these:
The same Show / hide Loupe on this page item works in the other direction too. On a site where Loupe is visible, it hides the site and removes the panel from the tab. While a site is hidden, the toolbar button and the comment items do nothing on it. Choose Show / hide Loupe on this page again to bring Loupe back.
Loupe also needs a project key and a user id before it starts. A project key names the Loupe project your feedback belongs to. A user id identifies you to that project. You enter both in the extension popup. If either is missing, Loupe does not start. It writes this message to the page's developer console:
[loupe] Set a project key and user in the extension popup first.
For the popup fields, see the browser extension guide and the popup fields reference.
The extension stores these values with chrome.storage. They stay in your browser:
projectKey: the project key you enter in the popup.user: the user id and display name you enter ({id, name}). If you leave the name blank, Loupe uses "Reviewer". The popup does not ask for an email address.apiBase: the API base, which is the URL of the Loupe backend that receives your feedback. It is optional.userHmac: an optional signature that your own backend computes from your user id. The backend checks it to confirm that requests really come from that user. See why userHmac is computed on the server.hiddenSites: the site origins you hid with Show / hide Loupe on this page, and whether each one is hidden.loupeIntent: a one-time note in session storage. It holds the tool to open after you choose a right-click item, and the time you chose it. Loupe deletes it when it starts on the tab. If Loupe does not start, for example because the site is hidden or the popup is not filled in, the browser clears it when you close the browser.While Loupe runs on a page, it also saves data in that page's own localStorage:
loupe:dock: panel state, such as dock position, theme, accent color, open tab, filters, sort order, launcher position and whether you finished the tour.loupe:project:<project key>: project settings you change in the panel. These include the environment URLs and, if you enter them, the local AI endpoint URL and model name.loupe:<project key>:<page>), replies (loupe:msgs:*) and reactions (loupe:rxn:*).For the full list of extension storage keys, see the storage keys reference.
/checkout?step=2. A query string can contain ids or tokens;role, aria-label, name, type, alt, href, placeholder, title), its position on the page, and selectors that locate it again (a CSS path, an XPath and any test id);chrome.tabs.captureVisibleTab. It then crops the image to the element or region you chose. It does not capture the full page. Any element marked data-loupe-redact is painted over in a solid color before the image leaves the page.getDisplayMedia). You choose what to share, and you can stop at any time. Recordings stop after 20 seconds. Loupe crops the video to the region you selected. Recordings have no audio. Redaction is not applied to recordings, so do not record content you do not want to share. Loupe never starts a recording on its own.For a field-by-field explanation, see what a comment captures.
The extension's background worker makes no network requests. The Loupe code that the extension adds to the tab can contact these destinations:
userHmac if you set one.localStorage on your computer./v1/models endpoint to list the available models. The request times out after 4 seconds.Loupe's authors do not operate a shared server and never receive your data.
activeTab: to run only on the tab you start Loupe on, and to capture a screenshot of that tab.scripting: to add the feedback panel to the current page when you start Loupe.storage: to remember your settings and hidden sites locally.contextMenus: to add the Loupe items to the right-click menu. You use them to start a comment from what you right-clicked, or to hide Loupe on a site.The browser removes the extension settings and hidden sites when you uninstall the extension.
Data in a page's localStorage stays until you remove it. You can remove only Loupe's keys and keep the site's own data, such as your login. In Chrome:
loupe: and press Delete.You should see the Loupe panel with its default layout and, in offline mode, no comments. Do not use Clear site data for this. It also signs you out of the site and deletes the site's own storage.
Feedback stored on your backend is controlled by you or your organization. Delete it there at any time, for example from the dashboard of the Loupe local server.
A website can include the Loupe SDK directly instead of you running the extension. That site chooses the configuration, and its own privacy policy covers it. Three differences from the extension matter:
data-loupe-redact are left out of the image.If this policy changes, the "Last updated" date above changes too. The revised version is posted at this URL.
To ask a question or make a request, open an issue at github.com/mohamed-ashraf-elsaed/loupe/issues.