Stack Apps is a question and answer site for apps, scripts, and development with the Stack Exchange API. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top




Version 1.1

  • Added support for Notification Center (10.8 and later)
  • Adjusted menu icon to align better with existing menu items
  • Auto-update is now supported via Sparkle

Version 1.0

  • Option to automatically start at login
  • Login token now requested with no_expiry (you may need to re-allow after upgrading)
  • New application icon

Version 0.5

  • Now compatible with Mac OS X 10.6 (Snow Leopard) and later
  • Different hide times are now available
  • Status icon is black when there are no messages (thanks Kevin Sołtysiak)
  • Better error handling and reporting on inbox checking failure

Version 0.4

  • Growl support built-in (optional, notifications off by default)
  • Site icon is now displayed in notification menu items


SENotifier is a Mac OS X app that shows the current contents of your Stack Exchange inbox in the menu bar and was inspired by Gmail Notifier.

I created this app so the inbox notifier would be visible all the time, instead of only when a Stack Exchange page was loaded in the browser.

This app uses the new Stack Exchange API v2.0 with authentication, so it can get the current contents of your inbox.


BSD license.


Download (750 KB .dmg)

Or install with Homebrew:

brew cask install stack-exchange-notifier


SENotifier requires Mac OS X 10.6 (Snow Leopard) or later.


Greg Hewgill


This app is developed in Objective-C using Xcode 4.2. No (Stack Exchange) libraries were harmed in the creation of this software (that means the authentication flow is all straight Objective-C code). SBJson is used for the JSON parsing bits.

The code is available on GitHub at


Enter image description here

share|improve this question
Hey, thanks for sharing! Great work. – sudo rm -rf Feb 23 '12 at 2:28
@GregHewgill It would be nice to have an option to check for update. – user10026 Mar 5 '12 at 9:21
Download link isn't working for me. – Kevin Montrose Mar 16 '12 at 20:48
@KevinMontrose: Failing power supply in server has been replaced. Download link should be working again! – Greg Hewgill Mar 17 '12 at 2:40
@GregHewgill I've encountered a problem with the Stack Exchange Notifier App and want to mention it here: My Macbook Pro will not sleep automatically when the Notifier is running. It took me quite some time of trial and error to isolate the problem to the Notifier. – user10026 Mar 22 '12 at 10:08
@gentmatt: That's very strange, I don't even know how to prevent a machine from sleeping. Also, my machine sleeps just fine even with the notifier running. Question for you: Does this problem still happen when you choose the "Hide for xx hours" option in the notifier? – Greg Hewgill Mar 22 '12 at 18:01
Very nice - I love the menu icon's states. – Jarrod Dixon Mar 23 '12 at 6:19
@GregHewgill When I use the "hide" option, the mac sleeps reliably. When the notifier is running, it probably never sleeps. Why do I say probably now? Well, this morning was the first time (out of a dozen) where I've left my computer running with the SE notifier open and it managed to sleep. But it must have happened a lot later than configured in the Energy Saver settings. – user10026 Mar 23 '12 at 11:58
@gentmatt: It sounds like regular network activity may be causing your machine not to sleep. If you use Gmail, I wonder if you could try the Gmail Notifier to see whether it causes the same kind of problem. – Greg Hewgill Mar 23 '12 at 19:13
@gentmatt: I thought I had reproduced the no-sleep problem, but after controlled testing (and closing a bunch of other stuff), my Macbook (Air, Lion) sleeps consistently whether or not the notifier is running. – Greg Hewgill Apr 5 '12 at 5:14
@GregHewgill Yeah, I'm also confused as to what is causing the problem. I can't really relate it to the SE notifier 100% anymore. At the moment I just have to live with my MBP's insomnia. :( – user10026 Apr 5 '12 at 7:15
An auto updater would be awesome... :) – Leniel Macaferi Apr 12 '12 at 19:54
Any chance for some Retina display icons for the menu bar? @GregHewgill – Alexander MacLeod Nov 29 '13 at 19:36
@GregHewgill It'd be great if there was some sort of notification that you were actually logged in from the dropdown; possibly changing the 'log in' option to whatever username you were logged in under, something along those lines? – andrewdcato Jul 1 '14 at 16:46
I'm seeing "JSON parse error" today. Is there an issue with this? – Barmar Jul 2 '14 at 16:53

