# Install Elm - how

**URL:** <https://discourse.elm-lang.org/t/install-elm-how/9118>\
**Category:** Learn\
**Created:** [May 2, 2023, 4:21pm UTC](https://discourse.elm-lang.org/t/install-elm-how/9118 "2023-05-02T16:21:20Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![eelcoh](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/eelcoh/32/4909_2.png) [@eelcoh](https://discourse.elm-lang.org/u/eelcoh)\
**Post date:** [May 2, 2023, 4:21pm UTC](https://discourse.elm-lang.org/t/install-elm-how/9118/1 "2023-05-02T16:21:20Z")

</div>

[Sorry, could not find a recent post on this subject.]

What would be the advised way to install Elm on a machine (apple silicon in my case). Think the options i have are brew, npm and the installer from [elm-lang.org](http://elm-lang.org).

---

<div class="post-metadata">

**Author:** ![wolfadex](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/wolfadex/32/2461_2.png) [@wolfadex](https://discourse.elm-lang.org/u/wolfadex)\
**Post date:** [May 2, 2023, 4:40pm UTC](https://discourse.elm-lang.org/t/install-elm-how/9118/2 "2023-05-02T16:40:37Z")

</div>

Brew is always a solid option for Mac. If you’re using `npm` for other parts of your project the I’d recommend [@lydell/elm](https://www.npmjs.com/package/@lydell/elm) for now as it provides the Apple silicon version.

Nix, if you or others are interested, is also a solid solution.

---

<div class="post-metadata">

**Author:** ![novid](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/novid/32/4341_2.png) [@novid](https://discourse.elm-lang.org/u/novid)\
**Post date:** [May 2, 2023, 7:12pm UTC](https://discourse.elm-lang.org/t/install-elm-how/9118/3 "2023-05-02T19:12:09Z")

</div>

[elm-tooling-cli](https://elm-tooling.github.io/elm-tooling-cli/) would be a good approach on any platform. There’s also a [comparison with the elm and @lydell/elm npm packages](https://elm-tooling.github.io/elm-tooling-cli/faq/#comparison-with-the-elm-and-lydellelm-npm-packages) in the FAQ page.

---

<div class="post-metadata">

**Author:** ![lydell](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/lydell/32/178_2.png) [@lydell](https://discourse.elm-lang.org/u/lydell)\
**Post date:** [May 2, 2023, 8:07pm UTC](https://discourse.elm-lang.org/t/install-elm-how/9118/4 "2023-05-02T20:07:00Z")

</div>

Also, if you’re just getting started with Elm it doesn’t really matter how you install it. You can always change later. It’s not like with Python and Haskell where you can “mess up” your installation.

One thing to note is that if you use the official installer or the official npm package, you need Rosetta to run them. While brew, `@lydell/elm` and elm-tooling as mentioned by others have native M1/M2 binaries.

---

<div class="post-metadata">

**Author:** ![Sebastian](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/sebastian/32/98_2.png) [@Sebastian](https://discourse.elm-lang.org/u/Sebastian)\
**Post date:** [May 2, 2023, 11:03pm UTC](https://discourse.elm-lang.org/t/install-elm-how/9118/5 "2023-05-02T23:03:21Z")

</div>

I install everything I can using **nix** these days. [Download Nix / NixOS | Nix & NixOS](https://nixos.org/download.html)  
The Elm binary for ARM is available there.

---

<div class="post-metadata">

**Author:** ![fhrw](https://avatars.discourse-cdn.com/v4/letter/f/d2c977/32.png) [@fhrw](https://discourse.elm-lang.org/u/fhrw)\
**Post date:** [May 4, 2023, 12:16pm UTC](https://discourse.elm-lang.org/t/install-elm-how/9118/6 "2023-05-04T12:16:55Z")

</div>

Hi all!

Forgive me in my infinite ignorance as I am a complete elm newbie. I’ve just moved to my new machine (M1 Mac) and proving harder than I expected to get setup for Elm dev!

I’ve tried my best to follow the instructions at the Elm tools page. Can anyone explain what’s going on here?

 ![Screenshot 2023-05-04 at 10.15.33 pm](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/2X/c/ca6f477e48dd90b39a6c21abae0be478e75aaa9a.png)

---

<div class="post-metadata">

**Author:** ![lydell](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/lydell/32/178_2.png) [@lydell](https://discourse.elm-lang.org/u/lydell)\
**Post date:** [May 4, 2023, 3:20pm UTC](https://discourse.elm-lang.org/t/install-elm-how/9118/7 "2023-05-04T15:20:01Z")

</div>

I’ve never seen that error before, but something you could try is to execute the elm binary directly instead of via `npx`, just to rule out npx/Node.js. Something like this: `./node_modules/.bin/elm make src/Main.elm`.

I have a hunch you’re gonna get the same error, but good to know for sure!

---

<div class="post-metadata">

**Author:** ![eelcoh](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/eelcoh/32/4909_2.png) [@eelcoh](https://discourse.elm-lang.org/u/eelcoh)\
**Post date:** [May 4, 2023, 4:23pm UTC](https://discourse.elm-lang.org/t/install-elm-how/9118/8 "2023-05-04T16:23:56Z")

</div>

Thanks all for the answers. I’ve settled for elm-tooling. Worked best for the ARM build.

---

<div class="post-metadata">

**Author:** ![fhrw](https://avatars.discourse-cdn.com/v4/letter/f/d2c977/32.png) [@fhrw](https://discourse.elm-lang.org/u/fhrw)\
**Post date:** [May 4, 2023, 10:21pm UTC](https://discourse.elm-lang.org/t/install-elm-how/9118/9 "2023-05-04T22:21:04Z")

</div>

Thanks @lydell!

I actually didn’t get the same error which is awesome!

 ![Screenshot 2023-05-05 at 8.19.55 am](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/2X/7/775c20b465d93f374c61331b88ad0cc922c0e93e.png)

Pretty stupid of me but I guess you need something in the file in order to make it!

So far so good now that I’ve put some elm code in the file.

Thanks for the help!

---

<div class="post-metadata">

**Author:** ![fhrw](https://avatars.discourse-cdn.com/v4/letter/f/d2c977/32.png) [@fhrw](https://discourse.elm-lang.org/u/fhrw)\
**Post date:** [May 5, 2023, 4:49am UTC](https://discourse.elm-lang.org/t/install-elm-how/9118/10 "2023-05-05T04:49:57Z")

</div>

Okay so how are you fine folk managing to run elm format and things if you are on an arm machine? It’s a real shame that binary hasn’t been updated! Compared to getting my Go environment setup this is feeling pretty confusing! ‘npx elm-format’ works as expected.

I use nvim most of the time with null-ls. I can see from the docs that it is attempting to run the elm-format command which obviously won’t work. Let me know if you have any ideas. Worked fine on my old Intel Mac with my current nvim config.

Edit:

I just used brew despite the warning that it’s not compatible with Ventura and it all seems to work fine. It did say arm64\_Monterey on the installer but seems to work fine!

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/1X/50a05e53677a2c3b47776d7abd0f113eb50193a1.png) [@system](https://discourse.elm-lang.org/u/system)\
**Post date:** [May 15, 2023, 4:50am UTC](https://discourse.elm-lang.org/t/install-elm-how/9118/11 "2023-05-15T04:50:17Z")

</div>

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.
