Fork me on GitHub

marmalade repo

marmalade-repo is an Emacs package repository.

marmalade is free software, you can help improve it.

we hold packages of Emacs code that Emacs users have uploaded for your enjoyment and use.


how to use it

before you can get access to all the packages that people put in marmalade-repo you must add it to your list of Emacs packages-archives:

M-x: package-refresh-contents [RET]
M-: (add-to-list 'package-archives '("marmalade" . ""))
M-x: package-refresh-contents [RET]
M-x package-install [RET] marmalade-demo

Alternatively you can use Emacs' customize system to permanently alter your package archives:

M-x: package-refresh-contents [RET]
M-x customize-variable [RET] package-archives

  Archive name: gnu
  URL or directory name:
  Archive name: marmalade
  URL or directory name:

you can use the customize system to save the values you have here for when Emacs restarts.

After adding Marmalade to your package-archives, you'll need to refresh the package contents:

M-x package-refresh-contents [RET]

how to upload packages

you can upload emacs-lisp packages to marmalade if you have an account on marmalade.

watch the packaging example screencast

your package has to follow a few simple constraints, a single file emacs-lisp file can be a package with the addition of a simple package header:

;;; example.el --- example Emacs package
;; Copyright (C) 2013 Nic Ferrier

;; Author: Nic Ferrier <>
;; Maintainer: Nic Ferrier <>
;; URL:
;; Created: 17th March 2013
;; Version: 0.1
;; Keywords: lisp, tools
;; Package-Requires: ((noflet "0.0.8")(dash "1.3.2"))

;;; Code:

your code can follow the Code: comment.

It should also end with the classic Emacs-Lisp ending:

;;; example.el ends here

If you enable `auto-insert-mode`, it will help you insert compatible headers in new `.el` files you create.