Must needs

If Geiser came with any guarantees, you’d break all of them by not using GNU Emacs 24.4 (or better: i regularly use it with a recent Emacs snapshot) and at least one of the supported Schemes, namely:

Since Geiser supports multiple REPLs, having all of them will just add to the fun.

You’ll also need Geiser itself. The quickest installation is via your favourite implementation’s ELPA packages (as of this writing, they’re all available in MELPA and (most of them) also in NonGNU ELPA, which comes included with the batteries of Emacs 28 or better).

The quick and easy way

Did i mention that the easiest way of installing Geiser is using its ELPA package? If you’re using Emacs 24, ELPA is already there; for earlier versions, the page i just linked to twice will tell you where to find the goodies.

ELPA packages live in repositories accessible via HTTP. You can find Geiser’s package in either NonGNU ELPA or, if you like living on the bleeding edge, MELPA (directly from the git repo). To tell Emacs that an ELPA repo exists, you add it to package-archives1:

(require 'package)

(add-to-list 'package-archives
  '("nongnu" . ""))


And then installing your favourite Geiser is as easy as (if, say, you’re a MIT aficionado):

M-x package-install RET geiser-mit RET

Rinse and repeat for each of the scheme implementations that you would like to use. Some of them (e.g. Gambit or Chicken) have a bit of additional setup, specific to them, so make sure you also check their respective package documentation.

With that, you are pretty much all set up. See The REPL to start using Geiser.

And, by the way, if you prefer to keep reading this manual within Emacs, C-h i m Geiser RET will bring you to the info version of it that you just installed!

Installing from source

All Geiser packages are ready to be used out of the box without much more ado. For the sake of concreteness, let’s assume you put its source in the directory ~/lisp/geiser. All you need to do is to add the following line to your Emacs initialisation file (be it ~/.emacs, ~/.emacs.d/init.el or any of its moral equivalents):

(add-to-list 'load-path "~/lisp/geiser/elisp")

and, if your, say, geiser-gambit checkout lives in ~/lisp/geiser-mit add to that:

(add-to-list 'load-path "~/lisp/geiser-gambit")

The autoloads defined in those packages should be enough to start scheming.


Although Geiser does not need them, it plays well with (and is enhanced by) the following Emacs packages:

You just need to install and setup them as usual, for every package’s definition of usual. Geiser will notice their presence and react accordingly.



If you’re using Emacs 28 or better, package-archives already comes with the non-gnu archive preconfigured, so you’re lucky in more than one way.