← Package directory
Available on winget

Install Scala CLI

Scala CLI is a command-line tool to interact with the Scala language.

Install with winget
winget install --id VirtusLab.ScalaCLI
Upgrade
winget upgrade --id VirtusLab.ScalaCLI
Uninstall
winget uninstall --id VirtusLab.ScalaCLI

About Scala CLI

Scala CLI is a command-line tool to interact with the Scala language.

What's new in 1.14.0

Change default Scala Native version to 0.5.11 This Scala CLI version switches the default Scala Native version to 0.5.11. Added by @Gedochao in #4253 Support for .test.java *.test.java files are now picked up as test-scope sources automatically, mirroring *.test.scala. Under the hood, Scala CLI generates a matching .java source (so Example.test.java generates a matching Example.java source), so that javac accepts the public class. //> using test.dep junit:junit:4.13.2 //> using test.dep com.novocode:junit-interface:0.11 import org.junit.Test; import static org.junit.Assert.assertEquals; public class ExampleTest { @Test public void foo() { assertEquals(4, 2 + 2); } } scala-cli test java-junit-example Added by @Gedochao in #4261. A toggle to turn auto-IDE-setup off Build commands (such as compile, run, test) automatically write the BSP configuration under .bsp/ to keep IDE integration in sync. This behavior can now be disabled per-invocation via --auto-setup-ide=false, or globally via the ide.auto-setup config key. scala-cli compile java-junit-example --auto-setup-ide=false # Compile without generating .bsp/ configuration scala-cli config ide.auto-setup false # Disable auto-setup-ide globally for all build commands Added by @Gedochao in #4258. New directives-parser module The legacy Java using_directives parser has been replaced with a Scala-rewritten directives-parser module. This is transparent to users, but resolves long-standing directive parsing issues (#2443, #3019, #2382) and unblocks future improvements to directive handling. The directives parser can be used as a sta...

Read release notes

Version history

Version Updated Notes
1.14.0 Change default Scala Native version to 0.5.11 This Scala CLI version switches the default Scala Native version to 0.5.11. Added by @Gedochao in #4253 Support for .test.java *.test.java files are now picked up as test-sco...
1.13.0 Unknown Change default Scala version to 3.8.3 This Scala CLI version switches the default Scala version to 3.8.3. scala-cli version # Scala CLI version: 1.13.0 # Scala version (default): 3.8.3 Added by @Gedochao in #4204 Support...
1.12.5 Unknown --cross support for run, package and doc sub-commands (experimental ⚡️) It is now possible to cross-run, cross-package and cross-generate docs (doc) with the --cross command line option. - run runs each configured combin...
1.12.4 Unknown This is just a small patch fixing a bug (#4152) breaking Metals support in Scala CLI v1.12.3. Fixes - Fix BSP buildTarget/wrappedSources for GraalVM native image by @Gedochao in #4153 Documentation changes - Fix docs' li...
1.12.3 Unknown Change default Scala version to 3.8.2 This Scala CLI version switches the default Scala version to 3.8.2. scala-cli version # Scala CLI version: 1.12.3 # Scala version (default): 3.8.2 Added by @Gedochao in #4143 Fixes -...
1.12.2 Unknown Old sonatype snapshot is causing Scala CLI to timeout Until the recent migration to new Sonatype Central repository there was an older snapshots repository in use. Unfortuntately, last week it started to make requests to...
1.12.1 Unknown Change default Scala version to 3.8.1 This Scala CLI version switches the default Scala version to 3.8.1. scala-cli version # Scala CLI version: 1.13.0 # Scala version (default): 3.8.1 Added by @Gedochao in #4065 Change...
1.12.0 Unknown Change default Scala version to 3.8.0 This Scala CLI version switches the default Scala version to 3.8.0. scala-cli version # Scala CLI version: 1.12.0 # Scala version (default): 3.8.0 Added by @Gedochao in #4049 Support...
1.11.0 Unknown Change default Scala versions to 2.13.18 and 2.12.21 This Scala CLI version switches the default Scala versions: - default Scala 2.13 to 2.13.18 - default Scala 2.12 to 2.12.21 Added by @Gedochao in #3999 and #3958 Fall...
1.10.1 Unknown This is a bugfix release, chiefly aiming to mend #3949, which affected several of our users. Fixes - Ensure Coursier logger gets initialized while downloading JVMs by @Gedochao in #3951 Documentation changes - Back port...
1.9.1 Unknown Support for Scala 3.7.3 This Scala CLI version switches the default Scala version to 3.7.3. scala-cli version # Scala CLI version: 1.9.1 # Scala version (default): 3.7.3 Added by @Gedochao in #3866 Support for Scala.js 1...
1.9.0 Unknown Support for the new Scala 3 nightly repository This Scala CLI version supports the new Scala 3 nightly versions repository: https://repo.scala-lang.org/artifactory/maven-nightlies This means that newest Scala 3 nightly v...
1.8.5 Unknown Support for Scala 3.7.2 This Scala CLI version switches the default Scala version to 3.7.2. scala-cli version # Scala CLI version: 1.8.5 # Scala version (default): 3.7.2 Added by @Gedochao in #3809 Add props with input p...
1.8.4 Unknown (⚡️ experimental) publish support for the Sonatype Central Portal This Scala CLI version adds support for publishing artifacts to the Sonatype Central Portal via its OSSRH Staging API. It is once again publish artifacts...
1.8.3 Unknown This is a small release which aims to fix issues with publishing Scala CLI on Sonatype Central Portal. Build and internal changes - Add extra logging on Scala CLI artifacts publishing by @Gedochao in #3745 - [NIT] Refact...
1.8.2 Unknown Support for Scala Native 0.5.8 This Scala CLI version switches the default Scala Native version to 0.5.8. scala-cli -e 'println("Hello from Scala Native 0.5.8!")' --native # Compiling project (Scala 3.7.1, Scala Native 0...
1.8.1 Unknown Support for Scala 3.7.1 This Scala CLI version switches the default Scala version to 3.7.1. scala-cli version # Scala CLI version: 1.8.1 # Scala version (default): 3.7.1 Added by @Gedochao in #3707 Support for URLs in us...
1.8.0 Unknown Support for Scala 3.7.0 and 3.3.6 This Scala CLI version switches the default Scala version to 3.7.0. The CLI internals are now built with Scala 3.3.6. scala-cli version # Scala CLI version: 1.8.0 # Scala version (defaul...
1.7.1 Unknown Support for Scala 3.6.4 This Scala CLI version switches the default Scala version to 3.6.4. scala-cli version # Scala CLI version: 1.7.1 # Scala version (default): 3.6.4 Added by @Gedochao in #3544 Support the --test com...
1.7.0 Unknown Switch to scalameta/scalafmt images of scalafmt 3.9.1+ Since version 3.9.1 scalafmt ships with native images built with Scala Native. As a result, we are sunsetting https://github.com/virtuslab/scalafmt-native-image and...