Local-first browser extension

Export Microsoft Teams chat history with attachments

Save the currently open personal or group conversation, accessible files, links, and diagnostics in one private ZIP — without admin access or a developer cloud.

  • Messages + accessible files
  • HTML, JSON, and CSV
  • No telemetry
  • Open source
Chat Exporter popup beside an open Microsoft Teams conversation and a ZIP file tree

One action. One complete archive.

The product is intentionally narrow: open a conversation, start the export, and receive readable and structured data together.

Loads older history

Teams virtualizes long chats. The exporter records each visible batch while moving toward the beginning instead of saving only the final screen.

📎

Keeps accessible files

Images and files available to the signed-in Microsoft 365 session are placed under attachments/. Failures stay visible in the report.

Runs locally

No account, analytics, telemetry, or developer backend. The archive is assembled in the active browser tab and downloaded to the device.

teams-chat-project-alpha.zip/
├── chat.html # offline transcript
├── chat.json # structured data
├── chat.csv # spreadsheet rows
├── links.csv
├── attachments-report.csv
├── failed-attachments.html
├── README.txt
└── attachments/
    ├── proposal.pdf
    ├── screenshot.png
    └── notes.docx
Portable by design

Readable today. Structured for later.

Open chat.html offline
Search the conversation and follow relative links to included assets.
Use JSON in scripts and local tools
A stable schema keeps message metadata, reactions, links, and attachment records.
Open CSV in a spreadsheet
Unicode-safe rows make filtering, auditing, or handoff straightforward.
Know what did not download
Every discovered attachment is reported as downloaded, failed, or skipped.

How the Teams chat export works

No Graph setup, tenant administrator, or format-selection wizard is required for the conversation already visible to you.

Open the chat

Sign in to Teams on the web and select the personal or group conversation you need.

Start the export

Open Chat Exporter, choose whether to include accessible files, and click the primary button.

Save the ZIP

Keep the tab open while older history and files load. The panel provides progress, cancellation, and the final download.

Progress panel loading a long Microsoft Teams chat history
Privacy boundary

Temporary access, not permanent surveillance

The extension activates only after your click and requests three narrowly scoped permissions.

activeTabTemporary access to the current tab after explicit user action.
scriptingInjects the bundled local exporter into that active Teams tab.
storageRemembers the disclosure acknowledgement and file preference — not the conversation.
No developer-controlled data endpoint

The developer does not receive messages, names, URLs, files, export events, or error logs.


Microsoft 365 rules still apply

The exporter cannot bypass permissions, Conditional Access, retention, CORS, expired URLs, or deleted files.

ZIP attachment folder and file status report

Frequently asked questions

Can it export every chat in my organization?

No. Version 0.1.0 exports the currently open personal or group conversation. Tenant-wide export belongs to Microsoft Graph, Purview, eDiscovery, or other administrator/compliance workflows.

Does it include attachments?

It attempts to include images and files that the current signed-in browser session can retrieve. Every candidate appears in the attachment report even when Microsoft 365 or the browser blocks automatic download.

Is the chat uploaded to a server?

No developer server exists for this extension. Capture, rendering, ZIP creation, and download happen locally. The Teams website still communicates with Microsoft services as normal.

Why is a file marked failed?

Common reasons include expired permissions, deleted content, a sign-in or viewer page returned instead of the file, Conditional Access, CORS, or explicit size limits.

Does it export channel posts?

Not in the first release. The supported promise is the currently open personal or group chat.