Web Butler Back to home

Legal

Privacy Policy

Effective July 25, 2026 · applies to the Web Butler browser extension and butler.swerdlow.dev

The short version. Web Butler sends the pages you ask about, and the questions you ask, to the AI provider you signed in with (ChatGPT, Claude, or Grok). Your tasks, reports, and page alterations are stored in our database so they work across sessions. Data is stored under a random anonymous ID, not your name or email, but it is not otherwise anonymized. We do not sell your data, we do not run ads, and we do not track your browsing when you are not using the butler. You can wipe everything from Settings at any time.

1. Who we are

Web Butler is an open source browser extension built and operated by Ben Swerdlow. The full source code, including the server, is public at github.com/theswerd/web-butler, so everything described in this policy can be verified by reading the code. The extension talks to a service hosted at butler.swerdlow.dev.

This is an independent side project, not a company with a legal department. This policy is written in plain language and describes what actually happens, as accurately as possible.

2. What Web Butler does

Web Butler is an in-page assistant. You summon it on a page, type a request, and it uses the AI subscription you already have (ChatGPT, Claude, or Grok) to answer questions about that page, run errands in your tab, write long-form reports, and apply persistent page alterations you asked for. Every one of those features involves handling some of your data. This policy explains which data, where it goes, and how long it stays.

3. What we collect

Web Butler only handles data when you actively use it. Here is the complete list.

3.1 Your prompts and tasks

Every request you type into the prompt box is sent to our server and stored in our database as part of a task record. A task record includes the prompt text, the URL and title of the page you asked about, the activity feed of what the agent did, the outcome, and timestamps. Task history exists so you can review past work, retry failed tasks, and reference earlier tasks in follow-up requests.

3.2 Page content

When you send a request, a snapshot of the current page is included as context: the page URL, the title, a trimmed copy of the page HTML, and any elements you explicitly selected with the element picker. This is what lets the AI actually answer questions about the page in front of you. Page content is forwarded to your chosen AI provider and passes through the sandbox that runs your agent. It is not collected in the background; it is captured only for pages where you invoke the butler, at the moment you send a request.

3.3 Browser errands

When you ask the butler to do something in your tab, like filling a form or clicking through a flow, the agent drives the page through Chrome's debugger API behind a visible on-page cursor. During such a task the agent can take screenshots of the tab, read the page, and inspect the tab's network requests when the task requires it. That material is used as working context for the task and can appear in the task's stored activity feed. This only happens inside a task you started, and detaches when the task ends.

3.4 Reports and artifacts

Long-form outputs the agent produces, such as reports, tables, and drafts, are stored in our database so they survive reloads and can be reopened later from the Artifacts view.

3.5 Page alterations

Persistent page alterations you request, like hiding sponsored posts on a site, are stored in our database with a name, description, the script itself, and the URL patterns they apply to. They are also registered locally in your browser through Chrome's user scripts API so they run on later visits.

3.6 Account and settings

Web Butler uses anonymous accounts. When the extension first connects, our server issues a random identifier and a session token. There is no email, no name, no password, and no sign-up form. Everything we store is keyed to that random ID. Your provider choice and a small amount of state are stored alongside it. Purely cosmetic settings, like theme and accent color, stay in your browser's local extension storage.

3.7 Provider credentials

Signing in to ChatGPT, Claude, or Grok happens through each provider's own device authorization flow. The resulting credentials are stored inside your personal sandbox virtual machine, not in our database. We never see or store your provider password.

3.8 Server logs

Like almost every web service, our infrastructure providers produce operational logs (request paths, status codes, timestamps, IP addresses as part of standard HTTP handling). We use them for debugging and abuse prevention, not for profiling.

4. What we do not collect

5. Where your data goes

When you send a request, your data moves through a short, fixed chain. Each hop exists to make the product work, and nothing else is in the loop:

HopWhat it isWhat it handles
CloudflareHosts our API and this websiteAll requests between the extension and our service
Neon PostgresOur databaseTasks, reports, alterations, anonymous account records
FreestyleRuns your personal sandbox VMExecutes your agent; holds your provider credentials and per-task working files
Your AI providerOpenAI, Anthropic, or xAI, whichever you signed in withReceives your prompts and page context to produce answers

The most important hop is the last one. Your prompts and the page content you ask about are processed by the AI provider you connected, under their terms and privacy policy, on the subscription you already have with them. Web Butler does not add any AI provider you did not choose.

6. How we use your data

We use the data described above for exactly one purpose: making Web Butler work for you. Concretely, that means running your tasks, keeping your history and artifacts available across sessions, reapplying your page alterations, and debugging when something breaks. We do not use your data to build advertising profiles, we do not sell or share it for marketing, and we do not use it to make decisions about you.

Because the project is open source and the operator can access the database, treat Web Butler like any small hosted service: do not run tasks over content you would not be comfortable existing in a database row. Stored data is keyed to a random ID rather than your identity, but the content itself, such as prompts and page snapshots, is stored as-is and is not further anonymized.

7. Data retention and deletion

Stored data stays until you delete it. There is currently no automatic expiry. You are in control of deletion at several levels:

Uninstalling the extension removes all locally stored data and registered user scripts from your browser.

8. Chrome permissions, explained

The extension asks for several Chrome permissions. Each one maps to a visible feature:

PermissionWhy
Host accessThe butler is an overlay you can summon on any site, so it cannot list hosts in advance. It only touches pages where you invoke it.
storageSettings, session token, and local task state.
sidePanelReports and live task activity open in the side panel.
userScriptsRuns the page alterations you asked for on the sites you chose.
tabsApplies alterations to matching open tabs and routes results back to the right tab.
debuggerDrives browser errands with the visible cursor; attached only during a task you started.
notificationsOne notification when a task finishes while the panel is closed.
scriptingInjects the assistant into tabs that were already open when the extension installed or updated.
contextMenusThe right-click "Ask Web Butler" shortcut for selected text.
alarmsWakes the extension to re-attach to a still-running task if Chrome suspends it.

9. Security

All traffic between the extension, our server, and the sandbox uses HTTPS. Each user's agent runs in its own isolated virtual machine, and API routes enforce that you can only read and manage your own tasks, reports, and alterations. Provider credentials live in your sandbox rather than the shared database.

Honesty section: this is a small open source project. It has not undergone a formal third-party security audit. The code is public precisely so anyone can inspect how data is handled, and security reports are very welcome through GitHub.

10. Cookies and local storage

The extension stores its session token and settings in Chrome's extension storage, which is not readable by websites. The butler.swerdlow.dev homepage sets no cookies and runs no analytics. Your AI provider's own pages, used during sign-in, are governed by their own cookie policies.

11. Children

Web Butler is not directed at children under 13, and we do not knowingly collect data from them. Since accounts are anonymous we have no way to verify age; if you believe a child has used the service and want associated data removed, contact us below.

12. Your rights

Depending on where you live, you may have legal rights to access, correct, export, or delete your data. Because accounts are anonymous, the practical route for all of these is the same: use the in-product deletion controls described in section 7, or contact us with enough detail to locate the data in question. We will honor any reasonable request; there is no data we have an interest in keeping against your wishes.

13. Changes to this policy

If the way Web Butler handles data changes, this page will be updated and the effective date at the top will move. Meaningful changes will also be visible in the project's public commit history, which is a level of transparency most privacy policies cannot offer.

14. Contact

Questions, deletion requests, or security reports: open an issue at github.com/theswerd/web-butler/issues or reach the author at @benswerd.