id = "scw"
name = "Scaleway CLI"
homepage = "https://www.scaleway.com/en/cli/"
description = "Command Line Interface for Scaleway."
executables = ["scw"]
[dotfiles]
paths = []
exclude = []
secret = ["~/.config/scw/config.yaml"]
side_effect = false
[commands]
format = 1
label = "Scaleway Instances"
description = "List, create and delete Instance servers. Arguments use scw's name=value syntax. Volumes, tags, cloud-init, security groups and other services are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["instance", "server", "list"]
label = "List servers"
description = "List Instance servers, optionally filtered."
[[commands.subcommand.source]]
id = "doc"
kind = "manual"
url = "https://github.com/scaleway/scaleway-cli/blob/master/docs/commands/instance.md"
revision = "2026-10-27"
evidence = """
scw instance server list [arg=value ...]
| name | Filter Instances by name (eg. "server1" will return "server100" and "server1" but not "foo") |
| commercial-type | List Instances of this commercial type |
| state | List Instances in this state | One of: `running`, `stopped`, `stopped in place`, `starting`, `stopping`, `locked` |
| project-id | List only Instances of this Project ID |
| zone | Zone to target. If none is passed will use default zone from the config | Default: `fr-par-1` |
scw instance server list commercial-type=DEV1-S
scw instance server list name=server1
"""
[[commands.subcommand.field]]
id = "name"
label = "Name filter"
type = "string"
option = ["name="]
sources = ["doc"]
[[commands.subcommand.field]]
id = "commercial_type"
label = "Commercial type"
type = "string"
option = ["commercial-type="]
suggestions = [{ value = "DEV1-S", label = "DEV1-S" }]
sources = ["doc"]
[[commands.subcommand.field]]
id = "state"
label = "State"
type = "enum"
option = ["state="]
choices = [{ value = "running", label = "running" }, { value = "stopped", label = "stopped" }, { value = "stopped in place", label = "stopped in place" }, { value = "starting", label = "starting" }, { value = "stopping", label = "stopping" }, { value = "locked", label = "locked" }]
sources = ["doc"]
[[commands.subcommand.field]]
id = "project_id"
label = "Project ID"
type = "string"
option = ["project-id="]
sources = ["doc"]
[[commands.subcommand.field]]
id = "zone"
label = "Zone"
description = "Defaults to the zone in the scw config."
type = "string"
option = ["zone="]
suggestions = [{ value = "fr-par-1", label = "fr-par-1" }, { value = "fr-par-2", label = "fr-par-2" }, { value = "fr-par-3", label = "fr-par-3" }, { value = "nl-ams-1", label = "nl-ams-1" }, { value = "nl-ams-2", label = "nl-ams-2" }, { value = "nl-ams-3", label = "nl-ams-3" }, { value = "pl-waw-1", label = "pl-waw-1" }, { value = "pl-waw-2", label = "pl-waw-2" }, { value = "pl-waw-3", label = "pl-waw-3" }, { value = "it-mil-1", label = "it-mil-1" }]
sources = ["doc"]
[[commands.subcommand.task]]
id = "list"
label = "List all servers"
fields = ["zone"]
required = []
[[commands.subcommand.task]]
id = "running"
label = "List running servers"
fields = ["zone"]
required = []
set = { state = ["running"] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["name", "state", "commercial_type", "zone", "project_id"]
[[commands.subcommand]]
path = ["instance", "server", "create"]
label = "Create a server"
description = "Create and start an Instance server."
[[commands.subcommand.source]]
id = "doc"
kind = "manual"
url = "https://github.com/scaleway/scaleway-cli/blob/master/docs/commands/instance.md"
revision = "2026-10-27"
evidence = """
scw instance server create [arg=value ...]
| image | Image ID or label of the server | Required Default: `ubuntu_jammy` |
| type | Server commercial type | Required |
| name | Server name | Default: `` |
| ip | Either an IP, an IP ID, ('new', 'ipv4', 'ipv6' or 'both') to create new IPs, 'dynamic' to use a dynamic IP or 'none' for no public IP (new | ipv4 | ipv6 | both | dynamic | none | | ) | Default: `new` |
| zone | Zone to target. If none is passed will use default zone from the config | Default: `fr-par-1` |
scw instance server create image=ubuntu_focal type=GP1-XS name=foo tags.0=prod tags.1=blue
"""
[[commands.subcommand.field]]
id = "image"
label = "Image"
type = "string"
option = ["image="]
suggestions = [{ value = "ubuntu_jammy", label = "Ubuntu 22.04" }, { value = "ubuntu_focal", label = "Ubuntu 20.04" }]
sources = ["doc"]
[[commands.subcommand.field]]
id = "type"
label = "Commercial type"
type = "string"
option = ["type="]
suggestions = [{ value = "GP1-XS", label = "GP1-XS" }]
sources = ["doc"]
[[commands.subcommand.field]]
id = "name"
label = "Server name"
type = "string"
option = ["name="]
sources = ["doc"]
[[commands.subcommand.field]]
id = "ip"
label = "Public IP"
type = "string"
option = ["ip="]
suggestions = [{ value = "new", label = "new" }, { value = "ipv4", label = "ipv4" }, { value = "ipv6", label = "ipv6" }, { value = "both", label = "both" }, { value = "dynamic", label = "dynamic" }, { value = "none", label = "none" }]
sources = ["doc"]
[[commands.subcommand.field]]
id = "zone"
label = "Zone"
description = "Defaults to the zone in the scw config."
type = "string"
option = ["zone="]
suggestions = [{ value = "fr-par-1", label = "fr-par-1" }, { value = "fr-par-2", label = "fr-par-2" }, { value = "fr-par-3", label = "fr-par-3" }, { value = "nl-ams-1", label = "nl-ams-1" }, { value = "nl-ams-2", label = "nl-ams-2" }, { value = "nl-ams-3", label = "nl-ams-3" }, { value = "pl-waw-1", label = "pl-waw-1" }, { value = "pl-waw-2", label = "pl-waw-2" }, { value = "pl-waw-3", label = "pl-waw-3" }, { value = "it-mil-1", label = "it-mil-1" }]
sources = ["doc"]
[[commands.subcommand.task]]
id = "create"
label = "Create a server"
fields = ["image", "type", "name", "zone"]
required = ["image", "type"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["image", "type", "name", "ip", "zone"]
[[commands.subcommand]]
path = ["instance", "server", "delete"]
label = "Delete a server"
description = "Delete the server with the given ID."
[[commands.subcommand.source]]
id = "doc"
kind = "manual"
url = "https://github.com/scaleway/scaleway-cli/blob/master/docs/commands/instance.md"
revision = "2026-10-27"
evidence = """
scw instance server delete [arg=value ...]
| server-id | | Required |
| with-volumes | Delete the volumes attached to the server | Default: `all` One of: `none`, `local`, `block`, `root`, `all` |
| zone | Zone to target. If none is passed will use default zone from the config | Default: `fr-par-1` |
scw instance server delete 11111111-1111-1111-1111-111111111111 zone=fr-par-1
"""
[[commands.subcommand.field]]
id = "server_id"
label = "Server ID"
type = "string"
position = 0
min = 1
effect = "delete"
sources = ["doc"]
[[commands.subcommand.field]]
id = "with_volumes"
label = "Volumes to delete"
type = "enum"
option = ["with-volumes="]
choices = [{ value = "none", label = "none" }, { value = "local", label = "local" }, { value = "block", label = "block" }, { value = "root", label = "root" }, { value = "all", label = "all" }]
effect = "delete"
sources = ["doc"]
[[commands.subcommand.field]]
id = "zone"
label = "Zone"
description = "Defaults to the zone in the scw config."
type = "string"
option = ["zone="]
suggestions = [{ value = "fr-par-1", label = "fr-par-1" }, { value = "fr-par-2", label = "fr-par-2" }, { value = "fr-par-3", label = "fr-par-3" }, { value = "nl-ams-1", label = "nl-ams-1" }, { value = "nl-ams-2", label = "nl-ams-2" }, { value = "nl-ams-3", label = "nl-ams-3" }, { value = "pl-waw-1", label = "pl-waw-1" }, { value = "pl-waw-2", label = "pl-waw-2" }, { value = "pl-waw-3", label = "pl-waw-3" }, { value = "it-mil-1", label = "it-mil-1" }]
sources = ["doc"]
[[commands.subcommand.task]]
id = "delete"
label = "Delete a server"
fields = ["server_id", "with_volumes", "zone"]
required = ["server_id"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["server_id", "with_volumes", "zone"]