An exporter for conversations in the Microsoft 365 Copilot Chat integrated into the Microsoft 365 dashboard.
Exporter design and functionality based on @Pionxzh's ChatGPT Exporter. This userscript is not 1:1 in functionality, though!
Caution
This tool is maintained on a "when I feel like it" basis. Use at your own risk!
- View list of Copilot conversations.
- Bulk export Copilot conversations as its raw, internal JSON format.
- Bulk deletion of Copilot conversations.
Compared to ChatGPT Exporter, it does not support:
- Exporting in formats OTHER than the official JSON. If you want to do this, I suppose you could convert Copilot's JSON to ChatGPT's, then shove it into ChatGPT Exporter.
The exporter can only show, at maximum, the latest 500 conversations. This is a limit imposed by the API endpoint used to get the list of chats. You'll need to delete some chats if you want to access anything beyond the latest 500 conversations.
Install a userscript manager extension into your browser, such as Greasemonkey or Tampermonkey. I personally recommend Greasemonkey (and I have only used this script on it, so your mileage may vary with others)!
Once you have a userscript manager, you can download this script on Greasyfork using the link below and clicking "Install this script". https://greasyfork.org/en/scripts/543763-m365-copilot-exporter
Copy or import dist/copilot-exporter.user.js into a new script in your desired userscript manager.
- Navigate to your M365 dashboard.
- Open the sidebar (if not expanded), open the "Conversations" fold (if not expanded), then click the new "Export conversations" button. A modal should appear.
- Select the conversations you want to export.
- If the conversation(s) you want to export are further down, alter the maximum number of conversations shown and refetch.
- Click export once you've selected the conversations you want to export.
For those seeking to maintain this:
- Clone this repository:
git clone https://github.com/ganyuke/copilot-exporter. - Open the directory:
cd copilot-exporter. - Get
pnpm. - Run
pnpm build. The newly-built userscript should be indist/.

