Skip to content

jon-makinen/warpmail-app

Repository files navigation

Warpmail

Warning: This is still very WIP and has critical bugs

Your inbox is full of noise.

An email client that runs locally, uses AI to tag and sort your mail, and stays out of your way. Open source. No account needed.

Why this exists

As a founder, my inbox was drowning in cold outreach, marketing, and noise. The stuff that actually mattered got buried. I looked for a solution that was fast, local, and could use AI to sort through it all. Nothing fit.

I was inspired by tools like Linear and other well-crafted software that just feels right to use. Fast, keyboard-driven, no bloat. I wanted that for email.

So I vibecoded it. This is the result. It's early, there are plenty of bugs, and it's rough around the edges. But it works, it's fast, and it solves the problem I had.

It's open source and MIT licensed. Anyone is free to contribute, fork it, or just use it.

Want to try it without connecting your email first? There's seed data built in so you can test all the features with fake emails.

What is Warpmail?

Warpmail is a desktop email client built for speed and focus. It runs entirely on your machine with no external servers or tracking.

  • Extremely fast - Built with Go. Performance was a priority from day one.
  • Local-first - SQLite on your machine. Nothing leaves your computer. No cloud, no tracking.
  • Cross-platform - macOS, Windows, and Linux. Same experience everywhere.
  • AI tagging - Emails get tagged automatically. Cold outreach, spam, marketing, receipts. Generate tags from your actual inbox or define your own.
  • Intent detection - AI detects what each email wants: reply needed, FYI, scheduling, decision, feedback, etc. Configurable intents with color coding. Drives the triage view.
  • Auto-summarize - Set which tags and priorities should be automatically summarized on sync. Important emails have summaries ready before you open them.
  • Writes like you - Build a writing style profile from your sent emails. AI drafts replies that actually sound like you.
  • Reply suggestions - AI suggests replies in triage. Review and send with one click, or send all suggestions at once.
  • Keyboard-driven - Vim and traditional shortcut presets. Do everything without touching the mouse.
  • Quick view - Preview emails without leaving the list. Navigate with keyboard, reply, summarize, or act on emails inline. Shows other emails from the same sender in a sidebar.
  • Brief with B - One key to get a bullet-point summary of any email. Works in list, quick view, triage, and compose.
  • Triage dashboard - Prioritize your inbox fast. Emails are split into "needs response" and "good to know" based on AI intent detection. Bulk actions to send all suggestions or mark all read.
  • Triage briefing - AI-generated summary at the top of triage with real-time stats. Configurable refresh interval.
  • Quick reply - Press T to reply with a one-liner without leaving the list or quick view.
  • Snooze - Press Z to snooze an email. Pick from presets (1 hour, 3 hours, tomorrow, next week) or a custom time. Snoozed emails reappear when ready.
  • Rules engine - Auto-move, tag, delete, or prioritize emails by sender, subject, body, or AI tags. Create rules with AI or manually. AI can also recommend rules based on your setup.
  • Search - Full-text search across all emails. Filter by sender, tags, date range, priority, and status.
  • Group by - Group your email list by priority, status, tag, date, or account.
  • Stats dashboard - See emails per day, hourly distribution, priority breakdown, top senders, and tag distribution.
  • Desktop notifications - Get notified for new emails. Filter by tags and priority so you only see what matters.
  • Undo send - Configurable delay (0–30 seconds) before emails are actually sent. Cancel if you catch a mistake.
  • Block sender - Right-click any email to block the sender.
  • Dark and light theme - Switch between dark and light mode in settings.
  • Your API keys - Bring your own Anthropic key. Stored in your system keychain. We never see it, touch it, or proxy it.
  • Multi-account - Manage all your IMAP/SMTP accounts in one unified inbox. Presets for Gmail, iCloud, and Outlook.
  • Custom folders - Create your own folders and move emails into them with rules or manually.
  • Auto-updates - Checks GitHub releases for new versions and shows an update indicator in the sidebar.
  • Demo data - Try all features with ~500 fake emails before connecting a real account.
  • Open source - MIT licensed. Fork it, read it, contribute.

Getting Started

