id = "aiven-client"
name = "Aiven CLI"
homepage = "https://github.com/aiven/aiven-client"
description = "aiven-client (avn) is the official command-line client for Aiven."
executables = ["avn"]
[dotfiles]
paths = ["~/.config/aiven/aiven-client.json"]
secret = ["~/.config/aiven/aiven-credentials.json"]
[commands]
format = 1
label = "Aiven CLI"
description = "Query Aiven services. Only listing services is covered; create, update, user and project management commands are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["service", "list"]
label = "List services"
description = "List the services in a project, or show one service, optionally as raw JSON or with a custom format."
[[commands.subcommand.source]]
id = "readme"
kind = "manual"
url = "https://github.com/aiven/aiven-client#readme"
revision = "main 2026-10"
evidence = """
$ avn service list
List services in a specific project:
$ avn service list --project proj2
List only a specific service:
$ avn service list db1
Verbose list (includes connection information, etc.):
$ avn service list db1 -v
Full service information in JSON, as it is returned by the Aiven REST API:
$ avn service list db1 --json
Only a specific field in the output, custom formatting:
$ avn service list db1 --format "The service is at {service_uri}"
"""
[[commands.subcommand.field]]
id = "service"
label = "Service name"
description = "Leave empty to list every service in the project."
type = "string"
position = 0
sources = ["readme"]
[[commands.subcommand.field]]
id = "project"
label = "Project"
type = "string"
option = ["--project"]
sources = ["readme"]
[[commands.subcommand.field]]
id = "verbose"
label = "Verbose"
type = "boolean"
option = ["-v"]
sources = ["readme"]
[[commands.subcommand.field]]
id = "json"
label = "Raw JSON"
type = "boolean"
option = ["--json"]
sources = ["readme"]
[[commands.subcommand.field]]
id = "format"
label = "Output format"
description = "A template such as: The service is at {service_uri}"
type = "string"
option = ["--format"]
sources = ["readme"]
[[commands.subcommand.task]]
id = "list_all"
label = "List all services"
fields = ["project", "verbose"]
required = []
[[commands.subcommand.task]]
id = "show_json"
label = "Show one service as JSON"
fields = ["service", "project", "json"]
required = ["service", "json"]
set = { json = [true] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["service", "project", "verbose"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["json", "format"]