22 Answers 22

Very good. I've been looking for something simple like this for a while. Thanks. As potential future features;

  • Growl integration would be great
  • An option to temporarily disable notifications (i.e. when you want to get some work done and don't want to get distracted by revisiting your answers etc!)
  • A 'run on startup' option
  • Maybe have the default menubar icon as black and when you receive a notification change it to the current blue icon along with the count. Similar to how Sparrow works:
  • Notification Center Support!

    enter image description here

    enter image description here

    so something like:

    enter image description here

share|improve this answer
I've just uploaded a new version with a "hide" option. I'll have to look into Growl support. – Greg Hewgill Feb 22 '12 at 19:42
I have to say that's fairly shocking. I added Growl support to try it out and the .dmg size went from 80 kb to over 850 kb. Is that expected? Is that considered reasonable? – Greg Hewgill Feb 29 '12 at 9:26
That sounds unusual. I've never developed with Growl so I'm not sure if that's normal. Maybe there are parts of the framework you can ommit? I added another 2 suggestions for the app. thanks again – Timmy O'Mahony Feb 29 '12 at 14:55
You're right, I had copied too much stuff in there. It's now a somewhat more reasonable 350 kb. New version coming soon! – Greg Hewgill Feb 29 '12 at 18:08
I updated my answer to strike off all the new features. I added a request for Notification Center (Mountain Lion) support. If I haved have some time, I can try implement this (although I have no experience with OSX dev) – Timmy O'Mahony Aug 15 '12 at 16:39
I added support for Notification Center in a separate pull request. See screenshot in the answers here below. – Paul Peelen Dec 28 '12 at 10:37
Version 1.1 now supports Notification Center. – Greg Hewgill Jan 17 '13 at 8:24

I like the current logos of SENotifier, but, I was bored, and decided to have a go at making some SENotifier logos as well. And, well, here they are! Tell me if you like them, or any comments! I don't know if the pictures will keep their formatting, though. Oh well.


SENotifier Logo (.png)



SENotifier Logo (.icns)


share|improve this answer
One of these icons should be used for the logo of SE Notifier. They both look nicer than the current one. :) – Nathan Aug 13 '12 at 5:55
@Nathan Thanks :) – anon173 Dec 31 '12 at 4:16

Any way of porting this to iOS?

share|improve this answer
The Stack Exchange iOS app is available. – ThomasW Jul 3 '14 at 5:00

I really like this too. It is great! I second @pastylegs' comment. Growl notifications would be very nice.
I also wanted to add another comment. If you look at the SE inbox on the actual website, you'll notice that it displays past, read notifications:

SE inbox

It would be nice to have several (maybe 5 or so) read notification in the menu bar. I find myself going back to the inbox several times to go to older notifications.

All in all, it's a great little tool and I encourage you to keep up the work!

share|improve this answer
Thanks! Notice that if you don't click on the inbox icon on the web site, then the read items won't be removed from SENotifier's list. – Greg Hewgill Feb 28 '12 at 6:24
@GregHewgill Oh, I didn't notice that. Will try it! – daviesgeek Feb 28 '12 at 6:26

Bug report here. It's not working on CoreDuo MBP/10.6.8

enter image description here

I suppose because it's 64-bit only but you didn't mention system requirements anywhere here.

share|improve this answer
this 64bit problem is not so hard i think, but missing memory management because of Automatic Reference Counting with xcode 4.2 makes it near inpossible to port downward to older mac's :(, if someone knows a nice workaround framework or so.. i would just try to implement it so – codelio May 13 '13 at 3:26

I've been recently running into a problem with SENotifier where it updates when a message is directed at me, but it always shows an old message rather than the lastest message.

share|improve this answer
You know, I've actually noticed the same thing. I haven't narrowed down the problem, but it looks like it might be a problem with the site itself. I'm currently investigating. – Greg Hewgill Oct 24 '12 at 4:34
along a similar vein, I also see messages that I've already read coming up as new messages needing to be read. Only been one or two before now, but logged in today and there were 32. – Grymjack Mar 6 '13 at 23:46

I added support for OSX Notification Center and made a pull request.


