id = "swiftly" name = "Swiftly" homepage = "https://www.swift.org/swiftly/" description = "A toolchain manager for Swift." executables = ["swiftly"] [dotfiles] # Swiftly's upstream design documents config.json in ~/.local/share/swiftly on # Linux and ~/Library/Application Support/swiftly on macOS. Its env.sh/env file # contains absolute PATH and installation-directory exports, so it is excluded # as machine-generated shell state; toolchains and proxy bins are installed data. # https://github.com/swiftlang/swiftly/blob/main/DESIGN.md#linux # https://github.com/swiftlang/swiftly/blob/main/DESIGN.md#macos paths = [ "~/.local/share/swiftly/config.json", "[appData]/swiftly/config.json", ] exclude = [ "~/.local/share/swiftly/env.sh", "~/.local/share/swiftly/toolchains/", "~/.local/share/swiftly/bin/", "[appData]/swiftly/env", "[appData]/swiftly/toolchains/", "[appData]/swiftly/bin/", ] secret = [] side_effect = false [commands] format = 1 label = "Swiftly" description = "Install a Swift toolchain or switch the one in use. Source: swiftly CLI reference. Other subcommands (list, update, uninstall, run) are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["install"] label = "Install a toolchain" description = "Install a stable release or snapshot toolchain; with no version, installs the one selected by .swift-version." [[commands.subcommand.source]] id = "ref" kind = "manual" url = "https://raw.githubusercontent.com/swiftlang/swiftly/HEAD/Documentation/SwiftlyDocs.docc/swiftly-cli-reference.md" revision = "2026-10-27" evidence = """ swiftly install [] [--use] [--verify] [--no-verify] [--post-install-file=] [--progress-file=] [--format=] [--assume-yes] [--verbose] [--version] [--help] --use: Mark the newly installed toolchain as in-use. --verify: Verify (or not) the toolchain's PGP signature before proceeding with installation. --no-verify: Verify (or not) the toolchain's PGP signature before proceeding with installation. --assume-yes: Disable confirmation prompts by assuming 'yes' --verbose: Enable verbose reporting from swiftly $ swiftly install latest $ swiftly install 5.7-snapshot """ [[commands.subcommand.field]] id = "version" label = "Toolchain version" description = "latest, a version such as 5.4.2 or 5.6, or a snapshot such as main-snapshot." type = "string" position = 0 suggestions = [{ value = "latest", label = "Latest stable" }, { value = "main-snapshot", label = "Latest main snapshot" }] sources = ["ref"] [[commands.subcommand.field]] id = "use" label = "Use after installing" type = "boolean" option = ["--use"] sources = ["ref"] [[commands.subcommand.field]] id = "verify" label = "Verify signature" type = "boolean" option = ["--verify"] false_option = "--no-verify" sources = ["ref"] [[commands.subcommand.field]] id = "assume_yes" label = "Assume yes" type = "boolean" option = ["--assume-yes"] sources = ["ref"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose"] sources = ["ref"] [[commands.subcommand.task]] id = "install-latest" label = "Install latest and use it" set = { version = ["latest"], use = [true] } fields = ["version", "use", "assume_yes"] required = ["version"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["version", "use", "verify", "assume_yes", "verbose"] [[commands.subcommand]] path = ["use"] label = "Switch toolchain" description = "Set the in-use or default toolchain; with no toolchain, prints the one currently in use." [[commands.subcommand.source]] id = "ref" kind = "manual" url = "https://raw.githubusercontent.com/swiftlang/swiftly/HEAD/Documentation/SwiftlyDocs.docc/swiftly-cli-reference.md" revision = "2026-10-27" evidence = """ swiftly use [--print-location] [--global-default] [--format=] [--assume-yes] [--verbose] [] [--version] [--help] --print-location: Print the location of the in-use toolchain. This is valid only when there is no toolchain argument. --global-default: Set the global default toolchain that is used when there are no .swift-version files. --assume-yes: Disable confirmation prompts by assuming 'yes' $ swiftly use latest """ [[commands.subcommand.field]] id = "toolchain" label = "Toolchain" type = "string" position = 0 suggestions = [{ value = "latest", label = "Latest stable" }, { value = "main-snapshot", label = "Latest main snapshot" }, { value = "xcode", label = "Xcode (macOS)" }] sources = ["ref"] [[commands.subcommand.field]] id = "global_default" label = "Set as global default" type = "boolean" option = ["--global-default"] sources = ["ref"] [[commands.subcommand.field]] id = "print_location" label = "Print location" description = "Only valid without a toolchain." type = "boolean" option = ["--print-location"] sources = ["ref"] [[commands.subcommand.field]] id = "assume_yes" label = "Assume yes" type = "boolean" option = ["--assume-yes"] sources = ["ref"] [[commands.subcommand.task]] id = "use-toolchain" label = "Use a toolchain" fields = ["toolchain", "global_default", "assume_yes"] required = ["toolchain"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["toolchain", "global_default", "print_location", "assume_yes"]