Local-first correspondence

Your mail and calendar, bridged to your terminal and AI agents.

Corresync is a local-first bridge with one guarded core: a CLI for you and your scripts, an MCP server for your agents — both working through a browser session you sign in to yourself. No hosted relay. No captured password. Writes preview before they commit.

Outlook Web today · more providers on the roadmap
macOS, Linux, and Windows · amd64 & arm64 · Apache-2.0

one core · two interfaces
$ corresync mail list --limit 3
 09:12  Ana Ruiz   Quarterly plan review
· 08:47  Finance    Invoice #2214 approved
· 07:58  Kim Osei   Standup notes — Tuesday

── the same core, from an agent ──

 What needs my attention before noon?
  mail_list calendar_list local · metadata-first
  Reply to Ana's plan review. Your 09:30
  design review has a Teams link ready.
Local first No hosted relay — mailbox access stays on your machine
Browser-owned sign-in Normal SSO, MFA, and Conditional Access; the CLI never sees a password
Preview → commit Consequential writes show an exact review first, and fail closed
One typed core CLI and MCP call the same use cases and policy checks

No Graph app required

Built for organizations that never approved a Graph app.

Plenty of tenants let you use Outlook on the web while third-party Microsoft Graph applications stay unapproved. That gap is exactly where Corresync lives.

When Graph is approved

Microsoft Graph is a fine choice

If your organization registers and consents to API applications, use them. Optional, explicitly configured Graph support is on the Corresync roadmap — as a choice, never as a hidden fallback.

When it isn't

Corresync works through your session

Corresync works through the interactive Outlook Web session you already use — the same sign-in with your SSO, your MFA, your Conditional Access, in a dedicated browser profile, and only the permissions your account already holds. It never files an admin consent request, and never probes in a way that could trigger one.

Corresync automates a session you legitimately own. It does not bypass authentication, sign-in policy, or permissions, and it grants nothing your account doesn't already have — see the threat model.

Sixty-second setup

Install. Sign in. Ask.

One local binary, one client command, then ordinary language — or ordinary flags.

  1. Install and sign in

    # macOS or Linux
    brew install nkiyohara/corresync/corresync
    
    # Windows
    winget install --id nkiyohara.Corresync --exact
    
    corresync config init
    corresync auth login
    corresync doctor --online
    corresync completion install

    Scoop, direct downloads, checksums, Sigstore verification, and Linux packages are in the install guide. Sign-in stays inside a dedicated browser profile; the CLI never asks for a password.

  2. Connect your agent

    corresync mcp setup codex
    # or: claude-code, github-copilot,
    #     gemini-cli, qwen-code, qoder

    Registers “Corresync — Mail & Calendar” through your client's official configuration. Inspect first with --dry-run; v0.6 users should re-register once after following the migration guide.

  3. Ask naturally, or script it

     Check Outlook and summarize what needs
      my attention.
    
    $ corresync mail search \
        --query 'subject:"Quarterly plan" from:ana'
    $ corresync calendar list \
        --start 2026-07-28T00:00:00Z \
        --end 2026-07-29T00:00:00Z

    Agents, scripts, and humans reach the same typed use cases and the same stable JSON result shapes.

One protocol, native setup

Built for the agents you use.

Each client is configured through its own official mechanism. The guarded core stays the same.

Codex

corresync mcp setup codex

Plugin marketplace and bundled Agent Skill.

Claude Code

corresync mcp setup claude-code

Plugin install plus user and project scopes.

GitHub Copilot CLI

corresync mcp setup github-copilot

Native registration with printed verification.

Gemini CLI

corresync mcp setup gemini-cli

User and project scopes, native Skill manager.

Qwen Code

corresync mcp setup qwen-code

Native CLI registration and Skill support.

Qoder

corresync mcp setup qoder

User, local, and project scopes.

Kimi Code CLI

corresync mcp config kimi-code

Prints the native MCP JSON to paste.

Any MCP client

corresync mcp serve

A plain stdio server for everything else.

