Skim A free AI email client for Windows that doesn't suck (that hard). Minimalist, native, fast. Bring your own AI key for the assistant and co-writer. No subscriptions, free forever. Free & open source · ~5 MB installer · no admin rights needed Grab Skim_x.y.z_x64-setup.exe from the latest release Website · Download · Report a bug · Contribute Why Skim Email clients usually come in two flavors: a browser cosplaying as an app, or a monstrous do-everything suite with ICQ-era vibes. Skim is neither: ⚡ Native, not Chromium. A Rust core with a system WebView2 UI (Tauri 2) — no bundled browser like Electron. The installer is a few megabytes, cold start is instant, idle memory is modest. No admin rights. ✂️ Half the features, cut on purpose. No calendar, no contacts manager, no rules, no filters, no snooze — none of the stuff you never actually use anyway. Fewer buttons, less cognitive load. Need a do-everything suite? Install Outlook. 🎯 Actions when you need them. Buttons appear only when they're useful; there's no menu bar at all. Skim's job is to surface the right action at the right moment. 🔒 Local and private by default. Your mail syncs over IMAP straight into a local SQLite cache. It works offline, search is instant, and nothing ever passes through anyone else's servers. Zero telemetry, zero anal probes. ✦ AI on your terms. Paste your own key — Anthropic (Claude), OpenRouter for models from any vendor (Claude, GPT, Gemini, Grok, …), or any OpenAI-compatible endpoint, including a local model (Ollama, LM Studio, vLLM) that never leaves your machine — and Skim drafts in your voice, summarizes threads, answers questions about a message, and chats across your whole mailbox with cited sources. No key? Skim is a great mail client without it. Requests go directly from your machine to the provider; the key lives in Windows Credential Manager. 🌍 11 languages, light & dark themes, keyboard-first. Features Mail Gmail, Outlook, Yahoo, iCloud, or any IMAP/SMTP server (autoconfig for the big ones) Google and Microsoft sign-in via OAuth (loopback + PKCE) or app password Multiple accounts side by side, plus a unified All inboxes view; compose from any of them with a per-message From picker Conversation threading (References/In-Reply-To with subject fallback) Archive, delete, star, read/unread — all optimistic with a durable offline queue: act instantly, Skim syncs when the network returns IMAP IDLE push + periodic polling; new-mail notifications with a mark-read quick action Lives in the tray: closing the window keeps mail syncing in the background; starts with Windows minimized (both optional) Compose, reply, reply-all, forward with proper threading headers Attachments: open, save; inline images served from the local cache Calendar invites get an RSVP card — Yes / No / Maybe answers the organizer the standard way, and Add to calendar opens the .ics in whatever calendar you already use (Skim itself has none, on purpose) One-click Unsubscribe for mailing lists — RFC 8058 one-click POST, unsubscribe e-mail, or the link in your browser, in that order Speed Instant full-text search (SQLite FTS5) over subject, sender, recipients, and bodies Ctrl+K command palette: search-as-you-type, jump to folders, every command Keyboard shortcuts: j/k move · e archive · # delete · s star · u unread · r reply · Ctrl+N compose · / search — press ? for the full list AI (bring your own key) There's no "Skim Pro" subscription and there never will be. Paste your own key and the ✦ violet buttons come alive: Drafts in your voice — tell it what to say and get a finished, first-person email. Skim can sift through your last 100 sent messages, pick the most representative ones, and match how you write — greetings, sentence length, punctuation. It replies in the sender's language, even one you don't speak Refine in dialogue — “shorter”, “add a deadline”, “drop the exclamation marks”. Each tweak lands on the current draft, keeping everything you didn't ask to change; your hand-edits are respected too Ask about an email — question one message or the whole thread (up to 25 emails in context), with follow-ups. Answers come only from the content — if it's not in the conversation, it says so Mailbox chat — ask “which invoices are still unpaid this month?” in the palette; Skim retrieves the relevant mail (FTS5/bm25) and answers with the source emails cited as clickable chips AI Recap — one click digests up to 20 unread emails, what-needs-a-reply first with deadlines and cited sources, and marks them read Context-aware — every prompt carries the current date, weekday, time, your timezone, your UI language, and the relevant thread. “Reply that I'll make it by Friday” becomes a concrete date Your writer profile — set your name, pick a style (formal / friendly / concise / witty / enthusiastic) or “write exactly like me”, and give standing instructions (“sign as Nick”, “my company is called…”) Three ways to bring a key — Anthropic directly (Claude Sonnet 5 default, Opus 4.8, Haiku 4.5), OpenRouter with one key for every vendor (Claude, GPT, Gemini, Grok, or any model slug you type in), or any OpenAI-compatible endpoint — Ollama, LM Studio, vLLM, a gateway, or OpenAI itself — including a local model that never leaves your machine Your key, your bill: Skim talks to the provider's API directly and adds no markup, no proxy, no accounts. The key is stored in Windows Credential Manager. Privacy & security HTML email is sanitized in Rust (ammonia) and rendered in a sandboxed iframe with a strict CSP — scripts never run Remote images blocked by default, with one-click per-sender allow Passwords, OAuth tokens, and your API key live in Windows Credential Manager — never in the database, never in a config file Install Download the latest installer from Releases — the .exe (NSIS) installs per-user without admin rights; an .msi is also published for managed environments. Requirements: Windows 10/11 with WebView2 (preinstalled on Windows 11). Skim keeps itself current: once a day it quietly asks GitHub for a new release and, if there is one, shows a small banner — one click downloads in the background, another restarts into the new version. Dismiss it and that version never nags again. No update, no banner, no background installer services. Connecting your mail Onboarding is email-first: type your address and Skim leads with the sign-in method that actually works best for your provider — no wall of buttons to pick from. Gmail — app password (recommended) Gmail's one-click OAuth needs a paid annual security assessment we don't do, so a Google-signed-in session gets logged out every few days. An app password has no such limit and is the reliable path: Enable 2-step verification on your Google account. Create a 16-character app password at myaccount.google.com/apppasswords. Paste your address and the app password into Skim — server settings fill themselves in. One-click Continue with Google is still offered as a secondary option (with an honest note about the weekly re-sign-in) when the build ships a Google client ID. Outlook / Office 365 — one click Press Continue with Microsoft. Skim opens your browser, you approve access, done — Skim never sees your password, and the OAuth tokens live in Credential Manager. This covers Outlook.com, Hotmail, and Office 365 / Exchange Online alike. Microsoft is retiring Basic Auth (app passwords) for Exchange Online in 2026, so OAuth is the way in. Yahoo / iCloud — app password Same three steps as Gmail, using each provider's app-password page (Yahoo · iCloud). Note for source builds: Google and Microsoft require each app distribution to register its own OAuth client. Official installers ship with the project's client IDs. Build from source without one and the OAuth buttons simply stay hidden — the app-password path still works. Any other server Enter your address and password; adjust the IMAP/SMTP hosts under “Server settings” if the guess is wrong. Implicit TLS (:993) for IMAP, STARTTLS (:587) or TLS (:465) for SMTP. Registering your own OAuth clients For forks and source builds (~15 minutes per provider, free). Google console.cloud.google.com → create a project. APIs & Services → Enable APIs → enable Gmail API. Google Auth Platform → configure the consent screen (External). Data access → add the scope https://mail.google.com/. Clients → create an OAuth client ID of type Desktop app. Bake the client ID (and secret) into your build via the SKIM_GOOGLE_CLIENT_ID / SKIM_GOOGLE_CLIENT_SECRET env vars at compile time. While your Google app is unverified it runs in testing mode: only listed test users can sign in and refresh tokens expire weekly. App passwords have no such limits — which is why Skim leads with them for Gmail and demotes one-click Google to a clearly-labelled secondary. Microsoft portal.azure.com → App registrations → New registration; allow personal Microsoft accounts and any organizational directory. Add a Mobile and desktop applications platform with the redirect URI http://localhost. Grant the delegated permissions IMAP.AccessAsUser.All and SMTP.Send (the Office 365 Exchange Online / outlook.office.com resource, not Microsoft Graph) plus offline_access, openid, email, profile. It's a public client — there is no secret. Bake the application (client) ID in via SKIM_MICROSOFT_CLIENT_ID at compile time. Until you verify a publisher, Microsoft's consent screen calls the app "unverified" and users in other organizations' tenants can be blocked from consenting. Publisher verification is free: join the Microsoft AI Cloud Partner Program (formerly MPN), verify a domain you control, then associate the Partner ID under App registrations → Branding & properties → Verify publisher. Clearing the in-app caveat. Skim shows an honest "may be unverified / limited sign-in" note next to each OAuth button until you tell the build the app is verified. Set SKIM_MICROSOFT_OAUTH_VERIFIED=1 (and SKIM_GOOGLE_OAUTH_VERIFIED=1, once you ever complete Google's CASA) at compile time to drop the respective note. Enabling AI Pick a provider and get a key (or point Skim at your own endpoint): Anthropic — console.anthropic.com (Claude, straight from the source) OpenRouter — openrouter.ai (one key for Claude, GPT, Gemini, Grok, and hundreds more — pick a suggested model or type any vendor/model slug) OpenAI-compatible — anything that speaks the OpenAI chat API: Ollama, LM Studio, vLLM, a gateway, or OpenAI itself. Give Skim the base URL, a model name, and a key if the endpoint needs one. Point it at a local model and your mail never leaves the machine (the mailbox chat wants a model with tool support). Paste it in onboarding (step 2) or later in Settings → Skim AI, on the provider's tab. That's it — the ✦ violet buttons light up. Your key, your bill: Skim talks to the provider's API directly and adds no markup, no proxy, no accounts. The key is stored in Windows Credential Manager and can be removed in one click. Keyboard shortcuts Key Action Ctrl K / / Command palette / search Ctrl N New message j / k Next / previous conversation e Archive # / Delete Delete ! Mark as spam s Star / unstar u Mark unread r / a / f Reply / reply all / forward q Ask AI about the email . Toggle sidebar ? Shortcut cheat sheet Esc Close / deselect Building from source Prerequisites:
