# Privacy Policy — Vector Bookmark
**Last updated:** 2026-05-08
Vector Bookmark is a Chrome extension that builds a personal, **fully local** semantic
index of the pages you read. This policy explains exactly what the extension touches and
what it does not.
## TL;DR
- All your browsing data stays on your machine.
- Vector Bookmark does not have any servers, analytics, or tracking.
- The extension talks only to a local daemon (`vbmd`) running on `127.0.0.1:7532` on
your own computer.
- If you optionally configure an LLM/embedding provider (e.g. OpenAI-compatible API),
page text you choose to summarize or tag is sent to that provider — entirely under
your control.
## What data the extension collects
When you spend at least 10 seconds on a page (configurable), the extension captures:
- The page **URL**, **title**, and **HTML meta tags** (description, keywords, og:*, author).
- The **dwell time** (time the page was visible).
- On manual indexing, the **page body text** extracted with Mozilla Readability.
- Optional **tags** you assign to a page yourself.
The extension never captures:
- Form inputs, password fields, or anything inside ``.
- Pages opened in **Incognito** windows (the manifest declares `incognito: "not_allowed"`).
- Pages whose hostname matches your user-managed blacklist.
## Where data is stored
All captured data is sent over `localhost` HTTP to the `vbmd` daemon, which stores it in a
**local SQLite database** under your operating system's user directory:
- Linux: `~/.local/share/vbm/`
- Windows: `%APPDATA%\vbm\`
- Custom: wherever `VBM_DATA_DIR` is set (e.g. inside a Docker volume).
The database never leaves your machine.
## What data is shared with third parties
By default: **none**.
If — and only if — you configure an external embedding or LLM endpoint by setting
`VBM_EMBED_URL` and `VBM_EMBED_API_KEY` in the daemon environment, the daemon will send
text to that endpoint for the following operations you trigger explicitly:
- Generating vector embeddings for indexed page text.
- Generating LLM summaries (when you choose the `llm_summary` ingest mode in the popup).
- Suggesting tags (when you click the ✨ button next to the tag input).
You choose the provider, you provide the API key, and you control which mode is used per
page. No data is sent to any third party automatically.
## Permissions and why we need them
| Permission | Why |
|---|---|
| `tabs`, `webNavigation` | Detect navigation events to start dwell timing. |
| `storage` | Save your settings (daemon host/port, dwell threshold, blacklist). |
| `scripting` | Inject the content script that extracts page text on demand. |
| `omnibox` | Provide the `@recall` omnibox keyword for semantic search. |
| `idle` | Pause dwell tracking when the system is idle. |
| `host_permissions: ` | The extension's purpose is recalling **any** page you read; it must observe all sites you visit (subject to your blacklist). |
## Your rights and controls
- **Pause capture:** stop the daemon (`systemctl --user stop vbmd` on Linux, or close the
process on Windows).
- **Block sites:** add hostname patterns to the user blacklist in the popup.
- **Forget specific pages:** call `DELETE /forget` on the daemon, or use the UI at
`http://127.0.0.1:7532/`.
- **Wipe everything:** delete the data directory listed above.
- **Uninstall:** removing the extension and stopping/uninstalling the daemon removes all
capture and access.
## Children's privacy
The extension is not directed to children under 13 and does not knowingly process their
data.
## Changes to this policy
Material changes to this policy will be reflected in this file with an updated date. The
file is versioned in the public GitHub repository, so the full history is auditable.
## Contact
Questions or concerns: open an issue at
.