Skip to content


Subversion checkout URL

You can clone with
Download ZIP
JavaScript Emacs Lisp Ruby
Branch: master
Failed to load latest commit information.
doc Key password resets off of emails, not usernames.
elisp Set the default server to
.gitignore Get stuff basically working with Node 0.6.
.hgtags Added tag 0.0.3 for changeset d5de9a476ec1
COPYING Merge accidentally-pushed Furl stuff out of the repo. Oops!
GPL3-LICENSE Add a copy of the GPL3.
Makefile Get stuff basically working with Node 0.6. Add an about page.
config.rb Fancy buttons woo.
marmalade.js Get stuff basically working with Node 0.6.
package.json Bump the Marmalade version to 0.0.4.

marmalade(7) -- spreadable elisp


Marmalade is an Emacs Lisp package server that allows authors to easily upload their packages. It follows the protocol expected by package.el, the standard Emacs package manager, and so can be used in conjunction with the official GNU repository or the original ELPA repository.


Marmalade is designed to be easy to get up and running on your own server. It only takes six steps:

  1. Install node.js.
  2. Install the Node package manager.
  3. Install MongoDB.
  4. hg clone marmalade
  5. npm install ./marmalade
  6. marmalade


Get package.el

To use Marmalade, you first need package.el. If you're using Emacs 24 or later, you've already got it. Otherwise, download it from here (currently the official ELPA package.el doesn't support multiple archives).

Enable the Archive

Add this line to your .emacs:

(add-to-list 'package-archives '("marmalade" . "http://your.domain/packages/"))

That's It!

Your archive is now active! Run M-x package-list and see all the new packages, and run M-x package-install to install them.


The primary goal of Marmalade is to make it easy to distribute Emacs Lisp code. Because Marmalade uses package.el's package format, it's easy to package existing Elisp code. In addition, anyone can post packages to Marmalade, either via the website or via the API.

Emacs Lisp is unusual in that there's a lot of code out there that is useful but no longer actively maintained. To make this code more widely available, users are encouraged to upload even packages they didn't write (as long as those packages allow redistribution). Marmalade makes it easy to add the original author as an owner should they take an interest in the package.

Something went wrong with that request. Please try again.