Last updated: July 10, 2026
HTR NControl ("the Extension") is an open-source browser extension that records user interactions with web pages to generate step-by-step documentation. This privacy policy explains what data the Extension collects, how it is stored, and your rights regarding that data.
The Extension captures the following data locally on your device while you are actively recording a session:
| Data Type | Description | When Collected |
|---|---|---|
| Screenshots | PNG images of the visible browser tab | At recording start, on each interaction, and on user request |
| Click events | Element tag, text content, CSS selector, and attributes | When you click interactive elements (buttons, links, inputs, etc.) |
| Input events | Form field values, labels, and selectors | When you type in form fields (sensitive values are automatically masked) |
| Navigation events | Page URL and title | When you navigate to a new page |
| Audio narration | WebM audio recordings (optional) | When you enable audio recording and speak during a step |
| Annotations | Text notes you add between steps | When you manually insert an annotation |
| Tab metadata | Tab IDs, titles, and URLs | Throughout the recording session |
All recorded data is stored locally in your browser using:
HowToRecorderDB) — Primary storage for screenshots, steps, annotations, and audio blobsThe Extension automatically detects and masks sensitive form field values before they are stored. This includes:
<input type="password">)autocomplete="cc-number", cc-csc, etc.)api_key, token, secret, ssn, otp, 2fa, etc.)
Detected sensitive values are replaced with ******** at the time of capture. The
Extension sets an isSensitive flag on these steps, and exports display
"[Sensitive data masked]" in place of the actual value.
The Extension may communicate over the network only in the following limited, local scenarios:
When remote control is enabled, the Extension connects to a WebSocket server running on your own
machine (ws://127.0.0.1:3845). This server is:
The Extension can optionally connect to a local native messaging host (com.htrcontrol.host)
for remote control. This communication stays entirely on your device.
The Extension makes zero connections to external servers, APIs, or third-party services. There is:
The Extension requests the following browser permissions:
| Permission | Purpose |
|---|---|
activeTab | Capture screenshots of the current tab |
tabs | Track tab navigation and manage multiple tabs |
contextMenus | Provide right-click annotation options |
downloads | Save exported files (JSON, Markdown, ZIP) to your device |
storage | Store extension settings locally |
scripting | Inject content scripts into newly opened tabs |
sidePanel | Display the main user interface |
nativeMessaging | Connect to the local htrcli native host (optional) |
debugger | Generate PDFs via Chrome DevTools Protocol (optional) |
host_permissions | Inject content scripts to track interactions on any page you visit while recording |
You can export your recorded sessions at any time using the Export feature in the side panel. Available formats:
Exports are triggered manually by you. The Extension never automatically exports or uploads your data.
Your recorded sessions remain in your browser's IndexedDB until you:
The Extension does not automatically delete or expire your data.
The Extension is not directed at children under 13. We do not knowingly collect information from children.
We may update this privacy policy from time to time. Changes will be reflected in the "Last updated" date at the top of this document. Continued use of the Extension after changes constitutes acceptance of the updated policy.
HTR NControl is open-source software. You can review the complete source code to verify all claims made in this privacy policy:
src/contentScript/inputHandler.ts — Sensitive field masking logicsrc/utils/sensitiveFields.ts — Sensitive field detection patternssrc/background/index.ts — Screenshot capture and data storagesrc/manifest.ts — Extension permissionsIf you have questions about this privacy policy or the Extension's data practices, please open an issue on our GitHub repository.