Need help with elm-github-install?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

205 Stars 23 Forks MIT License 151 Commits 12 Opened issues


An alternative decentralized package manager for Elm

Services available


Need anything else?

Contributors list


Gem Version Npm version Code Climate Test Coverage Inline docs Build Status

This only works with Elm 0.18 and has not been updated to work with Elm 0.19

In Elm 0.19 how native works has changed and also how packages are installed and resolved, because of this it might not be possible to install third party native packages ever.

For more information check this issue:

This gem/npm-package allows you to install Elm packages in a decentralized way from Git repositories, this allows: * installing of effect manager and native packages * installing forks of packages for testing or unreleased features * using packages from local directories * installing private packages using private git repositories * installing packages offline (packages are cached)


If you have ruby installed on your machine then you can install it directly from

gem install elm_install

If you have node.js installed on your machine then you can install it directly from npm:

npm install elm-github-install -g

or with yarn:

yarn global add elm-github-install

If you are experiencing

EACCES: permission denied
errors during installation using NPM then you can try:
sudo npm i -g elm-github-install --unsafe-perm=true --allow-root

There are also dependency free versions available for every release in the releases page.

Basic Usage

Once installed

can be used instead of
as a replacement:

  "dependencies": {
    "elm-lang/core": "5.0.0 <= v < 6.0.0",
    "elm-lang/svg": "2.0.0 <= v < 3.0.0",
    "elm-lang/dom": "1.1.1 <= v < 2.0.0"

Command: ``` $ elm-install

Resolving packages... ▶ Package: not found in cache, cloning... ▶ Package: not found in cache, cloning... ▶ Package: not found in cache, cloning... ▶ Package: not found in cache, cloning... ▶ Package: not found in cache, cloning... Solving dependencies... ● elm-lang/core - (5.1.1) ● elm-lang/svg - (2.0.0) ● elm-lang/dom - (1.1.1) ● elm-lang/html - (2.0.0) ● elm-lang/virtual-dom - (2.0.4) Packages configured successfully! ```

Advanced Usage

Sources can be defined in the

field in
for any package defined in the

The source can be defined as: * an URL pointing to a Git repository:

  "elm-lang/core": "[email protected]:someuser/core"
* a hash containing the URL and the reference (tag, commit hash, branch) to use:
  "gdotdesign/elm-install-test": {
    "url": "[email protected]:gdotdesign/elm-install-test",
    "ref": "master"
* an absolute or relative path to the package in your hard drive:
  "elm-lang/dom": "../elm-lang/dom"

If a reference or a path is defined then the version in the

field is ignored and the version will be used from the
at that source


  "dependencies": {
    "gdotdesign/elm-install-test": "1.0.0 <= v < 2.0.0",
    "elm-lang/core": "5.0.0 <= v < 6.0.0",
    "elm-lang/svg": "2.0.0 <= v < 3.0.0",
    "elm-lang/dom": "1.1.1 <= v < 2.0.0"
  "dependency-sources": {
    "elm-lang/core": "[email protected]:someuser/core",
    "elm-lang/dom": "../elm-lang/dom",
    "gdotdesign/elm-install-test": {
      "url": "[email protected]:gdotdesign/elm-install-test",
      "ref": "master"


Help for the

command: ``` NAME:



Install Elm packages from Git repositories.


help Display global or [command] help documentation install Install Elm packages from the elm-package.json file.


-h, --help Display help documentation

-v, --version Display version information

-t, --trace Display backtrace when an error occurs ```

Help for the

elm-install install
command. ``` NAME:



elm-install install


Install Elm packages from the elm-package.json file.


--cache-directory STRING Specifies where the cache is stored

--skip-update Skips the update stage of packages

--only-update STRING Only updates the given package

--verbose ```

Known Issues

  • Using the NPM package or the released binaries in windows while specifing a relative directory as a package will fail because of the 2.2 travelling ruby dependency. Using the >Ruby 2.3 with the gem installed works properly. More #36


Do I need to use SSH keys?

It depends on your use case, but for public repositories in Github or Bitbucket it's not needed.

What url protocols are supported?

The following protocols can be used:

  • ssh://[[email protected]]host.xz[:port]/path/to/repo.git/
  • git://host.xz[:port]/path/to/repo.git/
  • http[s]://host.xz[:port]/path/to/repo.git/
  • [[email protected]]host.xz:path/to/repo.git/

Can I install from private repositories?

Yes private repositories are supported provided you have authentication (for example SSH keys).

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.