Build from source
Build the OpenMail app and the openmail command on your Mac.
OpenMail has no published release yet. To use it, build it from the source on GitHub.
Prerequisites
- macOS 13 or later, on Apple silicon or Intel. Semantic search needs Apple silicon.
- OpenMail needs Node 24, the version in
.nvmrc. Node 22 prints anode:sqlitewarning on every CLI call, and Node 25 and later no longer ship corepack. - pnpm through corepack. Run
corepack enableonce. The repository pins the pnpm version. - Xcode Command Line Tools:
xcode-select --install. The build compiles the app's Swift helpers. - Xcode 26 is optional. With it,
distcompiles the Icon Composer icon, so macOS 26 shows the Liquid Glass icon with its dark and tinted appearances. Without it,distpackages the committedbuild/icon.icns, a static render of the same icon that every macOS version shows unchanged. Xcode 26 needs macOS 15.6 or later.
Build the app
git clone https://github.com/Fanzzzd/openmail.git
cd openmail
pnpm install
pnpm --filter @openmail/desktop distThe last command builds the mail core, the CLI and the desktop app, then packages the app. It writes a DMG and a ZIP for arm64 and for x64 to apps/desktop/release/, and downloads a second Electron build for the architecture your Mac does not run. It never publishes anything.
Run the app
- Open
apps/desktop/release/OpenMail-<version>-mac-<arch>.dmg. Usearm64on Apple silicon andx64on Intel. Thex64build has no semantic search, because ONNX Runtime 1.30.0 has no macOS x64 binding. - Drag OpenMail to Applications.
- Open OpenMail. A build you make yourself opens normally, because only downloaded files carry the quarantine flag that Gatekeeper checks. Gatekeeper blocks a downloaded build that is not notarized on first open. Open it once, then go to System Settings → Privacy & Security and click Open Anyway.
- Add an account. A source build has no built-in Google or Microsoft sign-in client. Register your own as in Using your own OAuth client. IMAP accounts need only an app password.
Run the CLI and MCP server
dist and pnpm build both build the CLI. Run it from the repository:
node packages/cli/dist/cli.js accounts list
node packages/cli/dist/cli.js mcpTo type openmail from any directory, link the command with pnpm --dir packages/cli link --global. See CLI and MCP for the commands and the MCP setup.
Develop OpenMail
To run the app in development mode with a separate data folder, and to run the tests, follow CONTRIBUTING.md.