Try without connecting email: On first launch, click "Demo Data" on the welcome screen (or use Settings > Database > Seed Demo Data). This resets the database and loads ~500 fake emails so you can try all features—AI categorization, rules, search, etc.—before adding a real account.

  1. Add your email accounts - Supports any IMAP/SMTP provider with presets for Gmail, iCloud, and Outlook. Start with one to test, but Warpmail shines with all your accounts.

  2. Add your Anthropic API key (optional) - Enables AI categorization, reply drafting, and writing style profiles. Get a key at console.anthropic.com.

  3. Create your writing style profile - Analyzes your sent emails so AI can draft replies that sound like you.

  4. Categorize and create rules - Let AI tag emails as cold, spam, marketing, important, etc. Then create rules to auto-move them.

Installation

Option 1: Download Pre-built App

Download the latest release

  • macOS: Warpmail.app (Universal - works on Intel and Apple Silicon)
  • Windows: Warpmail.exe (64-bit)
  • Linux: warpmail binary

macOS: First Launch

The app is not signed with an Apple Developer certificate. On first launch, macOS will block it. To open:

Method 1 (easiest): Right-click the app and select "Open", then click "Open" in the dialog.

Method 2: Go to System Settings > Privacy & Security, scroll down and click "Open Anyway".

Method 3 (terminal):

xattr -d com.apple.quarantine /Applications/warpmail.app

Linux: First Launch

chmod +x warpmail
./warpmail

Option 2: Build from Source

Prerequisites

  1. Go 1.24+
  2. Wails CLI v2
go install github.com/wailsapp/wails/v2/cmd/wails@latest

Build

# Production build
wails build

# Development mode (hot reload)
wails dev

The built app will be in build/bin/.

Platform-specific builds

# macOS (Universal)
wails build -platform darwin/universal

# Windows
wails build -platform windows/amd64

# Linux
wails build -platform linux/amd64

Or use the included build script to build all platforms at once:

./build.sh

Adding Email Accounts

Click the + button next to "accounts" in the settings. Presets are available for Gmail, iCloud, and Outlook that auto-fill the server details.

IMAP/SMTP settings:

  • Email address: Your full email address
  • IMAP host/port: e.g., imap.gmail.com:993
  • SMTP host/port: e.g., smtp.gmail.com:465
  • Username: Usually your email address
  • Password: App-specific password (for Gmail, generate at myaccount.google.com/apppasswords)

Keyboard Shortcuts

Press h to see the full shortcut overlay. Two presets are available: Traditional and Vim.

Navigation

Action Traditional Vim
Move up W / K /
Move down S / J /
Open email Q O
Extend selection up Shift+W Shift+K
Extend selection down Shift+S Shift+J
Command bar K Ctrl+K

Actions

Action Shortcut
Open email Enter
Go back / clear Esc
Command bar F
Toggle panel P
Help overlay H
New email N
Open last draft O
Reply A
Suggest reply (AI) Shift+A
Forward G
Delete D
Mark read / toggle R
Jump to top U
Jump to bottom Y
Copy email C
Move to folder M
Snooze Z
Archive E
Brief / Summary B
Quick reply T
Open attachments Cmd+O / Ctrl+O

Compose

Action Shortcut
Brief / Summary Cmd+B / Ctrl+B
Write with AI Cmd+G / Ctrl+G
Send (answered) Shift+Enter
Send (waiting) Ctrl+Shift+Enter

Selection

Action Shortcut
Select Space
Extend selection Shift+W/S or Shift+J/K
Select all Cmd+A / Ctrl+A
Clear selection Esc

Triage

Action Shortcut
Done D
Snooze Z
Reply A
Use suggested reply R
Brief me B
Quick reply T

Creating Rules

Click "rules" in the sidebar. You can describe a rule in plain English and AI will create it, or add one manually.

Rules run automatically in the background. When you add or change a rule, it gets applied to all existing emails too.

Fields: from, from_name, to, subject, body, tags

Operators: contains, equals, starts_with, ends_with, not_contains, has_tag

Actions: move, tag, delete, mark_read, set_priority

Scope rules per account or apply them globally.

AI Features

Requires an Anthropic API key (stored in your system keychain). We never see it, store it, or proxy it. Choose different AI models per feature (tags, intents, summarize, writing) in Settings > AI.

Categorization (Tags)

Emails get categorized using your API key. There are sensible defaults, but you can let AI analyze your inbox and generate tags specific to the kind of email you actually get.

