Cody connects to your corporate mailbox without any cloud credentials. Instead of going through Microsoft Graph, Azure AD, Client IDs, or Key Vaults, it spawns a local PowerShell process that creates a COM object bound to the Outlook Classic instance already running on your machine. All data stays on your computer — nothing is transmitted to Cody’s servers, and the only optional outbound connection is to an AI provider if you configure one.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/miu-ll/Cody-assistant/llms.txt
Use this file to discover all available pages before exploring further.
All Outlook data read by Cody is processed 100% locally. No email content, calendar events, or account names are sent to any Cody-owned server. The only optional network call is the AI classification request, which sends only the email subject and sender — never the body.
How It Works
Electron spawns PowerShell
electron/main/index.ts handles the outlook-classic-sync IPC channel by importing electron/main/outlook.ts and calling syncOutlookClassic(). That function builds a PowerShell script, Base64-encodes it as UTF-16LE, and passes it via -EncodedCommand to avoid shell-escaping issues.PowerShell creates a COM object
The script opens an
Outlook.Application COM object using the already-running Outlook instance and reads the default MAPI namespace.Reads emails from the Inbox
Items are sorted by
ReceivedTime descending. Cody reads up to 40 of the most recent messages, extracting subject, sender name, body preview (≤ 700 characters), received timestamp, and unread flag.Reads calendar events for the next 14 days
Calendar items with recurrence expansion enabled are scanned. Cody collects up to 50 events starting from now through the next 14 days, extracting subject, start/end times, attendees, location, and any Teams join URL found in the event body.
OutlookSyncResult Interface
InboxSuggestion extends Task (omitting status) and adds:
AI-Assisted Classification (Optional)
When an AI provider is configured in Settings → Artificial Intelligence, Cody sends the list of email subjects and sender names to the configured provider and asks it to decide which messages imply an actionable task, suggest a title, category, priority, and estimated due date. Two providers are supported:| Provider | Data residency | Recommended for corporate use |
|---|---|---|
| Azure OpenAI | Your corporate Azure tenant — Microsoft does not use data to train models | ✅ Yes |
| OpenAI | OpenAI infrastructure | Review your organisation’s data policy |
wordData.ts taxonomy.
Auto-Sync
Cody can synchronise with Outlook in the background on a configurable schedule. You can set the interval in Settings → Sync interval:| Interval | Description |
|---|---|
| 5 minutes | Frequent; ideal for high-volume inboxes |
| 10 minutes | Default balance of freshness and performance |
| 30 minutes | Light polling; suitable for quieter days |
syncedAt field in the stored AppState.
Dismissed Suggestions
Suggestions you dismiss are stored inAppState.dismissedSuggestionIds. On every subsequent sync, any email whose Outlook entry ID already appears in that list is silently filtered out and never shown again — even if the email remains unread in your inbox.
Triggering a Sync
There are three ways to start a sync:Auto-sync
Runs automatically in the background at the configured interval (5, 10, or 30 minutes).
Settings button
Click “Sync Outlook and calendar” in Settings to force an immediate sync.
Win+Shift+S
Global shortcut that triggers a sync from anywhere on the desktop, even when the assistant panel is closed.
window.desktop API call used by the renderer:
Requirements and Limitations
- Requires Outlook Classic (the MSI/C2R desktop app). Outlook on the web and the new Outlook app do not expose a local COM interface.
- The sync runs with
powershell.exe -ExecutionPolicy Bypassand-STA(single-threaded apartment) for COM compatibility. The PowerShell window is hidden (windowsHide: true). - A single sync times out after 90 seconds if Outlook is unresponsive.
- The raw output is capped at 10 MB to prevent runaway data transfers.
- COM object references are explicitly released in a
finallyblock to avoid memory leaks in the Outlook process.
Data Storage
All synced data is stored locally at:cody-data.backup.json in the same directory. If the primary file is corrupt on startup, Cody automatically falls back to the backup.