id = "coursier"
name = "Coursier"
homepage = "https://get-coursier.io/"
description = "A Scala dependency and application manager"
executables = ["cs", "coursier"]
[dotfiles]
paths = [
"[configHome]/coursier/credentials.properties",
"[appData]/Coursier/credentials.properties",
]
secret = []
[[dotfiles.secret_paths]]
file = [
"[configHome]/coursier/credentials.properties",
"[appData]/Coursier/credentials.properties",
]
match = { prefix = ["central.password", "mirror.password"] }
[commands]
format = 1
label = "Manage Scala apps and dependencies"
description = "Install or remove Scala applications, search for them, and fetch dependency JARs with Coursier. Resolution, repository and cache options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["install"]
label = "Install applications"
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://get-coursier.io/docs/cli-install"
revision = "2026-10-27"
evidence = """
$ cs install scalafmt
$ cs install scalafmt:2.4.2
$ cs install scala:2.12.15 scalac:2.12.15
"""
[[commands.subcommand.field]]
id = "apps"
label = "Applications"
description = "Names, optionally with :version."
type = "string"
position = 0
multiple = true
min = 1
sources = ["docs"]
[[commands.subcommand.task]]
id = "install"
label = "Install"
fields = ["apps"]
required = ["apps"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["apps"]
[[commands.subcommand]]
path = ["uninstall"]
label = "Uninstall applications"
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://get-coursier.io/docs/cli-install"
revision = "2026-10-27"
evidence = """
$ cs uninstall scala scalac
$ cs uninstall --all
"""
[[commands.subcommand.field]]
id = "apps"
label = "Applications"
type = "string"
position = 0
multiple = true
min = 0
sources = ["docs"]
[[commands.subcommand.field]]
id = "all"
label = "Uninstall everything"
type = "boolean"
option = ["--all"]
effect = "delete"
sources = ["docs"]
[[commands.subcommand.task]]
id = "some"
label = "Uninstall some"
fields = ["apps"]
required = ["apps"]
[[commands.subcommand.task]]
id = "everything"
label = "Uninstall all"
fields = ["all"]
required = ["all"]
set = { all = [true] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["apps", "all"]
[[commands.subcommand]]
path = ["search"]
label = "Search applications"
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://get-coursier.io/docs/cli-install"
revision = "2026-10-27"
evidence = """
$ cs search fmt
"""
[[commands.subcommand.field]]
id = "query"
label = "Search text"
type = "string"
position = 0
min = 1
sources = ["docs"]
[[commands.subcommand.task]]
id = "search"
label = "Search"
fields = ["query"]
required = ["query"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["query"]
[[commands.subcommand]]
path = ["fetch"]
label = "Fetch dependency JARs"
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://get-coursier.io/docs/cli-fetch"
revision = "2026-10-27"
evidence = """
$ cs fetch io.circe::circe-generic:0.12.3
$ cs fetch --classpath io.circe::circe-generic:0.12.3
$ cs fetch --sources com.lihaoyi:ammonite_2.12.8:1.6.0
$ cs fetch --javadoc com.lihaoyi:ammonite_2.12.8:1.6.0
$ cs fetch --dependency-file file_1 --dependency-file file_2
"""
[[commands.subcommand.field]]
id = "deps"
label = "Dependencies"
description = "org:name:version, or org::name:version for Scala libraries."
type = "string"
position = 0
multiple = true
min = 0
sources = ["docs"]
[[commands.subcommand.field]]
id = "classpath"
label = "Print as classpath"
type = "boolean"
option = ["--classpath"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "sources"
label = "Fetch source JARs"
type = "boolean"
option = ["--sources"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "javadoc"
label = "Fetch javadoc JARs"
type = "boolean"
option = ["--javadoc"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "dependency_file"
label = "Dependency files"
type = "path"
option = ["--dependency-file"]
multiple = true
path = { kind = "file", role = "input", must_exist = true }
sources = ["docs"]
[[commands.subcommand.task]]
id = "classpath"
label = "Print a classpath"
fields = ["deps", "classpath"]
required = ["deps"]
set = { classpath = [true] }
[[commands.subcommand.task]]
id = "sources"
label = "Fetch sources"
fields = ["deps", "sources"]
required = ["deps"]
set = { sources = [true] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["deps", "classpath", "sources", "javadoc", "dependency_file"]