share|improve this answer
This is cool! Is there a way I can get this version of SENotifier? – Nathan Dec 31 '12 at 7:31
thnx. Yeah, clone my pull-request from github. I do need to fick the click action though... found that out today. – Paul Peelen Jan 2 '13 at 0:01
@Nathan: Version 1.1 (downloadable as .dmg) now has Notification Center support. – Greg Hewgill Jan 17 '13 at 8:25
@GregHewgill: Awesome! Thanks for letting me know :) – Nathan Jan 18 '13 at 1:52
Very nice idea here. – Matt Jul 27 '13 at 20:06

This is an awesome app, great job.

But I think you forgot to make the extra text after "Check Now" change white when you hover over it, see:

enter image description here

I'm not a Mac App Developer (not yet, anyway) so I don't know if it is possible to change that but I just wanted to let you know about that.

share|improve this answer
Thanks! The red message is a warning message, so it probably doesn't matter much. But I'll see if I can find a way to change that. – Greg Hewgill Apr 27 '12 at 6:52
@GregHewgill You're welcome! It also does that for the "checked x minutes ago" text. – Nathan Apr 28 '12 at 3:21

I have forked your source code, and enabled Retina display support. I have also recreated all the icons.
Check it out on GitHub.

share|improve this answer

Version 1.3 Update

I have updated all the icons to make it look much better.
You can check out the source code and download the DMG here:

share|improve this answer

I've been using this and its nice. It would be great if this app could implement the new notification API in OSX mountain lion.

share|improve this answer
I'm sure they will be able to integrate the new notification center soon. – XIII Jul 3 '12 at 23:16
Version 1.1 now supports Notification Center. – Greg Hewgill Jan 17 '13 at 8:26

This is really nice, but it would be great if the "Log In" menu item would change text (maybe to Log Out [User Name]—presumably analogous to the current "Invalidate login token") when the app is logged in. Not currently having any unread notifications I could only assume it had logged in successfully by seeing the screenshots you'd posted here.

It would be doubly nice for that item to show your current rep (your highest single SE site rep), but perhaps I'm just really finicky about checking that all the time.

share|improve this answer

What does NSURLErrorDomain error -999 mean?

I tried logging in manually, but it said it doesn't exist, even though it works when I log in through my browser.

Update: I don't know if this will help. (Originally I was going to upload images, but I only have 1 rep, so I'll just describe it in detail).

  1. I open up the app and I get a screen similar to the SE log in web page and click on "log in with Stack Exchange"
  2. Then the window "The operation couldn't be completed. (NSURLErrorDomain error -999.) pops up. It gives me one option, which is to click "OK".
  3. Next the Stack Exchange Notifier window says "Third Party Cookies Appear To Be Disabled", "You can continue and log in manually however." I log in manually.
  4. Stack Exchange OpenID window shows up and I log in. Then it says "Not Found", "This page could not be found."

But I'm able to log in through my browser, so I don't know why it says that.

share|improve this answer
I hadn't seen this error before, but… provided a clue. Try and see if that helps. Let me know whether this works for you or not. Thanks! – Greg Hewgill Jan 23 '13 at 8:17
@GregHewgill Isn't the beta going to have more bugs than the current version though? I checked out the link you posted, but I don't understand it too well as I don't have much of a background in building apps. – user17153 Jan 23 '13 at 19:46
No, the beta version I posted is exactly the same as the latest version with the addition of a single change that attempts to avoid the -999 error. Please let me know if the version I posted avoids the -999 error or not. – Greg Hewgill Jan 23 '13 at 20:26
@GregHewgill Well, it avoids the -999 error, but OpenID still won't recognize my profile. It wouldn't have anything to do with my firewall would it? Gmail's notifier doesn't have any issues with it. – user17153 Jan 23 '13 at 20:29
Ok cool. You say you're able to log in through your browser, but which browser? The notifier uses Safari because that's guaranteed to be available to OS X apps. Make sure that you haven't disabled cookies or something in the Safari settings. Google's login process is different from Stack Exchange so they're not really comparable. – Greg Hewgill Jan 23 '13 at 20:31
@GregHewgill Yeah, I set it to never block cookies (on Safari) and it still doesn't work... – user17153 Jan 23 '13 at 20:37
Just to be clear, can you log in normally to the site through Safari itself? I'm not sure why it's not working for you. The notifier really just hands off the job of authentication to the popup browser window, and returns when it's reported as successful. Do you have a different computer you can try it on? – Greg Hewgill Jan 23 '13 at 20:46
@GregHewgill Seems to work now. It doesn't log me in though when it opens up firefox. It shows the webpage, but I have to log in through my browser still – user17153 Jan 23 '13 at 21:00
Great, that sounds like it's working normally! When opening a page, the notifier hands the URL off to the OS, which then hands it off to your configured default browser (Firefox), which doesn't know anything about the fact that you're already logged in inside the notifier. – Greg Hewgill Jan 23 '13 at 21:06
Love the app. Thanks for the hard work.. My requests.. 1. remove the log in - if logged in.. 2. Any way to get SE reputation numbers? an up vote makes my day :) pretty pathetic eh! – David DelMonte Nov 15 '13 at 1:52
Any way to logout an account? I've mistakenly logged in with an old Facebook Open ID SE account and want to connect with my Google Open ID SE account.. couldn't find an option, nor the prefs location on mac – JosFaber Apr 16 '14 at 21:10

