Launched this week
Quartz turns Gmail into a focused inbox. It sorts every message by importance, and learns what matters to you over time. When you reply, it drafts in your own voice. And the AI runs entirely on your own Mac, so your mail stays end-to-end encrypted and never shared with AI providers.









Quartz
Hi Product Hunt!
We built Quartz because our own inboxes had become impossible to keep up with.
AI made it easier than ever to send emails at scale. We think AI should also help people defend their inboxes from that noise.
Quartz is an AI-native email app that protects your focus and helps you get through email faster. It learns your style and preferences over time, so it gets better the more you use it.
And because email is private, Quartz runs entirely on your device. Your emails are not sent to AI providers.
Excited to share it with you today. We’re currently in public beta and free to use.
We’d love to hear what you think!
Local first AI on Tauri for inherently private data (email here, but the pattern generalizes to trading, health, code) is the architectural answer to "I want AI but not in the cloud." The hardest part isn't the model. It's the bundling and update story. How are you handling the Gemma 4 E4B model size in the Tauri bundle, shipping it bundled, downloading on first launch, or external dependency? And how do you handle model updates without re-downloading the entire 4GB+ weight file each time?
The "learn from sent emails in this thread first, then to same person, then others" hierarchy is a smart loop. I'd be curious what happens for users with very short reply history. Does the model fall back to a base "professional but warm" voice, or does it just produce neutral drafts until enough signal accumulates? The cold-start problem is the part most local-first AI tools handle poorly.
Congrats on the launch.
Quartz
@joshua_santiago2 thank you! All valid questions, appreciate them! Gemma 4 is downloaded as you complete the onboarding process. Right now we don't have any optimizations in place for model updates, so yes, it'll re-download the entire 4 GB file. But thanks for highlighting that, it's definitely something we need to take care of.
We address the cold start problem with a proper onboarding. We allow users to specify their categorization preferences and writing style via their profile (think of it as CLAUDE.md for Claude Code)
@pavel_demeshchik The CLAUDE.md analogy is exactly right. Having users author their own context doc that the model loads is the cleanest pattern for cold start. We've found the same in our domain (different vertical, similar architecture). Users will write more accurate self-descriptions than any inference from limited interaction history would produce in the first week.
On the 4GB re-download problem when it comes time to optimize: the two patterns that work well for on-device models are differential weight updates (ship only the changed tensors, usually ~5-15% of total size) or base-model + LoRA adapter splits (base stays static, adapters are 100-500MB and update independently). Llama.cpp has decent tooling for both. Gemma 4 is recent enough that the ecosystem is still building this out, but worth designing the update path now rather than retrofitting later.
Looking forward to trying Quartz.
Quartz
@joshua_santiago2 thank you for advice! Looking forward for your feedback
Running the AI locally and keeping emails end-to-end encrypted is the right call — most people don't realize how much of their inbox ends up on third-party servers. The "learns your voice" for drafts is the feature I'm most curious about.
How long does it take for Quartz to actually learn your writing style — is it noticeable after a few replies or does it take weeks?
Quartz
@doganakbulut, good question. Steering model to produce decent email draft in user's voice or at least not cringe was one of the hardest challenges and we're not done yet.
Right now it should be noticeable after just a couple of sent emails. Important thing is that we don't fetch sent emails from Gmail at the moment and rely only on emails sent from the app. The model would try to learn first from the email you already sent in the same thread, than from emails you sent to the same person, then from others.
Quartz
@doganakbulut ah, it's also possible to give more context about yourself in "Writing style", it should help immediately.
Standard Resume
How does the filtering work? This would be extremely useful if it had some learning mechanism that delivered personalized results.
Quartz
@rileytomasek good question! Filtering is personalized based on your profile (think about it as your Claude.md) + learnings over time. You can correct AI filtering and provide feedback which it take into account next time it sees a similar email
Standard Resume
@pavel_demeshchik what types of things does the personalization learn from?
Quartz
Really interesting local first approach. Just curious, which model(s) are you running locally?
Also, can I define any custom categories? Like emails about credit card transactions or UPI payments?
Quartz
@ashish_parab good questions!
We're running Gemma 4 E4B on-device. Custom categories aren't in yet, right now it's the standard five importance levels, but they're on our roadmap!
Quartz
@ashish_parab @pavel_demeshchik while we don't have custom categories, it's possible to steer Quartz to put CC transactions and similar emails to particular category. You may describe desired behavior in AI Settings or you can manually define a category for such emails and Quartz will learn to use the category for similar emails in the future.
@pavel_demeshchik @dzhlobo - Cool, I'll try it out this week. Currently I add custom filters in gmail which is a manual process and doesn't adapt automatically.
Great project! You mentioned how cold emails create clutter and this tools helps dealing with that.
Do you think we can expand this into agent2agent communication? Like both sides essentially have AI messaging each other and if things make sense, the issue gets escalated to humans.
One of the reasons we treat cold emails as spam is because there are so many of them. However, if there is a proper processing layer, I actually do wish people to reach out to me and let me know how they can bring value.
Quartz
@vugar_javadov I think eventually we'll get to agent2agent communication: my personal AI agent will be speaking to yours and both of us will only get involved if there's something of common interest. My big vision for Quartz is building personal attention layer across all communication channels (email, WhatsApp, Telegram, etc), email is just the most painful channel as of now (no regards to privacy)
the 'drafts in your own voice' bit locally is what i'd watch — no per-user training step means few-shot on your sent mail, so the voice match lives or dies on which examples get picked.
Quartz
@qifengzheng you're absolutely right, the remark is on point.
I think decent drafting experience was (and still is TBH) one of the hardest challenges we had. We're still working on it and continue improving it.
Speaking about examples we choose, we try to pick outgoing emails from the same thread first, then emails sent to the same contact, then the rest of emails. It's also possible to describe your style and give more context about yourself in settings.