Skip to main content


This section covers some aspects of Scala CLI that apply across various commands. We have divided the available guides into categories, so that it's easier to find a relevant topic.

For concrete recipes that show you how to use Scala CLI in particular situations, refer to the cookbooks section.

Introductory guides

These few guides are a good starting point when learning how to use Scala CLI.

  • Configuration - learn how to configure various options, and what configuration styles are best for each use case
  • Dependencies - learn how to define dependencies within a Scala CLI project.
  • Updating dependencies - learn about how to keep your dependencies up-to-date automatically with Scala CLI.
  • using directives - Scala CLI’s syntax that lets you store configuration information directly in source files
  • IDE support - how to import and use Scala CLI-based projects in your favorite IDE.
  • Scala Toolkit - how to use the Scala Toolkit dependency batch (and other dependency batches) in a Scala CLI project.
  • Migrating from the old scala runner - an in-depth look at all the differences between Scala CLI and the old scala script.

Scripting guides

Guides on how to get started with Scala scripting with Scala CLI.

  • Scripting guide - covers how Scala CLI allows for powerful scripting with Scala.
  • Shebang - explains how to use the shebang sub-command in a script's shebang header.

Advanced guides

Less introductory guides on specific topics.

  • Scala.js and Scala Native - learn how Scala CLI supports these non-JVM platforms
  • Piping - covers how Scala CLI allows to work with piped sources.
  • Snippets - learn how to use command line snippets with Scala CLI.
  • Verbosity - learn how to control logs verbosity in Scala CLI.
  • Java properties - learn how to pass Java properties to Scala CLI.
  • Internals - learn about how Scala CLI works under the hood.
  • Custom Toolkit - learn how to create custom toolkits

⚡️ --power mode guides

  • SBT and Mill export - learn how to convert your Scala CLI project into an SBT or Mill project (when you need a more powerful build tool).
  • proxies - learn how to configure Scala CLI to work with proxies.
  • Markdown - learn how to work with .md sources.
  • Python/ScalaPy - learn how to use Python libraries in Scala CLI projects.
  • offline mode - learn how to use Scala CLI in offline mode.
  • repositories - learn how to configure Scala CLI to work with custom repositories.