Safety is the architecture

Agents get narrow tools. Never your session.

A local daemon owns the interactive browser session. CLI and MCP calls enter the same typed application core and the same policy boundary — authorization material never enters an agent process.

nothing sends without --approve
$ corresync mail send --to ana@example.com \
    --subject 'Quarterly plan — v2' \
    --body-file reply.txt

REVIEW · send new message
  to       ana@example.com
  subject  Quarterly plan — v2
  body     text/plain · 412 B · sha256 9f2c1a…
Nothing sent. Repeat the exact command with
--approve to commit this review.

$ corresync mail send --to ana@example.com \
    --subject 'Quarterly plan — v2' \
    --body-file reply.txt --approve

SENT · bound to review 9f2c1a…
  • Metadata first. Listings exclude bodies; sensitive reads are explicit, separate tools.
  • Preview binds the commit. A short-lived token is tied to the originating process and the exact operation digest.
  • Fail closed. An ambiguous write outcome is never retried automatically — no duplicate mail, events, or invitations.
  • Untrusted by default. Message and event content is data for you, never instructions for an agent.
  • No ambient listener. MCP runs over stdio; daemon IPC is a Unix socket or Windows named pipe.
  • Transparent scope. The shipped Outlook Web provider and planned adapters are labeled separately.

Shipped vs. planned, marked plainly

Outlook Web today. Every account next.

A clear line between what you can run right now and what is being designed in the open.

In the current release

The Outlook Web adapter

Mail

  • Folders, metadata lists, AQS search
  • Explicit body and bounded attachment reads
  • Drafts, replies, forwards, reviewed sends
  • Versioned moves, read state, reviewed deletion

Calendar

  • Bounded schedule listings
  • Events with attendees, recurrence, reminders
  • Optional Teams join link at creation
  • Versioned updates and cancellation

Plus stable account IDs and target isolation, explicit shared-mailbox routing, a stable JSON contract, idempotent shell completion install, a man page, and signed releases — SHA-256 checksums, Sigstore provenance, SBOMs, verified self-update. Full feature matrix

Planned — not shipped yet

One bridge, every account

  • Deeper multi-account workflows. Stable account boundaries ship now; aggregated views and richer account lifecycle commands come next.
  • Start from an email address. Evidence-scored provider discovery with manual override — authenticating only after you confirm the destination.
  • More providers, openly. JMAP, IMAP, SMTP submission, and CalDAV; Google with API-first consumer and web-session-first Workspace defaults; optional, explicitly configured Graph.
  • Careful import. Read-only scans of Apple Mail, Thunderbird, and Outlook profiles plus MBOX, Maildir, EML, PST, OLM, ICS, and VCF archives.
  • Cross-account views. Aggregated inbox and agenda projections; commits stay bound to one exact target.
  • Opt-in monitoring. Off by default and metadata-first, with AI dispatch as a separate consent and auto-triggered agents read-only by default.

Every phase keeps the same non-negotiables: no hosted relay, no captured passwords, no admin-consent probing, no bypassed sign-in controls. Follow the roadmap

Change of address

Coming from owa-bridge?

The rename to Corresync ships as one coordinated release — repository, packages, CLI, MCP, local state, and this site — with a v0.6.2 bridge release for direct upgrades.

  • The v0.6.2 updater trusts the renamed release workflow and canonical artifacts.
  • Direct v0.6.1 installs must manually verify and install the signed v0.6.2 bridge before running the updater.
  • Configuration migrates to schema v2; browser profiles move rather than duplicate, so a fresh sign-in can be required.
  • The public command, MCP registration, package, plugin, Skill, completion, and manual all become corresync.
  • GitHub preserves repository redirects. Pages intentionally has no redirect; update bookmarks.
bridge, then canonical
$ owa update
# run once from the v0.6.2 bridge release

$ corresync --version
# canonical command from v0.7 onward

Ready when your inbox is

Bring your correspondence to the conversation.

Locally, visibly, and with every consequential action reviewed.