Short form: I want to run the Mac OSX version of Emacs found on http://emacsformacosx.com/ as a daemon, with graphical and text clients connecting to it as-needed.

In detail, here is the workflow I want:

  1. On login, run /Applications/Emacs.app/Contents/MacOS/Emacs --daemon to start emacs as a daemon. I already know how to do this.

  2. When running emacs from a local termnal, I want Either one of these:

    1. If I run emacs from a local command prompt, open a new frame with the selected file.
    2. If #1 is not possible, at least if I run emacsclient from the command line, open a new frame with the selected file.
  3. When running emacs from a remote terminal, I would like a text-mode emacs to start, connected to the daemon process.

  4. If I run Emacs.app re-use the emacs daemon that is running in the background instead of starting a new instance and open a new window on it.

So far, I am able to accomplish only #1 and #2.2 above, but those are the easy parts. #3 and #4 are the things that are most needed in order to make this work. Does anyone know how to accomplish these things?

  • 1
    For others who find this question: you can also usr M-x server-start to put an emacs started without --daemon into server mode. Good questions, BTW. – dmckee --- ex-moderator kitten Oct 2 '09 at 17:47
  • 1
    ... or put (server-start) in your .emacs so that it starts when you launch emacsa – Doug Harris Oct 3 '09 at 12:24
  • Can someone explain how to do # 1? Would you just make it a login item? – Charlie Flowers Sep 21 '12 at 5:35
  • 1
    @Charlie Flowers emacswiki.org/emacs/EmacsAsDaemon#toc5 – Colin Jun 9 '14 at 0:32
  1. You've got this handled
  2. Yes, you'll want to use emacsclient. To get a new frame, add the -c option. I have an alias to make it quicker and to tell emacsclient not to wait for emacs server to return:

    alias em='emacsclient -n'
  3. emacsclient -nw
  4. I'm not sure about this. I start Emacs once and always load new files either within emacs or using my em alias.


Check out this tip documenting how to use Platypus to create an app wrapper around emacsclient. You could then use "Open With..." to launch using your new app wrapper.

  • Yeah, that's the real trick, isn't it? Because what I want is for all of the OS open calls to use the running emacs, whether I'm operating within a terminal or a GUI context. I'll keep looking. – Chris R Oct 4 '09 at 15:11
  • Found a ref to Platypus and updated my answer. – Doug Harris Oct 5 '09 at 3:29
  • 6
    Is this solved? How did you get Emacs.app to connect to the daemon? – milkypostman Mar 29 '11 at 14:57
  • I also want to know the answer to question 4 :) – jkp Sep 4 '11 at 13:56

Yes, here is an pretty comprehensive explain about how to do this nicely. I tried several methods to get it working nicely, but no better than what they described here.



  • 1
    The link is dead – Nisba Jul 12 '17 at 11:11

For 4. put this in your .emacs:

(setq ns-pop-up-frames nil)

The solution of creating a Mac .app (with Platypus) does not work because Mac won't open the same application twice.

  • 1
    If you use the "open -n" you can open a new instance of an application even if it's already running. Try this in the terminal: open -n -a Emacs.app somefile.txt – Jörgen Lundberg Apr 4 '13 at 9:35
  • Yeah, but it opens a new window, which I don't want – juanmirocks Apr 4 '13 at 14:01
  • Maybe I'm misunderstanding what you want, but if you don't want it to create a new window but use an existing one, skip the '-n'. – Jörgen Lundberg Apr 4 '13 at 17:54
  • Yes, I don't want to create a new window. open -a Emacs.app is certainly what I do, but to be opened in the same instance/daemon background of an existing emacs, I need to write (setq ns-pop-up-frames nil) in my .emacs as I wrote in my answer. Otherwise it creates a new window anyway, with or without -n. – juanmirocks Apr 5 '13 at 6:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.