Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Compiler for the Elm programming language. Elm aims to make web development more pleasant. Elm is a type-safe, functional reactive language that compiles to HTML, CSS, and JavaScript.

branch: master

Learn about the Elm programming language at

Build Status


Arch Linux — follow these directions and then jump to the My First Project section.
OS X 10.9 or XCode 5 — follow these directions before continuing with the platform agnostic directions below.

Platform Agnostic — download the Haskell Platform 2012.2.0.0 or later. Once the Haskell Platform is installed:

cabal update
cabal install elm
cabal install elm-server


To use elm and elm-server you may need to add a new directory to your PATH.

Cabal should tell you where your executables are located upon successful installation. It'll be something like /home/evan/.cabal/bin which you should append to your PATH variable. See this tutorial if you are new to changing your PATH in Unix/Linux.

My First Project

Now we will create a simple Elm project. The following commands will set-up a very basic project and start the Elm server.

mkdir helloElm
cd helloElm
printf "import Mouse\n\nmain = lift asText Mouse.position" > Main.elm

The first two commands create a new directory and navigate into it. The printf commands place a simple program into Main.elm. Do this manually if you do not have printf. The final command starts the Elm server at localhost:8000, allowing you to navigate to Main.elm and see your first program in action.

Final Notes

The elm package provides some utility functions for working with Elm in Haskell. This can be useful for creating tooling for Elm, and has been useful for projects like the website and elm-get. Email the list if you want to rely on these functions!

If you are stuck, email the list or ask a question in the #Elm IRC channel.

Something went wrong with that request. Please try again.