npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

elm-github-install

v1.6.1

Published

Install Elm packages directly from Git repositories

Readme

elm-install

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

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)

Installation

If you have ruby installed on your machine then you can install it directly from rubygems.org:

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 elm-install can be used instead of elm-package as a replacement:

elm-package.json:

{
  ...
  "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: https://github.com/elm-lang/core not found in cache, cloning...
  ▶ Package: https://github.com/elm-lang/svg not found in cache, cloning...
  ▶ Package: https://github.com/elm-lang/html not found in cache, cloning...
  ▶ Package: https://github.com/elm-lang/virtual-dom not found in cache, cloning...
  ▶ Package: https://github.com/elm-lang/dom not found in cache, cloning...
Solving dependencies...
  ● elm-lang/core - https://github.com/elm-lang/core (5.1.1)
  ● elm-lang/svg - https://github.com/elm-lang/svg (2.0.0)
  ● elm-lang/dom - https://github.com/elm-lang/dom (1.1.1)
  ● elm-lang/html - https://github.com/elm-lang/html (2.0.0)
  ● elm-lang/virtual-dom - https://github.com/elm-lang/virtual-dom (2.0.4)
Packages configured successfully!

Advanced Usage

Sources can be defined in the dependency-sources field in elm-package.json for any package defined in the dependencies field.

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 dependencies field is ignored and the version will be used from the elm-package.json at that source.

Examples:

  ...
  "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"
    }
  }
  ...

CLI

Help for the elm-install command:

NAME:

  elm-install

DESCRIPTION:

  Install Elm packages from Git repositories.

COMMANDS:

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

GLOBAL OPTIONS:

  -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:

  install

SYNOPSIS:

  elm-install install

DESCRIPTION:

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

OPTIONS:

  --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

FAQ

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://[user@]host.xz[:port]/path/to/repo.git/
  • git://host.xz[:port]/path/to/repo.git/
  • http[s]://host.xz[:port]/path/to/repo.git/
  • [user@]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).