elm-wrap
elm-wrap is a command-line tool that mirrors the elm CLI. At its simplest, wrap install does what elm install does: it
checks package metadata in ELM_HOME, downloads packages from the registry when needed, verifies there are no dependency
conflicts, and adds the package to elm.json.
From that modest wrap install, elm-wrap grows into a full-featured manager for elm.json—and, more importantly, into a
tool for serious code reuse and package management.
As Elm projects grow, sharing code between products becomes essential. elm-wrap helps extract, package, inspect, and distribute
reusable pieces. Professional code sharing requires private registries, policies, and lifecycle tools; elm-wrap aims to provide them.
Today elm-wrap simplifies local development for reusable packages and offers holistic elm.json management: installs,
uninstalls, major-version handling, and test-dependency management.
Using elm-wrap is simple: the wrap command behaves like elm, so familiar workflows feel natural. But wrap improves the
workflow in practical ways—templates are one example. Instead of starting from an empty elm.json and editing it, wrap init worker creates a configured Platform.worker application. Small quality-of-life wins matter.
A major pain used to be developing packages locally without ugly hacks—editing source-directories and pretending the package
was part of the app. That led to accidentally shipping private modules and a stream of tiny version bumps. wrap package install --local-dev PACKAGE fixes this cleanly with no extra configuration.
Beyond local development, the wrap command does much more. This reference manual explains current features, and with each release wrap
will gain new abilities.