After installing through any of those routes, you will have the elm binary available in your terminal!

Note: If you are having trouble, just skip installation for now! You can go through a lot of this book with the the online editor, and if you are having fun, you can always try installing again later!

Terminal Tools

So we have this elm binary now, but what can it do exactly?

elm repl

elm repl lets us interact with Elm expressions in the terminal.

$ elm repl
---- Elm 0.19.0 ----------------------------------------------------------------
Read <> to learn more: exit, help, imports, etc.
> 1 / 2
0.5 : Float
> List.length [1,2,3,4]
4 : Int
> String.reverse "stressed"
"desserts" : String
> :exit

We will be using elm repl in the upcoming “Core Language” section, and you can read more about how it works here.

Note: elm repl works by compiling code to JavaScript, so make sure you have Node.js installed. We use that to evaluate code.

elm reactor

elm reactor helps you build Elm projects without messing with the terminal too much. You just run it at the root of your project, like this:

git clone
cd elm-architecture-tutorial
elm reactor

This starts a server at http://localhost:8000. You can navigate to any Elm file and see what it looks like. Try to check out examples/01-button.elm.

elm make

elm make builds Elm projects. It can compile Elm code to HTML or JavaScript. It is the most general way to compile Elm code, so if your project becomes too advanced for elm reactor, you will want to start using elm make directly.

Say you want to compile Main.elm to an HTML file named main.html. You would run this command:

elm make Main.elm --output=main.html

elm install

Elm packages all live at

Say you look around and decide you need elm/http and elm/json to make some HTTP requests. You can get them set up in your project with the following commands:

elm install elm/http
elm install elm/json

This will add the dependencies into your elm.json file, described in more detail here.


The elm binary can do a bunch of stuff. Do not worry about remembering it all. You can always just run elm --help or elm repl --help to get a bunch of information about any of these commands.

Next we are going to learn the basics of Elm!

Configure Your Editor?

It can be tricky to set up some of these editors, so feel free to skip over this for now! You can go far with just the online editor.

Here are some of the community maintained plugins for Elm:

If you do not have an editor at all, Sublime Text is a great one to get started with!

You may also want to try out elm-format which makes your code pretty!

results matching ""

    No results matching ""