Frequently Asked Questions

What does CIDER stand for?

CIDER stands for Clojure Interactive Development Environment that Rocks.

Does it really rock?

Yes.

Is "jack-in" a reference to "Neuromancer"?

Yes.

Is "jack-in" a reference to "The Matrix"?

Yes.

What’s the relationship between CIDER and nrepl.el?

nrepl.el was renamed to CIDER in version 0.3 to avoid confusion with the nREPL server itself and to better reflect the fact that CIDER is way more than an nREPL client for Emacs. Additionally, the new name presents us with the opportunity to support alternative evaluation backends (e.g. the socket REPL introduced in Clojure 1.8) down the road.

What’s the relationship between CIDER and monroe?

monroe is basically a fork of an old CIDER version before the time we started relying on nREPL middleware. Monroe opted for a simpler UX, that’s very REPL-centric, and uses only built-in nREPL ops (unlike CIDER, which relies on cider-nrepl heavily).

What’s the relationship between CIDER and inf-clojure?

There’s pretty much no relationship, other than the fact they have the same author (Bozhidar). inf-clojure provides a REPL based on the comint Emacs package - you’re basically running an external REPL process inside of Emacs (there’s no network connectivity involved). The advantage of this is that you have no external dependencies what-so-ever - you just need some command to start a REPL process for you (e.g. lein repl).

Isn’t IntelliJ’s Cursive the best Clojure IDE?

Cursive is pretty awesome! Depending on your programming preferences (using an IDE vs building a custom editing experience tailored to your needs) it might be a better option for you than CIDER.

What’s the deal with the CIDER release codenames?

The codenames are usually some of the favourite places of CIDER’s head maintainer (Bozhidar).

Bozhidar really loves Spain and the West Coast of the US, so he tends to name really special releases with codenames related to them (e.g. Seattle, California, Andalucia, etc).

Why is CIDER’s website using a .mx domain?

Because that’s the perfect domain for Emacs projects.

Is using CIDER a good idea if I’m new to both Emacs and Clojure?

There’s nothing particularly complex in CIDER itself, but getting to grips with Emacs might be a bit challenging for some people.

Generally you can simplify the initial learning experience a lot by using some Emacs "starter kit" and picking up a good book on Emacs (e.g. Mastering Emacs).

Prelude and Spacemacs are some great Emacs distributions that you might consider using.

Prelude is maintained by the primary CIDER author himself, while Spacemacs is an excellent option for vim refugees (as it places a heavy emphasis on vim emulation via evil-mode).

Do stable CIDER releases follow some predefined cadence?

No. Stable releases are issued when the maintainers feel a new release is warranted. The maintainers generally aim to deliver at least 2-3 stable releases per year.

Does CIDER have a roadmap?

There’s no precise roadmap, but there are a few major goals for the (near) future:

  • improve session management (make it simpler and more predictable)

  • reach parity between the functionality for ClojureScript and Clojure (as it stands today a lot of functionality is Clojure-only)

  • integrate the most important refactoring functionality from our sibling project clj-refactor into CIDER.

You can find more details in our roadmap document.

If you’d like to tackle some item from the roadmap, Bozhidar will happy to help and guide you along the way.

Is it true that stable CIDER releases often happen around major Clojure conferences?

Yep. We want to give people a reason to talk about CIDER at such events. :-)

Inviting Bozhidar or any other core CIDER developers to present at Clojure conferences is likely going to results in more CIDER releases, so you should totally do this!

How unstable is the MELPA (snapshot) build of CIDER?

It’s pretty stable. Serious regression are introduced rather rarely and are usually fixed within a few hours. Using the MELPA build gives you early access to new features and you’re also helping the maintainers with the testing process.

Can I downgrade CIDER from a snapshot build to the latest stable version?

Yes, you can. You just need to remove the cider package, pin cider to MELPA Stable and reinstall it. Basically you need to do the following:

  • M-x package-remove cider

  • Add (add-to-list 'package-pinned-packages '(cider . "melpa-stable") t) to your Emacs config

  • Restart Emacs (or reload your config)

  • M-x package-install cider

Can I downgrade CIDER to a specific stable version?

No, you can’t. Unfortunately package.el doesn’t support the concept of historical versions of a package - there’s always only one version that’s available - the latest one.

Will CIDER eventually support the Clojure 1.8 socket REPL?

Maybe. Our focus remains making the most out of nREPL, but down the road we might explore investing some time in adding support for additional REPL servers.

There’s more information about the work that needs to be done in our roadmap document.

Will CIDER eventually support the Clojure 1.10 prepl?

Same answer as above. One thing is certain - prepl is much more convenient for the purposes of CIDER than the plain socket REPL.

Is CIDER’s nREPL middleware Emacs specific?

Not at all. The functionality in cider-nrepl is pretty editor-agnostic and is utilized by various editor plugins. Some prominent examples would be vim-fireplace and Visual Studio Code’s calva.

How can I see all the configuration options available in CIDER?

M-x customize-group RET cider RET.

Are there any interesting CIDER add-ons worth checking out?

Sure! See additional packages for details.

Where can I get help regarding CIDER?

See the Support section of the manual.

What should I do if I run into some issues with CIDER?

Don’t panic! Next step - visit the Troubleshooting section of the manual.

How can I help the project?

There are many ways in which you can help CIDER

  • Donate funds

  • Work on improving the documentation

  • Solve open issues

  • File bug reports and suggestions for improvements

  • Promote CIDER via blog posts or at meetups and conferences

  • Invite members of the CIDER team to speak about CIDER at meetups and conferences