Skip to content
@MailCoded

MailCoded

Open-source, local-first email engine in .NET. Syncs IMAP to a local store you can grep, tag and script. The mu4e/aerc experience for VS Code people.

MailCoded

Local-first email: your own copy of your mail, in SQLite, searchable from a shell.

A .NET 10 daemon syncs an IMAP account into a local store with FTS5 full-text search and notmuch-style Tags, sends via SMTP behind a two-phase confirmation, and serves all of it over JSON-RPC 2.0 on stdio. Native AOT.

The mu4e/aerc experience for people who live in VS Code.

A sidecar, not a migration

Point it at the same IMAP account you already read in Outlook, Apple Mail or Thunderbird. It syncs a local copy: it does not take over your mail, it does not have to be your only client, and the server stays the source of truth — so re-syncing from scratch is always a valid recovery path. Trying it commits you to nothing.

What it will not do

  • There is no delete. No delete, expunge, trash or purge verb in the CLI, the MCP surface or the JSON-RPC protocol. Absent, not gated.
  • Sending is off by default, behind a one-time confirm token: send-preview mints it, send-draft consumes it.
  • Credentials live only in the OS keyring, or an encrypted file where there is none. Never in the database, the logs, or an RPC response.
  • No telemetry and no analytics, and no network call to anything but your own mail servers — hence no badges on this page, since a shields.io image is a third-party request per view.
  • Agents get plaintext bodies only, never HTML, whether they reach the core through the CLI or the MCP adapter. Mail access otherwise hands an agent all three legs of the lethal trifecta: private data, untrusted content, and a way out.

What is left is a mail client.

Where to start

MailCoded/mailcoded — the engine. It builds four commands, each a client of the same daemon:

mailcoded the CLI, one shot per invocation
mailcoded-tui a full-screen terminal client, and the reference JSON-RPC client
mailcoded-daemon the JSON-RPC daemon
mailcoded-mcp an MCP adapter whose tools map 1:1 to CLI verbs

The user manual — installing, accounts, the terminal client, every verb, troubleshooting.

Status

Pre-release, MIT, by Yu Lin (@lywedo). The core, daemon, CLI, TUI and MCP adapter build and run, but there is no tagged release and no published binary: build from source with the .NET 10 SDK. Linux x64, Windows x64 and macOS arm64 are covered in CI; macOS x64 and Linux arm64 are untested. An editor extension is in progress, in a repository not published yet.

Search covers subject and body text, not attachment contents. IMAP only in v0.1; Microsoft Graph and Gmail OAuth2 are planned for v0.2. No calendar and no contacts, and neither is planned. No PGP, S/MIME, POP3, JMAP, HTML compose, mobile or web client, and no measured performance numbers.

Pinned Loading

  1. mailcoded mailcoded Public

    C#

  2. mailcoded-vscode mailcoded-vscode Public

    TypeScript

Repositories

Showing 3 of 3 repositories

Top languages

Loading…

Most used topics

Loading…