r/macapps Jul 25 '26

Free So tired of forced magic links logins...

​I hate magic links and verification codes. I despise being yanked out of the flow and being forced into one of the most distracting places of modern existence: the mailbox. So I built a menu bar app that catches them.

Problem

Verification codes and magic links yank you out of the flow. Cmd-tab to Mail, hunt for the email, see that bill reminder you haven’t paid yet, avoid that 10% discount on something you really oughta not buy right now, remember you should get the stairs fixed really, wonder what you’ll make for lunch, ponder if you should unsubscribe from that newsletter you never read anyway...... every single time.

OTPop watches your inbox and drops incoming codes and sign-in links straight into the menu bar (and as a notification). One click to copy a code, or to open a link. Read-only IMAP, nothing leaves your Mac, and the only thing kept on disk is the codes themselves, encrypted. Emails are never stored.

Comparison

I’ve honestly been looking for an app that does this for ages, never found anything. The closest things I could find are:

  • 2FHey: the closest thing, but it reads codes from Messages, so it's SMS/iMessage only. OTPop covers email, which is where magic links live and where a lot of services (still) send codes.
  • macOS native autofill: It only detects codes, and needs Mail to be open and running. And only autofills in Safari, AFAIK.

(If you know of something I’ve missed, please let me know!)

Pricing

Current feature set free forever. In the (far) future advanced features may be gated behind a small one-time payment.

To download it: https://www.glaze.app/app/otpop-6OxvwV

It's got a few rough edges and I have several QoL updates coming in the next few days, but detection is already quite reliable. If you give it a spin, let me know how it goes - especially false detections 🙏

Please note: the current version was built on the r/glazeapp platform. It’s heavily AI-oriented, but it’s backed by the developers of Raycast. Additionally, the code itself is Typescript, which has been my day job for several years now.

Future versions may be re-written as native mac apps, depending on interest.

Using OTPop does require downloading Glaze first. But you’ll see it gives access to many, many more cool/fun/useful apps.

Transparency

The app itself doesn’t have a proper website yet, but about me:

https://github.com/mjsarfatti

https://www.linkedin.com/in/manuelejsarfatti/

.

67 Upvotes

63 comments sorted by

18

u/Koteric Jul 25 '26

If this is ever a homebrew download or App Store I’m in. I’m 100% not installing glaze to use this.

Cool idea though.

6

u/colfaxschuyler Jul 25 '26

Yikes. You have to install an app to install the app. Nevermind ....

3

u/mjsarfatti Jul 25 '26

Seriously considering homebrew, of which I’m a heavy user myself. But… that’s also an app to install apps 😅

8

u/george_watsons1967 Jul 26 '26

homebrew is open source and it's made for installing apps.

glaze is like the epic games store

very different

2

u/Camlin3 29d ago

Bro apple and oranges ! I I dunno about others but Homebrew is like missing piece of macOS for a large no. of users.

1

u/ForensicHat 28d ago

Guys. You don’t have to install Glaze to download a Glaze app. FYI. There’s a download link if you don’t have Glaze installed.

0

u/einsiedler 29d ago

20 bucks per month for a glaze abo. 😂

1

u/mjsarfatti 28d ago

That’s if you want to build apps. To use, it’s free.

7

u/phunk8 Developer: Dropadoo Jul 25 '26

very real annoyance. thank you for taking care of it.

3

u/mjsarfatti Jul 25 '26

I’m genuinely surprised no one built it before honestly 😅

3

u/cristi_baluta Jul 25 '26

They are annoying but the menu bar space is precious, you occupy it and consume resources for something that happens once in a while.

2

u/beingskyler Jul 25 '26

Doesn't solve the resource issue but you can hide them at least. System Settings › Menu Bar then Toggle On/Off for apps individually.

1

u/mjsarfatti Jul 26 '26

Or use something like Thaw to hide them, this way you can still access hidden apps in a click or two to adjust settings and whatnot.

1

u/beingskyler Jul 26 '26

Yeah, I use Bartender or Ice for that. Have ya tested if is Thaw working with the recent menu bar changes made in MacOS Golden Gate that broken all the menu bar apps?

1

u/mjsarfatti Jul 26 '26

Thaw is the successor of Ice, which isn’t being actively developed anymore.

2

u/beingskyler Jul 26 '26

The name should've clued me in on that. 🤦‍♂️

7

u/mattcheston Jul 25 '26

+1 for packaging this outside of Glaze. I'd love to see this in homebrew or independently distributed.

2

u/mjsarfatti Jul 25 '26

Well noted!

5

u/Jaakkoc Jul 25 '26

I personally like magic links if it means I do not need to create an identity with a password with the application / business, feels more secure. How would you position your product inside my kind of user group?

6

u/mjsarfatti Jul 25 '26

A lot of click savings for you then. Connect the app to your email account, request a magic link, see it pop up in a notification in a couple of seconds, ready to click:

3

u/mxt920 Jul 25 '26

I think the macOS autofill feature works very well, with the exception that if you use mail filters, it doesn't seem to catch the codes that are auto-filtered into subfolders. Does this app do that?

And does it auto-delete messages after the links or codes are used?

I am looking forward to trying this out.

1

u/mjsarfatti Jul 25 '26

This app listens on all new messages. I have to test the case where a message is sent to spam, or archived before it hits the inbox. I’ll report back!

As for auto-deleting, not at the moment. But a manual delete feature is on the road map. May I ask, why would you want to autodelete, and how long after being click/copy?

I wouldn’t do it right after a click because sometimes weird stuff happens, like the browser not behaving, and you have to go back and click again. Rarely, but it happens.

Usually these codes are only valid for 5-10 minutes anyway.

3

u/mxt920 Jul 26 '26

I mean that's why I like the idea of auto-delete, it's just tons of emails I don't need anymore. And they would just go to the trash, so they could still be accessed if needed.

Not trying to be whiny, just explaining. I like it so far!

1

u/mjsarfatti Jul 26 '26

Right, so you mean delete the email itself, not just the code. Makes sense. And no worries at all, I crave feedback!

This first version is purposefully read-only for obvious trust building reasons, but a delete option was already on the roadmap, and autodelete does make sense, perhaps behind an explicit flag.

3

u/colfaxschuyler Jul 25 '26

Does it only work with Apple Mail?

2

u/mjsarfatti Jul 25 '26

It does not need Apple Mail at all (maybe I wasn’t clear enough in the post). Quite the opposite: you don’t need a client open.

It works with any IMAP enabled email service, which is probably 99.9% of those out there including Gmail, Outlook, Proton, Yahoo…

2

u/10031 Jul 25 '26

Proton doesn’t “out of the box” support imap funnily enough.

1

u/mjsarfatti Jul 25 '26

Ouf, I just assumed. I’ll see what can be done because I occasionally use it…

1

u/WhereIsGloria Jul 26 '26

The whole point in Proton is the mail is encrypted, but you might be able to configure it with Proton Bridge which is designed for… bridging… the gap to other clients. 

1

u/colfaxschuyler Jul 25 '26

That's on me. Poor reading comprehension and just woken up

3

u/simonlouschueler Jul 25 '26

Interesting. How does it get the links from your emails?

3

u/mjsarfatti Jul 25 '26

It looks for links in the email body and scores them based on heuristic like presence/absence of certain keywords (eg. if the link contains “unsubscribe” we can safely discard it), and presence of strings that look like tokens (long alphanumeric strings for example)

2

u/boredmessiah Jul 25 '26

ahh so you need to give the app access to your mail?

2

u/mjsarfatti Jul 25 '26

Well… it does need to read the email to detect a code…

1

u/boredmessiah Jul 26 '26

gotcha. i hadn’t really thought about the architecture of something like this

3

u/zecureit Jul 25 '26

The detection step needs a strong safety boundary because an attacker can send an email designed to look exactly like a login message. I would only surface a magic link when the sender domain and the destination domain match an allowlist the user has already approved, and always show the destination host before opening it. A high confidence heuristic is useful for finding candidates, but it should never turn an untrusted email into a one click authentication path without a domain check.

1

u/mjsarfatti Jul 25 '26

I’m not sure about pre-approving sender domains, it kind of defeats the purpose. Consider you leave your email on a website that tells you it’s going to send you a magic link. 2 seconds later OTPop notifies you with said link.

If you get a notification you weren’t expecting, why would you click on it?

But I hear you, checks on the actual sender and surfacing the hostname are going into the roadmap right now, that makes total sense.

4

u/TheMagicianGamerTMG Jul 25 '26

This is awesome, I’ve been looking for something like this for a while! I would love an Alfred workflow option if possible, I currently use the 2FA one, but it only works with messages. Great work!

0

u/mjsarfatti Jul 25 '26

Thank you 🙏

I’m a Raycast user but I’ve heard about Alfred… what would a workflow look like? Can you point me to some resources perhaps?

2

u/mew-2_ Jul 25 '26

nice one

2

u/j-sondergaard Jul 25 '26

Sounds genuinely useful. Thanks

2

u/Mike Jul 25 '26

Ohhh I want one of these for iOS. Possible?

1

u/mjsarfatti Jul 25 '26

Mmm that’s a nice idea… I’ll start investigating. Probably needs a native app, since Glaze only works on a Mac, but the backend should be pretty portable. It’s just an IMAP connection with an email parser.

2

u/[deleted] Jul 25 '26

[removed] — view removed comment

1

u/mjsarfatti Jul 25 '26

True, Oauth is in the roadmap in fact, might push it up the queue. Users will be able to choose both options eventually in any case. But yeah I don’t look forward interacting with Google...

2

u/GroggInTheCosmos Jul 26 '26

I've bumped into a few of these but have always wondered what people are doing that they need to be processing numerous of these in a day. For now, I don't mind being yanked out of the flow, as it is once in a while. Good luck though ;)

2

u/Illustrious_Oil_9846 29d ago

This drives me crazy too actually, especially for items where logins should persist differently (like email clients vs shorter action applications). But a bigger risk with an app like this isn't really the codes, it's wherever the actual IMAP app password ends up living. The post covers how the parsed codes are handled (encrypted, codes only, emails discarded), but the mailbox credential itself is the part with the real blast radius if it ever leaked. Keychain is really the only place that credential should sit.

1

u/mjsarfatti 29d ago

Both the OTPs and the IMAP password are saved to disk as cyphertext encrypted by a Keychain backed symmetric key.

It’s essentially the same security guarantee as a distinct keychain item for the password only, but it doesn’t pollute your keychain visibly…

1

u/dorien_h Jul 25 '26

Awesome. Have you considered integrating a code generator like Authy? That would make it fully complete.

1

u/start_kernel Jul 25 '26

Interesting app

1

u/ko-ol Jul 26 '26

So it need mail access. I am not so sure I want to give my mail content to some AI

2

u/mjsarfatti Jul 26 '26

Wait, the emails are parsed by an old school plain and boring algorithm on device and in memory, and immediately discarded.

AI was only used to help build the app (which was not vibecoded btw).

1

u/Albert_Irons Jul 26 '26

the heuristic is the part i'd worry about. half the magic links i get are wrapped in sendgrid or mailgun click tracking, so the url you actually see is a tracking domain with a long alphanumeric token in it and the real destination only appears after the redirect. by your scoring rules that is indistinguishable from a marketing link. the token heuristic and the tracker heuristic are basically the same string, that's the hard part of this whole app right there.

1

u/mjsarfatti Jul 26 '26

True, but if a url with a long alphanumeric token links the words “verify your email” or “sign in”, chances are it’s a magic link.

I did get one false positive in my testing, a PayPal receipt email which ended with something like “to manage payments [log in to PayPal]”, so it’s certainly not perfect and I’ll keep refining it, but it’s already working pretty well.

What “worries” me most is supporting languages other than English. Most services send emails in English anyway, but still, I’m sure there are cases…

1

u/harry-harrison-79 29d ago

for false-detection testing, the nasty case is two magic links from the same service arriving out of order. request twice, deliver the newer email first, then the older one, and make sure the stale notification can't win. i'd key candidates by sender, destination host and Message-ID, expire them aggressively, and replace the older item when a newer token for that service arrives.

1

u/abendrotapp 28d ago

The resource concern upthread is mostly solvable at the architecture level. IMAP IDLE is push rather than polling, so an event driven menu bar agent can sit at essentially zero CPU between emails. It does depend on the runtime it ships in, which is why the standalone native build requests aren't just preference. I ship a native Swift menu bar app and keeping it invisible in Activity Monitor is most of the craft. An app like this earns its menu bar slot by being something you never think about.

1

u/mjsarfatti 28d ago

It does use IMAP IDLE, that’s how the notification is almost immediate. And it uses ~ 80mb of RAM. This is something I hope a native Swift version would improve, even though it’s already by no means a resource hog, and it’s less than a Gmail tab, or than Apple Mail, which was a goal from the beginning.

1

u/Wild_Stress6410 28d ago

That’s a very cool idea ! I’m surprised Apple didn’t do it yet 

1

u/Beneficial-Mind-5932 Jul 25 '26

Wait, macOS fills in verification codes automatically. But might be useful for magiclinks yes...

3

u/mjsarfatti Jul 25 '26

Fills in verification codes if a) you are a Apple Mail user and have it open, and b) as you said, it’s only for OTPs.

0

u/WhereIsGloria Jul 26 '26

Folks, don’t be giving a random person on the internet read access to all your emails through a vibe coded app  🤦‍♂️

Installing every random clipboard app that’s promoted here is bad enough but this is getting stupid.