Coursier

What Coursier is
Coursier is a free, open-source Scala application and artifact manager. It installs Scala applications, prepares development environments, and downloads and caches artifacts from Maven and Ivy repositories. The `cs` command-line tool installs and launches applications, creates standalone launchers, manages installed applications and JVMs, and resolves Maven dependencies. Coursier supports private registry authentication, offline installation, parallel downloads, and dependency resolution through a library API on the JVM or Scala.js. Its default setup installs Coursier, scala-cli, Scala, scalac, sbt, sbtn, scalafmt, and a JVM when needed. Native launchers are provided for Linux, macOS, and Windows; a JAR launcher works on systems with Java 8 or later. Maven Central and the Ivy2 local repository are defaults, with additional repositories supported. Coursier verifies checksums when available but does not verify PGP signatures. It is licensed under Apache License 2.
Who it suits
It suits Scala developers and teams managing JVM dependencies, applications, and development environments. It also fits users needing offline installation, private registries, or native launchers across major desktop systems.
What it does well
- Free and open source
- Resolves Maven and Ivy dependencies
- Offline installation support
- Parallel downloads without global locks
- Native Linux, macOS, and Windows launchers
What to know first
- Ivy support is poorly tested
- Windows installer supports x86_64 only
- No SBOM generation during resolution
- PGP signatures are not verified
Verdict
Coursier provides command-line, library, and launcher tools for Scala application setup and dependency management. Its broad platform support is balanced by documented Ivy, Windows ARM64, signature, and SBOM limitations.
Facts from Coursier's own pages
- API
- The Scala API provides dependency resolution and artifact fetching through coursier.Resolve and coursier.Fetch. · get-coursier.io, 12 Oct 2026
- Architecture limit
- The Windows installer currently installs only the x86_64 build; Windows ARM64 users are directed to the JAR-based launcher instructions. · get-coursier.io, 11 Oct 2026
- Build integration
- Coursier support is included and enabled by default in sbt 1.3.x and later. · get-coursier.io, 12 Oct 2026
- Build provenance
- Coursier release binaries are attested with GitHub Actions build provenance, and the project documents verification with the GitHub CLI. · get-coursier.io, 12 Oct 2026
- Checksum security
- Coursier verifies downloaded artifact checksums when available, but accepts artifacts without checksum verification if no checksum is available. · get-coursier.io, 12 Oct 2026
- CLI
- The `cs` command-line tool can install and launch Scala applications and create standalone launchers for them. · get-coursier.io, 11 Oct 2026
- CLI features
- Its CLI manages installed applications and JVMs, launches Scala applications, and resolves or fetches Maven dependencies. · get-coursier.io, 12 Oct 2026
- Compatibility limitation
- The documentation says Ivy support is poorly tested and projects that rely heavily on Ivy features may encounter limitations. · get-coursier.io, 12 Oct 2026
- Default setup
- The default setup installs Coursier, scala-cli, Scala, scalac, sbt, sbtn, and scalafmt, and installs a JVM if none is found. · get-coursier.io, 11 Oct 2026
- Dependency management
- Coursier resolves and fetches dependencies using metadata and artifacts from Maven and Ivy repositories. · get-coursier.io, 11 Oct 2026
- Dependency resolution
- Yes · get-coursier.io, 21 Sept 2026
- Documented limitation
- The documentation says Ivy support is poorly tested and projects relying heavily on Ivy features may encounter limitations. · get-coursier.io, 11 Oct 2026
- Functional API
- The API supports synchronous execution, Scala Future, and IO-based execution. · get-coursier.io, 11 Oct 2026
- Integrations
- The project lists Ammonite, Mill, scalafmt, Scalafix, Toree, Almond, and Visual Studio Code Scala language servers among projects that rely on Coursier. · get-coursier.io, 11 Oct 2026
- License
- Coursier is released under the Apache License, version 2. · get-coursier.io, 12 Oct 2026
- Mill limitation
- The installation documentation says Mill is not included in the default setup and installing it with cs install mill is unsupported and known not to work. · get-coursier.io, 12 Oct 2026
- Offline installation
- Yes · get-coursier.io, 21 Sept 2026
- Package formats
- Maven,Ivy · get-coursier.io, 21 Sept 2026
- Parallel downloads
- Coursier supports parallel downloads and does not use a global lock, allowing multiple applications to download at the same time. · get-coursier.io, 12 Oct 2026
- Platform availability
- The installation page provides native launchers for Linux, macOS, and Windows, plus a JAR-based launcher for systems with Java 8 or later. · get-coursier.io, 12 Oct 2026
- Private registry auth
- Yes · get-coursier.io, 21 Sept 2026
- Purpose
- Coursier is a Scala application and artifact manager that installs Scala applications, sets up Scala development environments, and downloads and caches artifacts from the web. · get-coursier.io, 12 Oct 2026
- Repository support
- The API defaults to the local Ivy2 repository on the JVM and Maven Central, and allows additional repositories to be configured. · get-coursier.io, 12 Oct 2026
- SBOM limitation
- Coursier does not currently generate a Software Bill of Materials during dependency resolution. · get-coursier.io, 12 Oct 2026
Where Coursier stands on Freedom251
- Package Managers#47 of 93