Open source · AGPL-3.0 · Self-hosted
One inbox. Every interface.
mimux connects to the mailboxes you already have and serves them out however the job needs: a fast, keyboard-driven web app for you — free, forever — and a REST API, MCP server, CLI and webhooks for your scripts, pipelines and AI agents. All of it on your hardware, none of it through a SaaS.
IMAP in web · REST · MCP · CLI · webhooks out one Go binary, zero config
- Deploy
- 1 binary
- State
- 1 SQLite file
- Required config
- 0 lines
- Telemetry
- 0 calls home
The gateway
Connect a mailbox once. Reach it every way.
Your provider stays exactly where it is — mimux speaks IMAP and SMTP to it, keeps a synced copy in SQLite, and exposes it through whichever interface the job calls for. Humans get the app, free. Machines get the licence.
in
Any IMAP mailbox
Gmail, Fastmail, Zoho, your own Dovecot — OAuth2 or app passwords. No migration, no forwarding: your provider stays the source of truth.
free
Web app
The full client in any browser — unified inbox, deep search, filters, Markdown compose, keyboard everything.
free
Mobile PWA
Install it on your phone from the browser. Offline fallback, end-to-end-encrypted push, no app store.
pro
REST API
Everything over plain HTTP, self-documented — the binary serves its own OpenAPI spec.
pro
MCP server
The mailbox as tools for Claude or any MCP-capable client — scope-filtered, revocable tokens.
pro
CLI
Search, read, file and draft from your shell — plain text or JSON out, so your inbox pipes like any other stream.
pro
Webhooks
Signed pushes on new mail and rule matches — retries with backoff and a delivery log.
soon
GraphQL
One query across mail, folders and filters. On the roadmap — part of pro when it ships, same price.
The client
Everything a serious mail client owes you.
The complete client is free and AGPL-3.0 — nothing on this page is held back, metered, or waiting to be moved behind a licence key.
Unified inbox
Every account in one view — threading, unread counts and the full folder tree per account. IMAP IDLE keeps it live without a refresh.
Keyboard-first triage
A full shortcut set — j k e R / — so an inbox of forty becomes an inbox of zero without touching the mouse.
Search that goes deep
Instant local full-text search, plus on-demand deep IMAP server search streamed back live as results arrive.
Compose without regret
Plain text, rich text or Markdown. Draft autosave, undo-send and scheduled send — over your own SMTP.
Filters & rules
Conditions in, actions out: move, label, forward, mark read, star, delete, notify — running server-side on every incoming message.
An app on every device
Installs as a PWA with offline fallback. Web Push with end-to-end encrypted payloads from your server — or a POST to any ntfy topic.
mimux pro
Give your agents an inbox. Keep it on your hardware.
Agent frameworks ship with web search and code execution — and no way into a mailbox that doesn't route your mail through someone else's cloud. mimux pro is that missing tool: a REST API, an MCP server, a CLI and signed webhooks over the inbox you already run.
- MCP server at
/api/mcp. Search, read, triage and draft from Claude, or any MCP-capable client. - Sending takes two steps, by design. Agents draft; a separate, explicit call sends. No tool description can talk a model into skipping the checkpoint.
- Scoped API tokens. Read-only for the triage bot, draft-only for the assistant — minted and revoked in Settings → API.
# an agent triaging this morning's mail ▸ search_messages query="is:unread" 12 results — 3 invoices, 1 quote request, 8 newsletters ▸ move_message folder="Accounting" × 3 ▸ create_draft reply_to="Re: quotes for the server rack" draft saved — waiting for your review # sending is a second, explicit step. Always.
Install
Running before your coffee is.
No config file, no environment variables, no database server. Boot the container, open the page, add your accounts.
-
01
Start it. The compose file is the whole deployment: one container, one volume, one port.
-
02
Open it. The first visit walks you through creating your admin account. There is nothing else to bootstrap.
-
03
Point it at your mail. OAuth2 for Gmail and Zoho, app passwords everywhere else. Changes apply without a restart.
# the whole install
$ git clone https://github.com/mattmezza/mimux
$ cd mimux && docker compose up -d
# then open
http://localhost:8083
Why self-hosted
Nobody between you and your mail.
No account to create
mimux asks nobody's permission to read your mail. It speaks IMAP and SMTP directly to the providers you already use, with credentials that live in your SQLite file — not ours, because there is no "ours".
No telemetry, provably
The application phones home to no one — no CDNs, no analytics, no update pings; everything is bundled in the binary. Even licence verification is an offline Ed25519 signature check. Remote images stay blocked until you say otherwise.
Open, all the way down
AGPL-3.0. One Go binary serving htmx and Alpine.js over SQLite — small enough to read end to end, boring enough to run for years. make verify-free proves the free build contains zero commercial code.
Yours on bad days
If this project stopped tomorrow, nothing changes for you: the binary keeps running, the source is yours under the AGPL, and your mail was never locked anywhere to begin with. That is the whole point.
Pricing
Free where you live. Paid where machines drive.
The line is simple and it does not move: a human driving mimux is free, forever. Something other than a human driving it — the API, the MCP server, webhooks — is the paid layer.
The client
€0
forever · AGPL-3.0
The complete mail client: sync, search, compose, filters, PWA, push, AI compose with your own key. Nothing held back.
Get the clientmimux pro
€49/year
or €99 once, perpetual · 14-day free trial
REST API, MCP server and signed webhooks over your whole inbox. Licensed per instance, verified offline.
See pricingOwn your inbox again.
One command, one binary, one SQLite file. Free for you, licensed for your robots.