Tag Description
cold Cold outreach, sales pitches, partnership requests
spam Unsolicited promotional content, scams
marketing Newsletters, promotional emails from subscribed services
important Work-related, personal, time-sensitive, financial/legal
receipt Purchase confirmations, order updates, invoices
notification System alerts, social media notifications, automated messages

Tags are fully customizable — add, remove, rename, recolor, and set descriptions in Settings > Tags. Click "Generate Tags from Inbox" to let AI suggest tags based on your actual email.

Intent Detection

AI detects what each email wants from you. Intents drive the triage view, splitting emails into "needs response" and "good to know".

Intent Description
reply Expects a reply from you
action Requires you to do something
decision Needs a decision or approval
scheduling Meeting or calendar related
feedback Asking for your input or opinion
fyi Informational, no action needed
notification Automated alert or system message

Intents are customizable with colors in Settings > Intents. Generate from inbox or define your own. Filter which tags and priorities trigger intent detection.

Writing Profile

Ask AI to analyze your sent emails and it builds a profile of how you write. Tone, length, greetings, sign-offs. When you generate a reply, that profile is used as context. You can tweak it anytime or regenerate it.

Reply Suggestions

In triage, AI suggests replies for emails that need a response. Review the suggestion inline and send with one click, edit it first, or use "send all suggestions" to batch-send.

Email Summaries

Press B to generate a brief/summary of any email. Works everywhere:

  • List view: Opens quick view and generates a bullet-point summary
  • Quick view: Shows a summary banner at the top
  • Triage: Generates an inline briefing with summary bullets and a reply suggestion
  • Compose: Cmd+B / Ctrl+B summarizes the draft or reply context

Summaries are saved to the database so they persist across views—summarize in quick view and it's already there when you reply.

You can also enable auto-summarization in Settings > Summarize. Choose which tags and priorities should be summarized automatically on sync, or let AI recommend criteria based on your setup. Important emails will already have summaries waiting when you open them.

Triage Briefing

The triage view shows an AI-generated summary at the top with stats (emails in triage, need reply, FYI, pending). The briefing refreshes on a configurable interval (Settings > Triage, default 6 hours). Click "regenerate" to refresh manually.

AI Rule Creation

Describe a rule in plain English (e.g. "move cold emails to trash") and AI creates the rule for you. It knows your existing tags and folders.

AI Rule Recommendations

Click "AI Recommend Rules" in the rules panel and the AI will suggest useful rules based on your tags, folders, and existing rules. It recommends things like trashing cold outreach and marketing, setting priority for important emails, and organizing by folder. Review each suggestion and add with one click.

Data Storage

All data is stored locally:

Data Location
Database ~/.warpmail/warpmail.db (SQLite, WAL mode)
Database (dev) ~/.warpmail-dev/warpmail.db (when running with wails dev)
Attachments ~/.warpmail/attachments/
Passwords macOS Keychain / Windows Credential Manager / Linux Secret Service
API Keys System keychain
Settings In-database key-value store

Tech Stack

Component Technology
Backend Go 1.24
Desktop framework Wails v2
Frontend Vanilla HTML/CSS/JS
Database SQLite (WAL mode)
SQL generation sqlc
Email protocols IMAP (TLS/STARTTLS), SMTP (TLS/STARTTLS)
AI Anthropic Claude API
Security System keychain (go-keyring), DOMPurify, bluemonday

Development

Project Structure

internal/
  app/        # Application logic and frontend bindings
  ai/         # Anthropic API client and AI tasks
  db/         # Database layer and migrations
  db/sqlc/    # Generated SQL queries and models
  email/      # IMAP/SMTP client
  detector/   # Pattern-based spam/cold/receipt detection
  keyring/    # System keychain integration
  rules/      # Rule matching engine
  seed/       # Demo data for testing without a real account
frontend/
  dist/       # Frontend assets (HTML, CSS, JS)

Database

The database layer uses sqlc for type-safe SQL queries.

# Regenerate after modifying SQL
sqlc generate

SQL files are in internal/db/sqlc/.

Tests

go test ./...

Tests cover input validation, HTML sanitization, and the rule matching engine.

License

MIT

About

Vibecoded email client that runs locally, uses your AI API key to tag and sort your mail, and stays out of your way. Open source. No account needed.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors