Generate a new Elm project from the command line
Clone or download

elm new

Build Status Build Status

Clojure has lein new, Elixir has mix new and now Elm has elm new!

With elm new you can easily start a new Elm project from the command line.

The idea is to be able to start coding right away instead of wasting time setting up the initial Elm architecture boilerplate. This is especially useful if you do a lot of prototyping.


  • Template based — choose between Html.program, Html.beginnerProgram and Navigation.program
  • No dependencies — all you need is a shell (like bash, zsh, fish, etc.)
  • Very simple to install and use. 100% test covered. It just works!


elm new                        # Initialize an Html.program in the current directory
elm new my-project             # Initialize an Html.program in my-project/
elm new my-project --beginner  # Initialize an Html.beginnerProgram in my-project/
elm new my-spa --navigation    # Initialize a Navigation.program in my-spa/
elm new hello --hello-world    # Initialize an "Hello, world!" program in hello/
elm new --version              # Prints the installed version
elm new --help                 # Prints all possible commands


$ elm new my-awesome-project

├── .gitignore
├── elm-package.json
└── src
    └── Main.elm

1 directory, 4 files

Your Elm program has been created successfully.
You can use "elm-make" to compile it:

    cd my-awesome-project
    elm-make src/Main.elm

Run "elm" for more commands.


Linux, Mac OS X and Windows are supported.


npm install -g elm-new


brew install


git clone
cd elm-new && sudo make install

See here for other installation options.