Fork me on GitHub

new packages

add a new package

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.

package of the week

macrostep is a great lisp macro debugging tool; invaluable from lisp programmers.

news

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.

Not using latest Emacs? 24.4?

click here for instructions.

If you are using Emacs on Windows?

There's another bug with GNU TLS on Windows. Click here for instructions.

If you are using 24.4 on anything but Windows?

There's a bug in Emacs 24.4 that prevents HTTPS downloads.

Please use HTTP for now. Be assured that marmalade is just sending a redirect to the HTTPS repository. This doesn't make you that much more secure though. We're going to try to fix the bug in Emacs as soon as we can.

M-x package-refresh-contents [RET]
M-: (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
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: http://elpa.gnu.org/packages/
  Archive name: marmalade
  URL or directory name: http://marmalade-repo.org/packages/
                    

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]
                    

Not using 24.4? Please use HTTPS for added security!

M-x package-refresh-contents [RET]
M-: (add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
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: http://elpa.gnu.org/packages/
  Archive name: marmalade
  URL or directory name: https://marmalade-repo.org/packages/
                    

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]
                    

Installing with Windows

  • Download Eli Zaretskii gnutls build from sourceforge
  • Copy all .dll from the bin to your Emacs installation bin/ folder. See this pastebin
  • the instructions for adding marmalade below now apply
M-x package-refresh-contents [RET]
M-: (add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
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: http://elpa.gnu.org/packages/
  Archive name: marmalade
  URL or directory name: https://marmalade-repo.org/packages/
                    

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 <nferrier@example.com>
;; Maintainer: Nic Ferrier <nferrier@example.com>
;; URL: http://github.com/nicferrier/example
;; 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.