Privacy Policy — Wholethread
Last updated: 23 October 2026
Summary
Wholethread does not collect, transmit, or store your data on any server. Everything it does happens inside your own browser, on your own computer. There is no account, no analytics, no telemetry, and no backend.
What the extension accesses
When you are on teams.live.com or teams.microsoft.com and you click
Export, the extension reads the conversation that is already displayed on
the page — sender names, message text, timestamps, and the names of shared
files — and assembles them into a file.
Two options add to that, each only when you tick it:
- Attachments. The extension presses Teams' own Download control on each shared file and image in the conversation. Teams fetches the file from Microsoft exactly as it would if you clicked it yourself, and the extension saves it beside the export.
- Voice message transcripts. The extension opens Teams' own View transcription for each voice message and copies the text Teams shows. Microsoft Teams produces that transcript; the extension sends no audio or text anywhere.
Its page code runs only on Teams pages. The downloads permission does let the
browser tell it about every download that starts. Only while it waits for an
attachment it clicked does it look at a download's name, address and referring
page, to recognise that Teams file; any other download keeps the name the browser
gave it and nothing about it is stored. A download from another Teams tab that
looks the same in that moment could be filed with the export.
What it does with that data
It writes the assembled conversation to a file in your computer's Downloads folder, in the format you chose (JSON, HTML, or plain text), with any attachments in a folder next to it. Those files belong to you and stay on your machine.
The extension makes no network requests of its own: it contains no code that
opens a network connection, and it sends your conversation nowhere. It requests
three browser permissions, downloads, offscreen and storage, all used
only to save files; they are explained below.
What it stores
Two small records per conversation, in your browser's local storage for the Teams site. Both are keyed by a shortened form of the conversation's name and a hash of its full name.
- Last export point: the id of the newest message from your last complete export, a number derived from its timestamp. This lets a repeat export collect only what is new instead of starting over.
- Resume bookmark: kept only when an export was stopped or cut short, so the next one can tell you where it left off. It holds the oldest and newest points reached, the time it was saved, and a shortened form of the conversation's name.
Neither contains message text, senders, file names or links. Both stay on your computer. You can clear them at any time by clearing site data for Teams.
While attachments are downloading, the extension also keeps a note pairing each attachment with the browser's download number for it, so it can stop that download if the export is abandoned. The note holds a random identifier made for that export, the Teams id of the message, and the download number — no text, names, file names or links. It is kept in memory only, never written to disk. Each entry is removed when its download finishes, or, if the extension's background worker was paused at that moment, the next time it starts; all of them are gone when the browser closes.
What it sends to us
Nothing. There is no "us" in a technical sense — no server, no database, no collection endpoint. The authors of this extension never see your conversations, because the extension sends nothing to them.
Your responsibility for the exported file
The file the extension creates contains the conversation as far as it was exported, including anything the other participants wrote and the names of any files they shared, and, if you chose them, the attachments and voice transcripts that were saved. Any that could not be saved are counted in the export instead. Treat it with the same care as the conversation itself: store it somewhere appropriate, and do not share it more widely than the participants would expect.
Permissions, explained
| Permission | Why it is needed |
|---|---|
downloads | To save the export file. A long conversation is saved in numbered parts, and without this permission the browser blocks repeated saves from a page. It is also used to confirm the final file was saved, to remove the extension's own numbered parts afterwards, to place downloaded attachments in the export's folder, and to stop an attachment download once the browser reports it is larger than the per-file limit set in the panel (500 MB by default). That check depends on the browser knowing the size before the file finishes, so it is best effort. The per-export limit (1,000 MB by default) stops further attachments from starting; it does not cut one already downloading, so an export can pass it by up to one file. It acts only on downloads made during an export: its own files, and the attachments Teams downloads when the extension presses Download. A download from Teams that starts at the same moment as one of those can be filed with the export. |
offscreen | The browser's background worker cannot turn text into a downloadable file, so the extension opens a hidden extension page that does only that, for the file being saved. It has no network access and does nothing else. |
storage | To keep the in-memory note described under "What it stores", so a stalled attachment download can still be stopped after the browser has paused the extension's background worker. Session storage only: nothing is written to disk. |
Access to teams.live.com and teams.microsoft.com | To read the conversation you asked to export. These are the only sites the extension is allowed to run on. |
No other permission is requested.
Changes
If this policy changes, the updated version will be published at the same address, with a new date at the top.
Contact
Questions about this policy can be directed to the extension's publisher through the Chrome Web Store listing.
This website
This website itself uses no cookies, no analytics and no third-party scripts. It is hosted on GitHub Pages, whose own logs are governed by GitHub's privacy statement.