Standing on the Shoulders of Giants to Get Freebies—M365 Native Personal Setup Sharing 💖️

:sparkling_heart::sparkling_heart: Paying Tribute to the Shoulders of Giants :sparkling_heart::sparkling_heart:

:sparkling_heart: Project shared by the amazing 海海海 uefi2331:

[Image Generation, Multi Tool Call] M365 Native: Make Microsoft 365 Copilot Compatible with OpenAI API

:sparkling_heart: E3 shared by Folozz:

Office365 E3 E1 Self-service Sharing, Copilot GPT5.5 Available



:high_voltage:Deployed with hermes as a helper, a bit AI-ish but truly works. Both cherry and hermes can be used to call it.

▊ Detailed deployment steps are included in the attachment 《m365-native personal configuration.zip》;

▊ In the admin panel, “Add account” - “Browser Authorization (PKCE)”, if you encounter an error:

This page is not normally shown and could be a sign of a phishing attempt. The URL contains your password. Close this page immediately and do not copy or share the URL with anyone.

or

This is not the right page
You have reached the wrong page. Please close this app or window and try again.

You can run “M365 Native Authorization Local Script” - “Start M365 Authorization Assistant.bat” to generate accounts.json.
Put it into the server’s “/opt/m365-native/data” directory, and the program will automatically detect it.



▊ Here’s a quick overview of deployment steps:

Server: debian 12

1. Prepare Microsoft account authorization token

Run Start M365 Authorization Assistant.bat locally and log in to a Microsoft account with M365 Copilot permission to generate accounts.json.
The account should be pre-registered in “Office365 E3 E1 Self-service Sharing, Copilot GPT5.5 Available”.
Purpose: Allow M365 Native to access M365 Copilot on behalf of your Microsoft account.

2. Prepare project code

Follow the original installation method from M365 Native’s author, “Build with Docker yourself”.
Upload the m365-native project to your server.
Purpose: Make sure the server has code ready to be built and run.

3. Build Docker image on the server

Enter the project directory and use Docker to build the m365-native image.
Purpose: Package the program into a long-running service.

4. Create a Docker data volume

Create a m365-native-data data volume to store:

  • Microsoft account tokens
  • API Keys
  • Admin password
  • Session data

Purpose: Ensure data won’t be lost after container restarts or rebuilding.

5. Start M365 Native container

Use Docker to start the service listening on server port 4141.
Purpose: Allow both the M365 Native admin panel and OpenAI-compatible API to be accessed.

6. Upload accounts.json to the container

Put the locally generated accounts.json into the container’s data directory.
Purpose: So the service recognizes and uses your M365 Copilot account.

Other basic operations like configuring firewall ports, setting up a caddy reverse proxy, creating an API key, etc., are included in the detailed steps.

m365-native personal configuration.zip (9.5 KB)

:sun_with_face: I’m also a newbie and don’t know a lot. If you have questions, feel free to comment and I’ll reply if I’m able!

17 Likes

Thanks bro for sharing

1 Like

Thank you for sharing.

1 Like

I don’t know how to describe what I’ve changed here? (I modified that guy’s UI and added native MCP features)



(Of course, actually, it’s true that multimodal and image generation could also be added—I already reverse-engineered them before, but I’m just too lazy to add them now :ac01: )

2 Likes

Thank you.

1 Like


There were some minor issues with what everyone did—the account polling wasn’t done well. I made some adjustments so it would auto-poll accounts. Otherwise, the program would keep hitting a single account until reaching the daily limit and then be unable to connect.

There was also a small problem with token refresh. I fixed that too.

Finally, I deployed everything on the VPS.

This way, version 5.6 works basically without any issues. I’ve been using it for a few days now.
Feels great!
It might not be suitable for large projects, but for daily use it’s really handy—and best of all, it’s free.

Just remember to change port 4141—safety first.

2 Likes

Thanks for sharing, serv00 has deployed one.

1 Like

Nice improvements! Did you upload it to GitHub? If it’s convenient, could you share a link?

1 Like

Awesome!

1 Like

The main issue is that it doesn’t perform well with large projects—when the text is short, it can only generate a plan, or it’s okay for just tweaking scripts. Plus, the two-step call is too slow, so eventually I gave up on continuing to optimize it. I ended up using it in Codex.

Very detailed tutorial—I’ll test it tonight.

1 Like

When did you add the integration for automatic tagging into ComfyUI, haha?

2 Likes

:ox:Awesome

1 Like

It’s pretty good to use him as a dedicated tool—after all, it’s a free GPT-6.

Good stuff, thanks for sharing.

Is it open source!

1 Like

研究一下

哈哈毕竟工具调用靠的是xml转译,不是原生工具调用 :ac01:

2 Likes