id = "keeper-commander" name = "Keeper Commander" homepage = "https://github.com/Keeper-Security/Commander" description = "A command-line and terminal UI interface to Keeper Password Manager and KeeperPAM." executables = ["keeper"] [dotfiles] # Keeper Commander's official documentation/source identifies ~/.keeper as # the macOS/Linux config directory and config.json as the local device/session # configuration. It contains private_key/device_token material, so it is a # credential-only entry rather than syncable plaintext content. # https://github.com/Keeper-Security/keeper-sdk-dotnet/blob/master/Commander/README.md # https://github.com/Keeper-Security/Commander/blob/master/keepercommander/service/README.md paths = [] exclude = [] secret = ["~/.keeper/config.json"] side_effect = false [commands] format = 1 label = "Keeper Commander" description = "Search the vault, list folder contents and read a record from the command line. Login, record editing, sharing and the other Commander 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 = ["search"] label = "Search the vault" description = "Partial-word or regular-expression search over vault records." [[commands.subcommand.source]] id = "ref" kind = "manual" url = "https://docs.keeper.io/en/keeperpam/commander-cli/command-reference/record-commands" revision = "2026-10-27" evidence = """ Command: search or s Detail: Search the vault using partial word matching or a regular expression Search string keywords or regular expression (if --regex) supplied -v, --verbose verbose output -c, --categories filter by category. --regex treat pattern as a regular expression instead of space-separated search terms --format <{table, json}> choose the format of the output """ [[commands.subcommand.field]] id = "pattern" label = "Search terms" type = "string" position = 0 min = 1 sources = ["ref"] [[commands.subcommand.field]] id = "regex" label = "Regular expression" type = "boolean" option = ["--regex"] sources = ["ref"] [[commands.subcommand.field]] id = "format" label = "Output format" type = "enum" option = ["--format"] choices = [{ value = "table", label = "Table" }, { value = "json", label = "JSON" }] sources = ["ref"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose", "-v"] sources = ["ref"] [[commands.subcommand.task]] id = "search" label = "Search" fields = ["pattern", "format"] required = ["pattern"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["pattern", "regex", "format", "verbose"] [[commands.subcommand]] path = ["ls"] label = "List folder contents" description = "List the current vault folder." [[commands.subcommand.source]] id = "ref" kind = "manual" url = "https://docs.keeper.io/en/keeperpam/commander-cli/command-reference/record-commands" revision = "2026-10-27" evidence = """ Command: ls Detail: List folder contents -l, --list show detailed list -f, --folders display folders -r, --records display records -v, --verbose verbose output -R, --recursive show subfolder contents --format format of output {table, csv, json, pdf} --output path to resulting output file (ignored for "table" format) """ [[commands.subcommand.field]] id = "detailed" label = "Detailed list" type = "boolean" option = ["--list", "-l"] sources = ["ref"] [[commands.subcommand.field]] id = "folders" label = "Folders only" type = "boolean" option = ["--folders", "-f"] sources = ["ref"] [[commands.subcommand.field]] id = "records" label = "Records only" type = "boolean" option = ["--records", "-r"] sources = ["ref"] [[commands.subcommand.field]] id = "recursive" label = "Recursive" type = "boolean" option = ["--recursive", "-R"] sources = ["ref"] [[commands.subcommand.field]] id = "format" label = "Output format" type = "enum" option = ["--format"] choices = [{ value = "table", label = "Table" }, { value = "csv", label = "CSV" }, { value = "json", label = "JSON" }, { value = "pdf", label = "PDF" }] sources = ["ref"] [[commands.subcommand.field]] id = "output" label = "Output file" type = "path" path = { kind = "file", role = "output" } option = ["--output"] effect = "overwrite" sources = ["ref"] [[commands.subcommand.task]] id = "ls" label = "List contents" fields = ["detailed", "recursive"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["detailed", "folders", "records", "recursive"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["format", "output"] [[commands.subcommand]] path = ["get"] label = "Show a record" description = "Display a record, folder or team by UID." [[commands.subcommand.source]] id = "ref" kind = "manual" url = "https://docs.keeper.io/en/keeperpam/commander-cli/command-reference/record-commands" revision = "2026-10-27" evidence = """ Command: get or g Detail: Retrieve and display a Keeper Record/Folder/Team in printable or JSON format, given a corresponding UID. UID of a record, folder, or team --unmask display hidden field content as plaintext --format<{detail, json, password}> choose the format of the output """ [[commands.subcommand.field]] id = "uid" label = "UID" type = "string" position = 0 min = 1 sources = ["ref"] [[commands.subcommand.field]] id = "unmask" label = "Show hidden fields" description = "Prints hidden field content as plaintext." type = "boolean" option = ["--unmask"] sources = ["ref"] [[commands.subcommand.field]] id = "format" label = "Output format" type = "enum" option = ["--format"] choices = [{ value = "detail", label = "Detail" }, { value = "json", label = "JSON" }, { value = "password", label = "Password only" }] sources = ["ref"] [[commands.subcommand.task]] id = "get" label = "Show record" fields = ["uid", "format"] required = ["uid"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["uid", "format", "unmask"]