It would be nice to have an option, to open the Website stackoverflow without having a notification.. I assume when you have a new notification you click on it and will be directed to the website. But when i dont have a notification, the app is useless.

Also i agree with Kit Grose, that it is weird to see "Log in" as i am already logged in.

Also it would be nice to give a better (self explanatory) name to the "invalidate login token". As i just installed the app, when i click on it, it seems that it does not do anything. One must directly google it to find out what it actually does. At least it would be nice to have a feedback from this action, like you see when you click "check for updates".

share|improve this answer

Getting a strange issue here, "OAuth request must be over HTTPS":

enter image description here enter image description here

Any thoughts on what's causing it? I've deleted and reinstalled, no luck. (And tried the invalidate token option).

share|improve this answer
As a heads up, this seems to be a general API bug, not specific to this app: "OAuth request must be over HTTPS" when request is over https – Tim Stone Oct 27 '13 at 16:59
@TimStone nice catch, problem is resolved now thanks to the new deployment. – brandonscript Oct 27 '13 at 18:41

Since updating to OS 10.9 I get crashes, apparently whenever a notification arrives:

Process:         Stack Exchange Notifier [50227]
Path:            /Applications/Stack Exchange Exchange Notifier
Version:         1.1 (8)
Code Type:       X86-64 (Native)
Parent Process:  launchd [179]
Responsible:     Stack Exchange Notifier [50227]


Crashed Thread:  0  Dispatch queue:

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -bytes only defined for abstract class.  Define -[_NSPlaceholderData bytes]!'
terminating with uncaught exception of type NSException
abort() called
Application Specific Backtrace 1:
0   CoreFoundation                      0x00007fff8f59e41c __exceptionPreprocess + 172
1   libobjc.A.dylib                     0x00007fff8bbb5e75 objc_exception_throw + 43
2   CoreFoundation                      0x00007fff8f59e2cc +[NSException raise:format:] + 204
3   Foundation                          0x00007fff8fbaf1d1 NSRequestConcreteImplementation + 231
4   Foundation                          0x00007fff8fb43927 -[NSData(NSData) bytes] + 39
5   Growl                               0x000000010004819b +[GrowlGNTPBinaryChunk identifierForBinaryData:] + 52
6   Growl                               0x000000010004b897 +[GrowlNotificationGNTPPacket getHeaders:binaryChunks:notificationID:forNotificationDict:] + 1083
7   Growl                               0x0000000100046968 +[GrowlGNTPOutgoingPacket outgoingPacketOfType:forDict:] + 261
8   Growl                               0x0000000100038f78 -[GrowlGNTPCommunicationAttempt socket:didConnectToHost:port:] + 36
9   Growl                               0x000000010003ec6c __34-[GrowlGCDAsyncSocket didConnect:]_block_invoke_0 + 79
10  libdispatch.dylib                   0x00007fff84fe11d7 _dispatch_call_block_and_release + 12
11  libdispatch.dylib                   0x00007fff84fde2ad _dispatch_client_callout + 8
12  libdispatch.dylib                   0x00007fff84fe5f03 _dispatch_main_queue_callback_4CF + 333
13  CoreFoundation                      0x00007fff8f505839 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
14  CoreFoundation                      0x00007fff8f4c0b14 __CFRunLoopRun + 1636
15  CoreFoundation                      0x00007fff8f4c0275 CFRunLoopRunSpecific + 309
16  HIToolbox                           0x00007fff8fe1df0d RunCurrentEventLoopInMode + 226
17  HIToolbox                           0x00007fff8fe1dcb7 ReceiveNextEventCommon + 479
18  HIToolbox                           0x00007fff8fe1dabc _BlockUntilNextEventMatchingListInModeWithFilter + 65
19  AppKit                              0x00007fff854c928e _DPSNextEvent + 1434
20  AppKit                              0x00007fff854c88db -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
21  AppKit                              0x00007fff854bc9cc -[NSApplication run] + 553
22  AppKit                              0x00007fff854a7803 NSApplicationMain + 940
23  Stack Exchange Notifier             0x00000001000018c8 start + 52
24  ???                                 0x0000000000000001 0x0 + 1

