{
  "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": {
    "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
    },
    "subcommand": [
      {
        "path": [
          "search"
        ],
        "label": "Search the vault",
        "description": "Partial-word or regular-expression search over vault records.",
        "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\nDetail: Search the vault using partial word matching or a regular expression\nSearch string keywords or regular expression (if --regex) supplied\n-v, --verbose verbose output\n-c, --categories <CATEGORY> filter by category.\n--regex treat pattern as a regular expression instead of space-separated search terms\n--format <{table, json}> choose the format of the output\n"
          }
        ],
        "field": [
          {
            "id": "pattern",
            "label": "Search terms",
            "type": "string",
            "position": 0,
            "min": 1,
            "sources": [
              "ref"
            ]
          },
          {
            "id": "regex",
            "label": "Regular expression",
            "type": "boolean",
            "option": [
              "--regex"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "format",
            "label": "Output format",
            "type": "enum",
            "option": [
              "--format"
            ],
            "choices": [
              {
                "value": "table",
                "label": "Table"
              },
              {
                "value": "json",
                "label": "JSON"
              }
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "verbose",
            "label": "Verbose",
            "type": "boolean",
            "option": [
              "--verbose",
              "-v"
            ],
            "sources": [
              "ref"
            ]
          }
        ],
        "task": [
          {
            "id": "search",
            "label": "Search",
            "fields": [
              "pattern",
              "format"
            ],
            "required": [
              "pattern"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "pattern",
              "regex",
              "format",
              "verbose"
            ]
          }
        ]
      },
      {
        "path": [
          "ls"
        ],
        "label": "List folder contents",
        "description": "List the current vault folder.",
        "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\nDetail: List folder contents\n-l, --list show detailed list\n-f, --folders display folders\n-r, --records display records\n-v, --verbose verbose output\n-R, --recursive show subfolder contents\n--format format of output {table, csv, json, pdf}\n--output path to resulting output file (ignored for \"table\" format)\n"
          }
        ],
        "field": [
          {
            "id": "detailed",
            "label": "Detailed list",
            "type": "boolean",
            "option": [
              "--list",
              "-l"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "folders",
            "label": "Folders only",
            "type": "boolean",
            "option": [
              "--folders",
              "-f"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "records",
            "label": "Records only",
            "type": "boolean",
            "option": [
              "--records",
              "-r"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "recursive",
            "label": "Recursive",
            "type": "boolean",
            "option": [
              "--recursive",
              "-R"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "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"
            ]
          },
          {
            "id": "output",
            "label": "Output file",
            "type": "path",
            "path": {
              "kind": "file",
              "role": "output"
            },
            "option": [
              "--output"
            ],
            "effect": "overwrite",
            "sources": [
              "ref"
            ]
          }
        ],
        "task": [
          {
            "id": "ls",
            "label": "List contents",
            "fields": [
              "detailed",
              "recursive"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "detailed",
              "folders",
              "records",
              "recursive"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "format",
              "output"
            ]
          }
        ]
      },
      {
        "path": [
          "get"
        ],
        "label": "Show a record",
        "description": "Display a record, folder or team by UID.",
        "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\nDetail: Retrieve and display a Keeper Record/Folder/Team in printable or JSON format, given a corresponding UID.\nUID of a record, folder, or team\n--unmask display hidden field content as plaintext\n--format<{detail, json, password}> choose the format of the output\n"
          }
        ],
        "field": [
          {
            "id": "uid",
            "label": "UID",
            "type": "string",
            "position": 0,
            "min": 1,
            "sources": [
              "ref"
            ]
          },
          {
            "id": "unmask",
            "label": "Show hidden fields",
            "description": "Prints hidden field content as plaintext.",
            "type": "boolean",
            "option": [
              "--unmask"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "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"
            ]
          }
        ],
        "task": [
          {
            "id": "get",
            "label": "Show record",
            "fields": [
              "uid",
              "format"
            ],
            "required": [
              "uid"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "uid",
              "format",
              "unmask"
            ]
          }
        ]
      }
    ]
  }
}
