Privacy
The short version
PolterTab runs entirely on your computer. We have no servers, no accounts, no analytics, and no way to see what you browse. Nothing about your browsing, pages, URLs, keystrokes, or screenshots ever leaves your machine.
How data moves
PolterTab has two halves: an MCP server (a Node.js process you run) and a Chrome extension. Your AI agent sends commands to the server over stdio; the Chrome extension connects to the server over localhost (port 7822 by default), a port the server opens only on this machine (127.0.0.1 and ::1), and the server relays commands to it; the extension performs them in your browser and returns the result the same way back. The server’s /status endpoint answers only loopback callers.
What the AI agent itself does with page content is governed by that agent’s own privacy policy (e.g. Anthropic’s for Claude). PolterTab just hands the content to the client you connected.
The one network call, exactly
The MCP server checks registry.npmjs.org for a newer PolterTab version, at most once per day, cached in ~/.poltertab/update-check.json, never blocking any operation. The request contains the package name, nothing about you or your browsing. Set POLTERTAB_NO_UPDATE_CHECK=1 to disable it entirely; version-skew detection between server and extension is local and keeps working.
The Chrome extension makes no outbound network requests. Its only connection is the localhost WebSocket to your own server.
There is no telemetry, no crash reporting, no analytics of any kind, in either half.
What is stored, and where
Everything PolterTab persists lives in ~/.poltertab/ on your disk (move it with POLTERTAB_HOME):
navigation_memory/: per-domain notes the agent saves about how to navigate a site (browser_save_site_memory).downloads/: page data you asked a tool to save to a file.config.json: your settings, including the upload allowlist.update-check.json: the cached version-check result.
The extension stores two things in Chrome’s local extension storage: the WebSocket port number and its own tab-to-session bookkeeping, both local, neither leaves Chrome. Delete the folder and remove the extension, and PolterTab is gone.
What the extension can access, and why
The extension asks for broad permissions because you may point your agent at any site; it cannot know in advance which ones. Concretely:
- All websites (
<all_urls>): the content script must be able to read and act on whatever page you direct the agent to. It does nothing on pages the agent isn’t working with. - Tabs and tab groups: to open, switch, and track tabs, and to gather agent tabs into a visible “PolterTab” group so you can see what’s being touched.
- Debugger: used for one feature only, intercepting a page’s file-picker dialog during
browser_upload_file. Attached to the one tab for the duration of the upload, then detached; Chrome shows a banner the whole time. - File uploads are refused unless the file is inside a folder you listed in
config.json(upload_allowed_paths).~/.ssh,~/.aws,~/.gnupg,~/.config, home dotfiles, and system directories are blocked regardless.
PolterTab cannot interact with chrome:// pages or the Chrome Web Store; Chrome forbids it, and the server reports that cleanly instead of trying.
Changes
This policy changes only via a commit to the public repo, so the history of every change is in git: github.com/abhinav162/poltertab.
Questions: open an issue on the repo.
← Back to home