share|improve this answer
It looks like that crash is happening in the Growl library. For OS X 10.8 and later, you should choose "Enable Notifications (OS X)" from the Preferences menu, and turn off Growl. Growl is only needed for older OS X that doesn't have Notification Center. – Greg Hewgill Nov 3 '13 at 21:20
@GregHewgill: Unless one hates (and has disabled) Notification Center and prefers (and uses) Growl instead. What's likely happening here is that I've killed NS and prevented it from launching at all, and SE Notifier is getting stuck on that. Is there any prospect of a revision that survives in that kind of environment? – raxacoricofallapatorius Nov 3 '13 at 22:53
@GregHewgill: Is there any prospect of an update that works with Notification Center disabled? – raxacoricofallapatorius Dec 14 '13 at 20:57
@GregHewgill: Is there anything I can do to get this working on a system where NC has been disabled? – raxacoricofallapatorius Feb 3 '14 at 17:44
I suppose you could rebuild the SENotifier app with a version of the Growl library that has this bug fixed. – Greg Hewgill Feb 3 '14 at 21:14

Right now your current for login is a Log in and a Invalidate login token (i.e. log out). There is no way for the user to tell if he/she is logged in or not right now. I find that really annoying, and wonder when not getting any messages if I am actually logged in.

What if you just had a Logout single NSMenuItem when the user is logged in (which is set to NSState NSOnState), and with a Login item when the user is logged out (which is set to NSState NSOffState). This effectively makes a toggle, and seems like better design. :)

share|improve this answer
Pull requests accepted. :) – Greg Hewgill Nov 17 '13 at 8:38
Its weird getting that message about SENotifier from SENotifier XD – E.A. Wilson Nov 17 '13 at 13:55

I hate to be "that guy", but SE notifier is not gatekeeper-compliant. Any chance of getting it code-signed?

share|improve this answer

I can't get the different hide times to work. No matter what time I select, it only hides for 25 minutes. I'm on Snow Leopard.

share|improve this answer

Thanks for the app, I've used it for about two years now, and it does what it is supposed to.

There is just one minor bug, when I boot up my computer (OS X 10.6.8) and SENotifier automatically launches, I initially get the "This computer's internet connection appears to be offline" alert. If I just click "log in" in the popup menu it works normally. Maybe there is a timing issue, my Wi-Fi connecting hardware is perhaps slower than that of the machine you tested this on (since my computer is quite old). Anyway, it's a minor bug, I can live with it.

share|improve this answer

Mirror for version 1.1

I couldn't download the .dmg file, the browser tells me that the server is unreachable, so I download the source code from github and made a "mirror", If you have the same issue you can alternatively download it at:

share|improve this answer
I was bored, so I made that mirror... hope there is no problem with that... – DiogoSaraiva Apr 25 '15 at 7:31

I'm completely unable to log in on a i5 MBP running 10.10.3 - the login window disappears before I can do anything.

I'm logged in to my SE account on every browser on my machine and assumed it was fetching my credentials that way, but no dice.

I've reinstalled the app twice, fwiw.

share|improve this answer
That probably means you're already logged in. Try "Invalidate login token" if you want to log in again. – Greg Hewgill Jun 1 '15 at 18:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .