Plain-English privacy

Nothing leaves your device.

Simply Tab Manager Pro has no server, no account, no analytics and no telemetry, and it makes no network request of any kind.

Last updated: 26 August 2026 · Applies to version 1.0.0

Privacy Policy — Simply Tab Manager Pro

Simply Tab Manager Pro is a Chrome extension that puts every tab you have open into one searchable grid and lets you act on the tabs you pick. Everything it reads and everything it stores stays on your own computer. There is no server to send anything to, no account to sign in to, no analytics, no telemetry, no crash reporting and no advertising identifier. We do not collect, transmit, sell or share any of your data.

Nothing leaves your device

  • The extension makes no network request of any kind — not while you use it, not in the background, and not after you remove it. It works with the network disconnected, which is why manifest.json declares "offline_enabled": true.
  • The only addresses the code ever builds are chrome-extension:// ones, for its own pages and for Chrome's local favicon endpoint. Both are inside the browser.
  • It asks for no host permissions — not one site, not <all_urls> — and it ships no content script. It cannot read, alter or even see the contents of any page you visit. It reads the tab strip, never what is inside a tab.
  • chrome.storage.sync is not used anywhere. Nothing about how you use this follows you to another computer or another Chrome profile.

What the extension can see

The tabs permission gives it the title and address of every open tab, in every ordinary window, updated live. That is the product: the grid cannot list, search, find repeats in, or jump to a tab it is not allowed to know about. Full addresses are held in memory while the grid is open and are dropped when it closes. What is written to disk is set out further down this page.

Why Chrome says “Read your browsing history”

At install, Chrome shows the tabs permission with the warning “Read your browsing history”. That wording is Chrome's, it is the same sentence for every extension that asks for tabs, and it is worth being precise about what it does and does not mean here.

What it does mean. Tab titles and addresses are browsing information. While this extension is running it can see the title and address of everything you have open, together with the short list of recently closed tabs Chrome keeps for its own use.

What it does not mean.

  • It is not your history file. history is a separate permission, it is not requested at install, and nothing in this build calls the history API. A page you visited and closed last Tuesday is not visible to the extension.
  • It is not a record. Full addresses live in memory while the grid is open and are dropped when it closes. The only thing written to disk that describes what you have open is the fast-open cache, and that stores hosts — never full addresses — as set out below.
  • It goes nowhere. There is no server and no network request to carry it anywhere.

Every permission, and what it is for

  • tabs — the grid itself: listing, searching, finding repeats, selecting and acting on open tabs. It can see the title and address of every open tab. Chrome shows this as “Read your browsing history”, described above.
  • tabGroups — draws each tab group with its own name and colour, and writes group membership when you gather a selection into a group.
  • storage — the three stores described in the next section. Only this extension's own data.
  • favicon — site icons, read from Chrome's own local favicon endpoint. It is a local lookup: no request leaves the browser, and a site with no stored icon simply falls back to a letter tile.
  • sessions — puts a closed tab back with its history, so Back still works after an undo. It reads Chrome's list of about 25 recently closed tabs, and only at the moment you undo.
  • alarms — one maintenance job, run weekly, which prunes stale window labels. Alarms survive the service worker being suspended; timers do not. It sees nothing.
  • sidePanel — offers the same grid in Chrome's side panel. It sees nothing.
  • contextMenus — one entry, on the toolbar icon only: Open in a full tab. It is not a page menu and never appears on a web page.

Deliberately not requested: <all_urls> or any other host permission, scripting, activeTab, cookies, downloads, webRequest, declarativeNetRequest, management, identity, clipboardRead, unlimitedStorage, system.display, bookmarks and history. There are no optional permissions. There is no content script in the package, so no code of ours ever runs inside a page you visit.

Where things are kept

Three stores, three lifetimes. Nothing else on your machine is touched.

  • chrome.storage.local — on disk, until you clear it or remove the extension. Holds your settings, any windows you have stashed or brought over from a backup file, the memo that lets a window keep a label across a restart, and one flag recording that you have seen the latest “what changed” note. Settings are preferences only — no tab ever appears in them.
  • chrome.storage.session — memory only, never written to disk, emptied when Chrome quits. Holds the order your windows were last focused in (up to 50 window ids — numbers, not addresses), the label and colour of windows that exist right now, the last ten operations so “put back” still works after the panel has closed, and the number last painted on the toolbar icon. An undo record holds the id, address, title, position, and pinned and muted state of each tab the action touched, because that is what putting them back requires — and it deliberately dies with the browser.
  • localStorage, on this extension's own origin — on disk. Holds exactly two things: a mirror of nine appearance values (theme, light and dark theme, accent, density, layout, reduced motion, and the panel's width and height) so the first frame is painted in your colours instead of flashing white, and the fast-open cache described below. The appearance mirror contains nothing about your tabs.

Window labels. Chrome hands out fresh window ids every time it starts, so a label stored against an id would be lost by morning. Instead each memo record holds the label, the colour, a timestamp, and a signature built from the set of hosts that window's tabs were on — hosts only, no paths, no query strings, no titles. It is capped at 100 records, the weekly job drops anything untouched for 90 days, a window is re-adopted only when its hosts and a stored record's hosts overlap by 60% or more, and an incognito window never contributes to it at all.

Stashed windows. A window you stash yourself, or one brought over from a backup file you choose to import, is stored with the address and title of each of its tabs, because that is what reopening a window requires. Only windows you stash or import are stored this way, and they stay on this device like everything else.

The fast-open cache, in full

This is the one thing written to disk that describes what you have open, so here is precisely what it contains.

Why it exists. Asking Chrome for your tabs takes 15–30 ms to answer. The cache lets the grid paint on the first frame from what was there last time, then reconcile against the live answer the moment it lands. It is the difference between a panel that opens full and one that opens empty.

What is written, per window and per tab:

  • The window id, its state flags, and any label and colour you have given it.
  • The tab id, and its flags: pinned, active, audible, muted, discarded.
  • The hostnews.example.com — and nothing else of the address. The path, the query string and the fragment are not written. No full address is ever stored.
  • The title, cut to 60 characters. The rest of the title is not written.
  • Position, which is implied by the order of the entries rather than stored.

The host alone is enough, because a favicon is keyed by origin and a tile reads correctly from a host and a short title. The full addresses arrive 15–30 ms later with the live query and are never written down.

Incognito windows contribute nothing at all — not even their existence. The write loop skips a window carrying the incognito flag before it reaches any of its tabs, so an incognito window is not in the cache as a window, a tab, a host, a title, an id or a count.

Limits.

  • It expires after 30 minutes. An older cache is rejected on its timestamp and overwritten, so the grid falls back to a cold open.
  • It is skipped entirely above 3,000 tabs, or if the encoded payload would exceed 384 KB.
  • Titles are truncated at 60 characters before they touch disk.
  • Every read and write is wrapped. A private window, blocked site data, or a browser set to refuse storage all fail here, and none of those is an error — they simply mean the next open is a cold one.
  • If the storage quota is full, the cache is deleted rather than left stale.

Clearing it, or switching it off. Settings → Data holds the switch, labelled Open instantly, and a button that empties the cache on its own. With the switch off the cache is not read, and the existing one is deleted the next time you open the grid. Left alone it clears itself after 30 minutes, and removing the extension removes it outright.

Incognito

manifest.json sets "incognito": "spanning". That means one instance of the extension serves ordinary and incognito windows together, rather than a second, separate copy being started for incognito. What follows from that:

  • It is off in incognito unless you say otherwise. Chrome disables every extension in incognito by default. Until you tick Allow in Incognito on chrome://extensions, the extension sees nothing there at all.
  • If you do allow it, incognito tabs appear in the grid with everything else, marked as such on their window card, and you can search and act on them. That is the point of allowing it.
  • Nothing about them is written to disk — not by the fast-open cache, and not by the window-label memo. Both skip an incognito window before they reach any of its tabs.
  • Chrome will not let tabs cross the incognito boundary, so moving a tab between an incognito and an ordinary window is refused by the browser, not by us.
  • The memory-only session store can hold the id of an incognito window in the focus order — an integer, no address, gone when Chrome quits.

Clearing and deleting your data

  • Clear the fast-open cacheSettings → Data → Clear the cache. Or switch Open instantly off, and the existing cache is deleted the next time you open the grid.
  • Reset your settingsSettings → Data → Reset everything puts every setting back the way it shipped. Stashed windows are left alone.
  • Empty the memory-only store — quit Chrome. chrome.storage.session is emptied every time the browser closes.
  • Delete everything — remove the extension at chrome://extensions. Chrome deletes all three of its stores with it. Nothing survives anywhere else, because nothing was ever sent anywhere.

No remote code

Every line that runs is inside the package you installed. The extension's own pages declare script-src 'self', so no code can be loaded from anywhere else or swapped in afterwards. There is no eval, and the few dynamic imports are relative paths to files inside the package, read from disk on first use. Nothing is fetched.

Data sharing & sale

We do not sell or share your personal information, and we do not transfer it to third parties. There is no mechanism in the extension by which we could: it makes no network request at all.

Children

The extension is a general-purpose tool and is not directed at children under 13.

Changes to this policy

If this policy changes, the “Last updated” date above will be revised.

Contact

Questions? Email support@simplyapphub.com.