Repository navigation
Releases: marctuinier/mac-mail-llm
Release list
v1.3.3
Extension Works Independently
Fixed
- The Mail extension no longer requires the host app to be running. The API key is now stored in a shared Keychain access group accessible by both the host app and the extension independently. Just open the host app once to set your API key, then close it — the extension handles everything on its own.
- One-time migration automatically moves any existing API key to the shared access group on first launch
- Bumped build number to fix extension registration not updating between releases
Full Changelog: v1.3.2...v1.3.3
v1.3.2
Cancel Button & Context-Aware Free-Text Drafting
Added
- Cancel button during generation — a Cancel button now appears next to the thinking/writing phase label. Click it to immediately stop the API request and return to the home screen, cleanly and without errors
- Context-aware free-text drafting — when you type a freeform instruction in "What would you like to draft?", the AI now receives all your saved prompts as background reference knowledge. It can pull in tone, links, product details, and templates from your saved profiles without you explicitly selecting one
Full Changelog: v1.3.1...v1.3.2
v1.3.1
Multi-Window Compose, Live Call History & Extraction Fallbacks
Added
- Multi-window compose support — each compose window gets its own independent AI generation session; open 3 reply windows and generate drafts in each without interference
- Email body extraction fallbacks — when MailKit's
rawDatais unavailable, the extension now tries Accessibility API and AppleScript scraping - Per-session debug logs — each generation request writes a standalone session log for easier troubleshooting
Changed
GenerationManagerrefactored from singleton to per-session instances keyed by compose session ID- Call History in the host app updates in real time via
DistributedNotificationCenterwithdeliverImmediately, plus a 5-second polling fallback
Fixed
- Call History not updating until the host app was clicked
- Stale email context from a previous compose window being reused when
rawDatawas unavailable
Full Changelog: v1.3.0...v1.3.1
MailMate AI v1.3.0
What's New in v1.3.0
Native AI Thinking / Reasoning
The AI's reasoning process is now visible in the extension panel during both initial generation and refinement. Uses Gemini's native thinking_config API for genuine multi-step reasoning — the thinking streams live in italic, then transitions seamlessly to the email output.
Auto-Retry on Errors
Transient network errors, timeouts, and API rate limits (429/5xx) are automatically retried up to 2 times with increasing delays. Request timeout increased to 120s.
Retry Button
When generation fails, a "Retry" button appears alongside "Start Over", preserving the last request context so you can retry without re-entering everything.
Call History / Audit Log
New Call History tab in the host app showing a table of all past generation and refinement calls:
- Status indicator (green/red) for success/failure
- Date/time, model, token usage, and estimated cost
- Click any row to open a detail view with full instruction, AI thinking, generated output, and metadata
- "Copy Instruction" button for easy retry
- Live refresh when the Mail extension completes a new call
- Persistent local storage (up to 500 entries)
Other Changes
- Refinement now retains the original system prompt context and applies changes non-destructively
- Token usage tracking (
usageMetadata) captured from Gemini streaming response - Cost estimation based on published Gemini API per-model pricing
- Edge-to-edge extension panel layout for a cleaner feel
Full Changelog: https://github.com/marctuinier/mac-mail-llm/blob/main/CHANGELOG.md
MailMate AI v1.2.1
What's New
Format-Agnostic Prompt Passthrough
Rich prompts (500+ characters) are now passed verbatim to Gemini as the system instruction. Users can write prompts in JSON, markdown, plain text, or any format — the experience is identical to pasting into Gemini's web chat. The previous structured JSON parser has been removed in favor of this simpler, more flexible approach.
Robust Email Extraction
- HTML-only emails (no
text/plainMIME part) now have their body correctly converted to plain text, ensuring Gemini always receives the full email thread. - Base64-encoded MIME parts are now decoded during extraction.
- Emails from Outlook and other clients that only provide HTML no longer result in empty context.
Cleanup
- All debug diagnostic logging removed from production builds.
Full Changelog: v1.2.0...v1.2.1
MailMate AI v1.2.0
What's New
Gemini 3.x Model Support
- Added Gemini 3.1 Pro Preview, Gemini 3.1 Flash-Lite Preview, and Gemini 3 Flash Preview to the model picker.
- Added Gemini 2.5 Flash-Lite as an additional option.
Settings Migration
- If a previously saved model name is no longer valid (e.g. from API preview changes), settings now auto-correct to
gemini-2.5-flashinstead of producing a 404 error.
Also Included
- README refreshed with badges and cleaner layout.
- CHANGELOG.md added following Keep a Changelog format.
Full Changelog: v1.1.1...v1.2.0
MailMate AI v1.1.1
What's New
- Compact popover — The extension panel now dynamically sizes to fit its content, removing the large empty space above the UI.
- Reliable auto-paste — Improved keystroke simulation with proper Accessibility checks and timing. When permission is granted, clicking "Insert into Email" pastes directly into the compose body at the cursor.
- Smarter confirmation — Shows "Inserted into email!" when auto-paste works, or "Copied to clipboard" with Cmd+V instructions when Accessibility isn't available.
Installation
- Download
MailMateAI-v1.1.1.dmgbelow - Open the DMG and drag MailMate AI to Applications
- Launch the app and enter your Gemini API key
- Enable the Mail extension in System Settings > General > Extensions
MailMate AI v1.1
What's New
-
Structured prompt intelligence — Rich JSON prompts (with sender profiles, talking points, reply templates, and logic trees) are now parsed and used as structured system context instead of raw text dumps. This dramatically improves the AI's ability to produce empathetic, context-aware replies that follow your templates and tone guidelines.
-
Streamlined build configuration — Developers now configure their Team ID via a simple
Local.xcconfigfile (copy the example, fill in your ID, build). No more editing entitlements or pbxproj manually. -
Improved AI empathy — Updated system prompts prioritize acknowledging the sender's emotions, referencing their specific words, and adapting templates to the situation rather than copying them verbatim.
Installation
- Download
MailMateAI-v1.1.dmgbelow - Open the DMG and drag MailMate AI to Applications
- Launch the app and enter your Gemini API key
- Enable the Mail extension in System Settings > General > Extensions
MailMate AI v1.0
MailMate AI v1.0 -- Initial Release
AI-powered macOS Mail extension that generates email replies directly in the Mail compose toolbar.
Installation
- Download MailMateAI.dmg below
- Open the DMG and drag MailMate AI to Applications
- Launch the app and enter your Gemini API key
- Enable the extension in System Settings > General > Login Items & Extensions
- Open Mail, compose an email, and click the MailMate AI icon in the toolbar
Features
- Generate email replies using Google Gemini AI
- Live streaming preview during generation
- Iterative refinement ("make it shorter", "add a deadline note")
- Auto-paste into the compose body (with Accessibility permission)
- Saved prompt templates for common reply types
- Tone matching from your example emails
- Background generation -- keeps working when you click away
Requirements
- macOS 14.0 (Sonoma) or later
- Google Gemini API key (free tier available)