id = "keyring"
name = "keyring"
homepage = "https://github.com/jaraco/keyring"
description = "Store and access your passwords safely."
executables = ["keyring"]
[dotfiles]
paths = [
"[configHome]/python_keyring/keyringrc.cfg",
"%LOCALAPPDATA%/Python Keyring/keyringrc.cfg",
]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "Get, set or delete a password"
description = "Read, store or delete a password in the system keyring for a service and username. Backend paths, --disable and completion are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "help"
kind = "help"
url = "https://github.com/jaraco/keyring/blob/main/keyring/cli.py"
revision = "main 2026-10"
evidence = """
"-b",
"--keyring-backend",
help="Name of the keyring backend",
"--list-backends",
help="List keyring backends and exit",
"--mode",
choices=self.parser._get_modes, # _get_modes = ["password", "creds"]
"--output",
choices=self.parser._output_formats, # _output_formats = ["plain", "json"]
self.parser._operations = ["get", "set", "del", "diagnose"]
'operation', 'service', 'username'
"""
[[commands.field]]
id = "operation"
label = "Operation"
type = "enum"
position = 0
choices = [{ value = "get", label = "Get password" }, { value = "set", label = "Set password (prompts)" }, { value = "del", label = "Delete password" }, { value = "diagnose", label = "Diagnose" }]
sources = ["help"]
[[commands.field]]
id = "service"
label = "Service"
type = "string"
position = 1
sources = ["help"]
[[commands.field]]
id = "username"
label = "Username"
type = "string"
position = 2
sources = ["help"]
[[commands.field]]
id = "backend"
label = "Keyring backend"
type = "string"
option = ["--keyring-backend", "-b"]
sources = ["help"]
[[commands.field]]
id = "mode"
label = "Get mode"
type = "enum"
option = ["--mode"]
choices = [{ value = "password", label = "Password only" }, { value = "creds", label = "Username and password" }]
sources = ["help"]
[[commands.field]]
id = "output"
label = "Output format"
type = "enum"
option = ["--output"]
choices = [{ value = "plain", label = "Plain" }, { value = "json", label = "JSON" }]
sources = ["help"]
[[commands.field]]
id = "list_backends"
label = "List backends"
type = "boolean"
option = ["--list-backends"]
sources = ["help"]
[[commands.task]]
id = "get"
label = "Get a password"
fields = ["operation", "service", "username"]
required = ["operation", "service", "username"]
set = { operation = ["get"] }
[[commands.task]]
id = "set"
label = "Store a password"
fields = ["operation", "service", "username"]
required = ["operation", "service", "username"]
set = { operation = ["set"] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["operation", "service", "username"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["backend", "mode", "output", "list_backends"]