Back to home

Privacy policy

Open Slate collects nothing. No analytics, no telemetry, no identifiers, and no account. Nothing you do on the page is sent anywhere.

Last updated 29 August 2026

The short version. Everything Open Slate stores - your tiles, settings, notes, tasks and wallpapers - stays on your own device. The extension has no server, no analytics and no content scripts, so it cannot see the sites you visit. The only network requests it ever makes are for widgets you added yourself, and each one needs a permission you granted.

What is collected

Nothing. There is no analytics, telemetry or crash reporting of any kind, no advertising or tracking library, and no identifier assigned to you or your installation. No data is sold or transferred to anyone.

What is stored, and where

All of it locally, on the device you are using:

  • Your settings, tiles, widget layout, notes and tasks are held in chrome.storage.local.
  • Wallpaper images and videos, and any custom tile images, are held in IndexedDB. They are never uploaded.
  • If you switch on Chrome's own settings sync, your preferences travel through your Google account like any other Chrome setting. That is off unless you enable it, per device, and it is handled by Chrome rather than by us.

You can export or erase everything at any time from the extension's settings, and uninstalling removes all of it.

Browser data the page reads

Some widgets show your own browser data: recently closed tabs, open tabs, bookmarks, history, downloads and most-visited sites. The AI usage widgets additionally use scripting, to read a figure from a tab on the provider's own site. These use optional permissions that are requested at the moment you add the widget that needs one, and declining leaves the rest of the page working.

That data is read to draw the page in front of you and nothing else. It is never transmitted, never aggregated, and no profile is built from it.

The toolbar button

Clicking the toolbar button lets Open Slate read the address and title of the current tab, using the activeTab permission, so it can add that page as a tile. Nothing is read until you click, nothing is sent anywhere, and the content of the page is never read.

Network requests

Open Slate makes no request on its own behalf. Every request below belongs to a widget you added, and needs a host permission you granted for that specific site. None carries an identifier or an account of ours, and responses are cached locally to keep the number of requests low. The one exception to cookies is the usage widgets, which read your own signed-in session on the provider's site (see the last row).

RequestSent byWhat it contains
api.open-meteo.com Weather widget The coordinates of the place you chose. No account or API key.
get.geojs.io or ipwho.is Weather widget, during setup Nothing but the request itself, answered with an approximate city. Called once while the widget is being set up, and not again once a place is set.
api.coingecko.com Crypto widget A list of coin ids and a currency code.
fonts.googleapis.com, fonts.gstatic.com Fonts you add The name of a font you chose to add from Google Fonts, plus your IP address, as any site using Google Fonts sends. Nothing is requested until you add one, and the twelve built-in fonts never touch the network.
Feed and calendar addresses Feeds and calendar widgets Only the addresses you entered yourself, fetched one origin at a time with your approval for each.
api.spotify.com, accounts.spotify.com, i.scdn.co Spotify widget A token Spotify issued to you, sent back to Spotify to ask what is playing or was last played, to list your own devices, or to pass on a play, pause or skip, plus the album art that comes with it. Nothing is sent to us or to anyone else.
claude.ai or chatgpt.com Claude and ChatGPT usage widgets The provider's own usage endpoint, requested inside a tab on that site using the session you are already signed in to, so it does carry your cookies for that site, exactly as opening the page yourself would. Nothing is sent to us or to anyone else, and the reading is stored locally.

On the Spotify widget

Spotify grants this kind of access per registered application, and its free tier covers only a handful of named testers unless a company applies for a commercial allowance. Rather than put everyone inside one registration we do not qualify for, the widget walks you through creating your own, in a page built into the extension. The client ID it produces is stored on your device and sent to nobody but Spotify. The page never asks for a client secret, because the sign-in method used here does not need one.

Connecting then opens Spotify's own consent screen, in a window the browser manages. We never see your Spotify password, and you choose there what the widget is allowed to do.

Spotify hands back a token, which is stored on your device and used for one job: asking what is playing or was last played, listing the devices on your account so playback can resume on one, and passing on the button you pressed. It goes to Spotify and nowhere else. There is no client secret in the extension, and no server of ours in between. Disconnecting from the widget deletes the token, and the access stays yours to revoke from your own Spotify account at any time.

The widget asks Spotify only while the new tab is open in front of you; a tab sitting in the background makes no requests. Controlling playback is a Spotify Premium feature, and it reaches whichever device is actually playing, such as your phone or desktop app, not only this browser.

On the AI usage widgets

The Claude and ChatGPT widgets show the limits those services already show you: what you have spent, what is left, and when it resets. They work without an API key by reading the account you are signed in to.

When you press refresh, the extension opens or reuses a tab on claude.ai or chatgpt.com, asks that page for its own usage figures, and closes the tab again if it opened one. That needs the scripting and tabs permissions and access to that one site, all requested together at the moment you add the widget, and none of it granted at install.

Only the usage numbers come back: percentages, amounts and reset times. Your conversations, prompts and account details are not read, and the reading is stored on your device like every other setting. No usage data is sent anywhere, including to us. If you never add these widgets, the extension never touches either site.

On location

Open Slate never asks for your location and never calls the browser's geolocation API - the geolocation permission is not declared at all. To place itself, the weather widget performs a single city-level lookup based on your IP address, using one of the two services listed above. Those services see your IP address, as any website you visit does; what comes back is an approximate city, which is stored locally and never sent anywhere.

If you would rather not make that lookup, the widget falls back to your browser's timezone, and you can always type a town in by hand - which is also how a wrongly detected place is corrected.

Search

Nothing is sent anywhere as you type. Suggestions come from your own tabs, bookmarks, history and tiles, matched on your device. Submitting a search navigates to the engine you chose, exactly as the address bar would.

Remote code

All of the extension's code ships inside its package. There are no content scripts, no scripts loaded from a CDN, and nothing is evaluated at runtime. The responses above are parsed as data and never executed.

Children

Open Slate is not directed at children and collects no personal information from anyone, of any age.

Changes

If this policy ever changes, the updated version will be published on this page with a new date, and its history is visible in the extension's public repository.

Contact

Questions or concerns about privacy can be raised as an issue on the project's issue tracker, or reported privately through its security advisory form.