No coding or dev tools required — just download one file and add it to Excel.
Download this file and save it somewhere you can find it (e.g. your Desktop):
Alternate download links (if the above is unavailable)
- Latest release: https://github.com/tmustier/pi-for-excel/releases/latest
- Direct repo copy: https://github.com/tmustier/pi-for-excel/blob/main/manifest.prod.xml
-
Open Finder and press Cmd + Shift + G (Go to Folder)
-
Paste this path and press Enter:
~/Library/Containers/com.microsoft.Excel/Data/Documents/wef -
Copy
manifest.prod.xmlinto that folder -
Quit Excel completely (Cmd + Q) and reopen it
-
Go to Insert → My Add-ins — you should see Pi for Excel listed. Click it to register the add-in.
-
Now look for the Add-ins button on the far right of the Home ribbon tab (it looks like four orange squares). Click it, then click Pi for Excel to open the sidebar.
Folder doesn't exist? Create it first — open Terminal and run:
mkdir -p ~/Library/Containers/com.microsoft.Excel/Data/Documents/wefThen repeat from step 3.
For more detail, see Microsoft's guide for Mac.
You can try to install and run this on Windows — it might work!
- Open Excel
- Go to Insert → My Add-ins
- Click Upload My Add-in…
- Select the
manifest.prod.xmlfile you downloaded - Click Open Pi in the ribbon
⚠️ Use Upload My Add-in… formanifest.prod.xml. Do not import it via Manage → XML Expansion Packs — that is a legacy Excel path and can surface misleading certificate errors for Office add-in manifests.
For more detail, see Microsoft's guide for Windows.
Community-contributed — not officially tested. These steps were provided by a contributor and may not match every Office 365 tenant. If something looks different, see Microsoft's sideloading guide for Office on the web.
- Open Excel (Web) in your browser
- Select an existing workbook or create a new Excel file
- In the Home tab (Start ribbon), click Add-ins on the right side
- Click More Add-ins
- Go to My Add-ins
- Click Manage My Add-ins
- Click Upload My Add-in
- Upload the
manifest.prod.xmlfile
⚠️ On Excel Web, the add-in can disappear after several days. If that happens, repeat the upload steps above.
- Open the taskpane (click the Add-ins button in the Home ribbon tab, then click Pi for Excel)
- Connect a provider (see below)
- Send a test prompt, e.g.:
What sheet am I currently on?Summarize my current selection
If you get a response, install is complete.
For most users, API keys are the smoothest setup and usually do not need the proxy.
- In Pi, run
/login(or use the welcome screen) - Expand a provider row (OpenAI, Google Gemini, Anthropic, etc.)
- Paste your API key
- Click Save
Use this when your org exposes an OpenAI-compatible endpoint (or for local OpenAI-compatible servers).
- In Pi, open
/settings - Under Custom OpenAI-compatible gateways, set:
- Endpoint (base URL)
- Model (model ID)
- API key (optional for some local servers)
- Save the gateway, then choose its model from
/model
Notes:
- If your gateway is publicly reachable over HTTPS, you can usually connect directly (no proxy).
- For localhost/private endpoints via the local proxy, you may need to configure proxy host policy env vars (for example
ALLOWED_TARGET_HOSTS,ALLOW_LOOPBACK_TARGETS, orALLOW_PRIVATE_TARGETS) when startingpi-for-excel-proxy.
- In
/login, click Login with … - Complete login in the browser window that opens
- Return to Excel and complete any prompt shown
- For OpenAI + Google OAuth flows, your browser will land on a page that says "can't be reached" — that's normal! Copy the full URL from the browser address bar and paste it when prompted in Pi for Excel
- Some Google workspace tiers may also ask for a Google Cloud project ID during setup
If login fails with a CORS/network error, follow the next section.
Some OAuth/token endpoints are blocked by CORS inside Office webviews (especially on macOS WKWebView).
Typical symptoms:
Login was blocked by browser CORSLoad failedFailed to fetch
- Run a local HTTPS proxy on the same machine as Excel (defaults to
https://localhost:3003):
⚠️ You may be asked for your Mac password during this step. The proxy creates a local security certificate so Excel can talk to it securely. This is a one-time setup. If you are not an admin on this machine, ask your IT team to run this step for you.
If you already have Node.js:
npx pi-for-excel-proxyIf you do not have Node.js (or are unsure):
curl -fsSL https://piforexcel.com/proxy | sh-
In Pi, open
/settings→ Proxy:- enable Proxy
- set URL to
https://localhost:3003
-
Retry OAuth login
Quick proxy sanity check (advanced):
- In Terminal, run:
curl -k -i -s \
'https://localhost:3000/api-proxy/google-cloudcode/v1internal:streamGenerateContent?alt=sse' \
-X POST -H 'content-type: application/json' -d '{}' | head401means proxy routing is working (request reached Google, but without auth token).404usually means a proxy/path issue.- Use single quotes around the URL in zsh so
?alt=sseis not treated as a glob.
Notes:
- Keep the proxy URL on HTTPS (
https://...), not HTTP. - API-key providers generally work without proxy.
- If port
3003is busy, run with another port and use that same URL in settings:
PORT=3005 npx pi-for-excel-proxyIf you installed with manifest.prod.xml, Pi for Excel loads from a hosted URL and most updates are automatic.
- Normal case: close/reopen Excel taskpane to pick up latest version.
- Rare case (manifest changes): download the new
manifest.prod.xmland upload it again in Excel.
- Re-open Excel and try again
- Ensure you uploaded
manifest.prod.xml(not the localhost dev manifest)
- Use Insert → My Add-ins → Upload My Add-in… instead of Manage → XML Expansion Packs
manifest.prod.xmlis an Office add-in manifest, not a legacy Excel XML Expansion Pack- If you already tried the XML Expansion Packs path, close Excel and repeat the upload flow above
- Your network may block
https://pi-for-excel.vercel.app - Try a different network / VPN setting
- Close and reopen Excel to clear cached taskpane state
- No — Office.js support comes from Excel itself when you install Pi with
manifest.prod.xml - You do not need
generator-office, Yeoman, or any extra Office.js package to use the hosted add-in - The optional local helper services are only for OAuth proxying, native Python / LibreOffice, and tmux
- Confirm proxy is running and reachable at the exact URL in
/settings - Confirm proxy URL is
https://localhost:<port>(nothttp://) - Try API key auth as a fallback
If you want to run from source (localhost, Vite, mkcert), use the root README: Developer Quick Start.