Last updated: 19 September 2026
Privacy
Freehold collects nothing and sends nothing anywhere.
What is stored
The text you highlight, the notes you write, and the URL and title of the page you highlighted on. That is the whole list, and it is all in one SQLite file on your own computer.
Where it goes
Nowhere. There is no account, no server, no analytics, no crash reporting and no telemetry. The extension makes no network requests of any kind — it talks only to a program on your own machine, over the browser’s native messaging channel.
You can confirm this: the extension requests no host_permissions, so it has no ability to send your data to any site even if it tried.
The two feedback links are the one exception, and only when you click them
“Report a bug” and “Request a feature” at the bottom of the library open github.com in a new tab. The extension still makes no request itself — the browser does, because you clicked a link, and you can read the whole URL in the address bar before you submit anything.
Those links carry the Freehold version and, for a bug report, your browser’s user agent string, so the form arrives with the product and version already filled in rather than asking you for them. Nothing from your library travels with them — no highlights, no notes, no tags, no page titles and none of the URLs you saved. The parameters are a version number and a user agent, and that is all. GitHub will of course see your IP address, as it would for any site you visit.
If you would rather not send even that, do not use the links; nothing else in the extension reaches the network.
Permissions and why each is needed
| Permission | Why |
|---|---|
nativeMessaging | To talk to the local host that owns the database. This is the only channel out of the extension. |
activeTab | To read the URL and title of the tab you are on, when you open the popup. |
Opening the popup is what grants activeTab, and the grant ends when you navigate away.
The content script runs on http and https pages so it can restore highlights. It reads page text in order to find them, and that text never leaves the machine. That match pattern is what makes Chrome show “read and change all your data on all websites” when you install — the extension declares no host_permissions of its own, but a content script on every page earns the same warning, and it should.
Deleting it
Delete the file.
rm ~/Library/Application\ Support/Freehold/freehold.db*Removing the extension leaves the database in place, on purpose — uninstalling a browser extension should not destroy your notes.
Questions
Open an issue at github.com/krafterlabs/community/issues.
Freehold
A web highlighter that keeps your notes in one SQLite file on your own machine, shared across every Chromium browser you use.
Newsreader and IBM Plex under the SIL Open Font License 1.1