Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
ENhanced Scala Interaction Mode for text Editors (especially Emacs) Server Component



Bountysource Build Status Stories in Ready Coverage Status Melpa Status

ENhanced Scala Interaction Mode for text Editors, especially GNU Emacs.

ENSIME brings IDE-like features to your favourite text editor, such as:

  • Show the type of the symbol under the cursor.
  • Contextual completion for vars, vals and defs.
  • Add an import for the symbol under the cursor.
  • Fast classpath search (types and members).
  • Jump to source code or documentation.
  • Browse packages and type hierarchies.
  • Find all references to a symbol.
  • Refactorings (rename, organize imports, extract method).
  • REPL with stack trace highlighting.
  • Errors and warnings in your code: red squigglies.
  • Debugging

and many more.


This project is actively community maintained, and we are very pleased to see contributions from new members.

If you use this software you are already well placed, as a Scala developer, to make it even better.

You can help out by:

We are using some great technologies to automate our build and testing process:

Along with unit testing, we have automated coverage checks and code formatting as part of our build process. Pull requests will only be accepted if the build and tests are successful, and coverage has not decreased. Pull requests must be reviewed and should not be merged by the person who created the request (except for trivial changes and hotfixes).

We have branches for older versions of scala, which are merged regularly.

Quick Start

See our Quick Start Guide to learn how to install and start ENSIME.

ENSIME is released on a continuous "rolling release" basis every time a pull request is merged. This dramatically speeds up the development cycle and you are advised to always update your ENSIME before reporting any issues.

If you are still experiencing a problem with the latest version of ENSIME, before reporting an issue please:

Further Information

Most of the server documentation is in the code itself. A readable version of the SWANK protocol is documented in the ENSIME User Manual (although best to always check the code.)

Older releases are bundled with the emacs plugin.

Something went wrong with that request. Please try again.