New
Apps 1,895Makers 1,890This week 1,684
Promote your app−30%
mach screenshot 1
0views in
the last 30 days

mach

The instant mail app for Gmail. Native on Mac and iPhone, free for personal use, source open.

Built with Claude Code

by ahmedkhaleel2004 · Unclaimed · from CACanada · added Oct 29, 2026
no ratings0 comments

Mach icon

Mach

The instant mail app for Gmail and Outlook. Free for personal use, source open, native on Mac and iPhone.

Download for Mac  ·  iPhone  ·  Shortcuts  ·  Benchmarks

Mach on Mac and iPhone

Mach keeps your mail in a database on your device, so nothing you do waits for the network. Lists, conversations and search answer before the next frame; what you did is sent to Gmail behind you. There are no spinners and almost no animation: things are simply there.

Fast, measured

Medians on a mailbox of 50,000 messages. Every number has a benchmark behind it in bench/.

Search 50,000 messages 2 ms
Typing in search, time the app is busy per letter 0.7 ms
Open a heavy newsletter 17 ms
Open a 200-message conversation 48 ms
Move down the list, per key 2.3 ms
Archive 50 conversations at once 14 ms
Read the inbox from disk 0.5 ms
First mail on screen after a brand-new sign-in 0.5 s
New mail on screen after Gmail announces it (with the relay) 0.25 s
The whole app 4.6 MB on Mac, 4.5 MB on iPhone

What it feels like

  • One inbox, or all of them. Every account in a single list, or one at a time. Split Inbox is a switch, off by default.
  • Keyboard first on Mac. Gmail's own shortcuts, a command bar on ⌘K, and nothing that needs the mouse.
  • Swipes on iPhone. Left to archive, right to mark read, both changeable; one swipe, no confirm. Swipe anywhere on an open email to go back. Everything follows your finger at 120 Hz and ticks when it takes.
  • Sign-in codes, one tap. A mail that carries a code shows it in its row and on its banner; tap it (or ⇧C) and it is copied.
  • Undo everything. Archive, trash, snooze, and sending for five seconds.
  • Real faces. The sender's Google picture, the picture on your Outlook contact for them, or a company's certified logo. Tap to enlarge.
  • A signature for each account, written in settings. A Gmail account without one uses the signature set in Gmail.
  • Attachments you can see. A preview on every file; a tap opens it in Quick Look.
  • Search everything. Instant on the device, with Gmail's own search folded in as you scroll. Best match, newest or oldest.
  • Drafts and snoozes live on Gmail, so they are on every device and in Gmail itself.
  • Works offline. Changes apply at once and go to Gmail when you are back.
  • Light and dark, and a size slider on both platforms.

Install

Mac

Download the latest release, open the disk image and drag Mach to Applications. It is signed and notarized, and keeps itself up to date. Needs an Apple silicon Mac on macOS 15 or newer.

Sign-in needs a Google key of your own for now (five minutes, once): Google only lets an app read Gmail for the public after a paid security review, which Mach has not been through yet.

  1. In the Google Cloud console create a project, enable the Gmail API and the People API, and create an OAuth client of type Desktop app. Add yourself as a test user.
  2. Save the client's JSON as ~/Library/Application Support/Mach/OAuthClient.json and open Mach.

Outlook (outlook.com, hotmail.com, live.com) works out of the box: press Sign in with Microsoft. A work or school account usually does not: Microsoft lets an organization refuse apps from a publisher it has not verified, which Mach's is not (verifying needs a registered business), and a university tried on 2026-10-11 refused the sign-in. Such an account needs its organization's administrator to allow Mach, or an app registration of that organization's own. Mach ships with its own Microsoft app registration, whose id is not a secret. To use one of your own instead (accounts in any organization and personal accounts; a "Mobile and desktop" redirect of http://localhost, and com.ahmedkhaleel.mach://oauth for the iPhone), save {"client_id": "<its id>"} as ~/Library/Application Support/Mach/MicrosoftClient.json (App/Resources/MicrosoftClient.json when building the iPhone app). The push relay watches Outlook accounts as well as Gmail ones.

iPhone

There is no App Store or TestFlight build yet, so today the iPhone app is built from source with Xcode (free Apple account: the app lasts a week per install; paid: a year).

The iPhone signs in with a Google OAuth client of type iOS (in the same Google Cloud project, with the app's bundle id), not the Desktop one: it has no secret, and Google answers on an address only the app opens. Save its id as App/Resources/OAuthClient.json:

{ "client_id": "1234-abcd.apps.googleusercontent.com" }

To build the Mac and the iPhone app from one checkout, keep the Desktop client's JSON and add the iOS client beside "installed": "ios": { "client_id": "…" }. Each app takes its own. The file is git-ignored; never commit it.

brew install xcodegen
git clone https://github.com/ahmedkhaleel2004/mach && cd mach
cp /path/to/your/ios-client.json App/Resources/OAuthClient.json
cd App && xcodegen generate && open Mach.xcodeproj   # set your team, run MachPhone on your iPhone

Instant notifications on a closed iPhone need the small relay in Relay/, on your own free Cloudflare account. Without it the phone checks when opened and in background refresh.

The build for the App Store is the Store configuration (scripts/upload-testflight.sh). It has no relay in it at all, so nothing about your account goes anywhere but Google, and it refuses to build without an iOS client.

Shortcuts

j k Next, previous
Enter / Esc Open / back
e Archive
# Trash
s Star
b Snooze
r a f Reply, reply all, forward
c Compose
z Undo
/ Search
⌘K Command bar
1–9 Switch list
⌃1–⌃9 Switch account
? All shortcuts

How it is built

  • Core/ is a Swift package with no interface: the Gmail client, a SQLite store with full-text search (GRDB), two-way sync and the outbox. cd Core && swift test.
  • App/ is the SwiftUI app both platforms share, with a thin layer each for the Mac window and the iPhone screen.
  • An open conversation is one web view that never unloads, so opening an email is a function call, not a page load. Each message sits in its own shadow root under a policy that runs no scripts from mail.
  • Sync is shaped around Gmail's small per-minute allowance: newest mail first, changes read from Gmail's change log, bulk actions as one request, and an adaptive pace that never trips the limit.
  • Relay/ is an optional Cloudflare Worker that turns Gmail's "new mail" signal into an Apple push.
  • bench/ holds the benchmarks and every result, including what did not get faster.

The only Google permissions asked for are reading and changing mail, and reading contacts' names, addresses and pictures. Your mail stays on your devices; nothing goes anywhere but Google (and your own relay, if you run one).

Not done yet

  • One-click sign-in for everyone, and an iPhone build on TestFlight.
  • Writing is plain text; links become clickable and the quoted original keeps its formatting.
  • A label picker.
  • A switch to stop remote pictures loading (they can tell a sender you opened their mail).

License

Free for personal and other noncommercial use, with the source open to read, change and share on the same terms (PolyForm Noncommercial 1.0.0). Using Mach in or for a business needs a commercial license: email Ahmed.

Built by Ahmed Khaleel, who also made GitDiagram.

Description taken from the repository README.

Ratings

–
0 ratings
5 0
4 0
3 0
2 0
1 0

Rate this app

Sign in to rate

Comments 0

Sign in to comment

No comments yet.

Related apps

#email · #gmail · #macos