id = "dstack"
name = "dstack"
homepage = "https://dstack.ai/"
description = "ML workflow orchestration system designed for reproducibility and collaboration"
executables = ["dstack"]
[dotfiles]
paths = ["~/.dstack/ssh/config"]
secret = ["~/.dstack/config.yml", "~/.dstack/server/config.yml"]
[commands]
format = 1
label = "dstack"
description = "Common dstack jobs: apply a configuration, list runs, show logs and stop a run. Configuration-specific apply options, fleets, gateways, volumes and secrets are not covered."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.subcommand]]
path = ["apply"]
label = "Apply a configuration"
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://dstack.ai/docs/reference/cli/dstack/apply/"
revision = "dstack apply --help"
evidence = """
Usage: dstack apply [--project NAME] [-h [TYPE]] [-f FILE] [-y] [--force] [-d]
--project NAME The name of the project. Defaults to $DSTACK_PROJECT
-f, --file FILE The path to the configuration file. Specify - to read
-y, --yes Do not ask for confirmation
--force Force apply when no changes detected
-d, --detach Exit immediately after submitting configuration
-v, --verbose Show all plan properties including those with default
"""
[[commands.subcommand.field]]
id = "file"
label = "Configuration file"
description = "Defaults to .dstack.yml in the current directory."
type = "path"
option = ["--file", "-f"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["help"]
[[commands.subcommand.field]]
id = "project"
label = "Project"
type = "string"
option = ["--project"]
sources = ["help"]
[[commands.subcommand.field]]
id = "yes"
label = "Do not ask for confirmation"
type = "boolean"
option = ["--yes", "-y"]
sources = ["help"]
[[commands.subcommand.field]]
id = "detach"
label = "Detach after submitting"
type = "boolean"
option = ["--detach", "-d"]
sources = ["help"]
[[commands.subcommand.field]]
id = "force"
label = "Force apply"
description = "Apply even when no changes are detected."
type = "boolean"
option = ["--force"]
sources = ["help"]
[[commands.subcommand.field]]
id = "verbose"
label = "Show all plan properties"
type = "boolean"
option = ["--verbose", "-v"]
sources = ["help"]
[[commands.subcommand.task]]
id = "apply"
label = "Apply a configuration"
fields = ["file", "project", "yes", "detach"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["file", "project", "yes", "detach"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["force", "verbose"]
[[commands.subcommand]]
path = ["ps"]
label = "List runs"
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://dstack.ai/docs/reference/cli/dstack/ps/"
revision = "dstack ps --help"
evidence = """
Usage: dstack ps [-h] [--project NAME] [-a] [-v] [-w] [-n LAST]
--project NAME The name of the project. Defaults to $DSTACK_PROJECT
-a, --all Show all runs. By default, it only shows unfinished
-v, --verbose Show more information about runs
-w, --watch Watch statuses of runs in realtime
-n, --last LAST Show only the last N runs. Implies --all
--json Output in JSON format (equivalent to --format json)
"""
[[commands.subcommand.field]]
id = "project"
label = "Project"
type = "string"
option = ["--project"]
sources = ["help"]
[[commands.subcommand.field]]
id = "all"
label = "Show all runs"
type = "boolean"
option = ["--all", "-a"]
sources = ["help"]
[[commands.subcommand.field]]
id = "last"
label = "Last N runs"
type = "integer"
option = ["--last", "-n"]
sources = ["help"]
[[commands.subcommand.field]]
id = "verbose"
label = "Verbose"
type = "boolean"
option = ["--verbose", "-v"]
sources = ["help"]
[[commands.subcommand.field]]
id = "watch"
label = "Watch in real time"
type = "boolean"
option = ["--watch", "-w"]
sources = ["help"]
[[commands.subcommand.field]]
id = "json"
label = "JSON output"
type = "boolean"
option = ["--json"]
sources = ["help"]
[[commands.subcommand.task]]
id = "ps"
label = "List runs"
fields = ["all", "last", "watch", "json"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["all", "last", "watch", "verbose", "json", "project"]
[[commands.subcommand]]
path = ["logs"]
label = "Show run logs"
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://dstack.ai/docs/reference/cli/dstack/logs/"
revision = "dstack logs --help"
evidence = """
Usage: dstack logs [-h] [--project NAME] [-d] [--replica REPLICA] [--job JOB]
[--since SINCE]
run_name
--project NAME The name of the project. Defaults to $DSTACK_PROJECT
-d, --diagnose Show run diagnostic logs
--replica REPLICA The replica number. Defaults to 0.
--job JOB The job number inside the replica. Defaults to 0.
--since SINCE Show only logs newer than the specified date. Can be a
duration (e.g. 10s, 5m, 1d) or an RFC 3339 string (e.g.
"""
[[commands.subcommand.field]]
id = "run_name"
label = "Run name"
type = "string"
position = 0
min = 1
sources = ["help"]
[[commands.subcommand.field]]
id = "since"
label = "Since"
description = "A duration such as 10s, 5m, 1d, or an RFC 3339 timestamp."
type = "string"
option = ["--since"]
sources = ["help"]
[[commands.subcommand.field]]
id = "diagnose"
label = "Diagnostic logs"
type = "boolean"
option = ["--diagnose", "-d"]
sources = ["help"]
[[commands.subcommand.field]]
id = "replica"
label = "Replica number"
type = "integer"
option = ["--replica"]
sources = ["help"]
[[commands.subcommand.field]]
id = "job"
label = "Job number"
type = "integer"
option = ["--job"]
sources = ["help"]
[[commands.subcommand.field]]
id = "project"
label = "Project"
type = "string"
option = ["--project"]
sources = ["help"]
[[commands.subcommand.task]]
id = "logs"
label = "Show logs"
fields = ["run_name", "since", "diagnose"]
required = ["run_name"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["run_name", "since", "diagnose"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["replica", "job", "project"]
[[commands.subcommand]]
path = ["stop"]
label = "Stop a run"
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://dstack.ai/docs/reference/cli/dstack/stop/"
revision = "dstack stop --help"
evidence = """
Usage: dstack stop [-h] [--project NAME] [-x] [-y] run_name
--project NAME The name of the project. Defaults to $DSTACK_PROJECT
-x, --abort
-y, --yes
"""
[[commands.subcommand.field]]
id = "run_name"
label = "Run name"
type = "string"
position = 0
min = 1
sources = ["help"]
[[commands.subcommand.field]]
id = "abort"
label = "Abort instead of stopping gracefully"
type = "boolean"
option = ["--abort", "-x"]
effect = "exec"
sources = ["help"]
[[commands.subcommand.field]]
id = "yes"
label = "Do not ask for confirmation"
type = "boolean"
option = ["--yes", "-y"]
sources = ["help"]
[[commands.subcommand.field]]
id = "project"
label = "Project"
type = "string"
option = ["--project"]
sources = ["help"]
[[commands.subcommand.task]]
id = "stop"
label = "Stop a run"
fields = ["run_name", "yes"]
required = ["run_name"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["run_name", "abort", "yes", "project"]