{
  "id": "cue",
  "name": "CUE",
  "homepage": "https://cuelang.org/",
  "description": "Validate and define text-based and dynamic configuration",
  "executables": [
    "cue"
  ],
  "dotfiles": {
    "paths": [
      "[appData]/cue/",
      "[configHome]/cue/",
      "%APPDATA%/cue/"
    ],
    "secret": [
      "[appData]/cue/logins.json",
      "[configHome]/cue/logins.json",
      "%APPDATA%/cue/logins.json"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Work with CUE files",
    "description": "Export, validate or format CUE configuration. Other subcommands, value injection, protobuf and non-CUE file options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "export"
        ],
        "label": "Export as JSON, YAML or TOML",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://cuelang.org/docs/reference/command/cue-help-export/",
            "revision": "2026-10-27",
            "evidence": "cue export [flags] [inputs]\n  -e, --expression stringArray   export this expression only\n  -f, --force                    force overwriting existing files\n      --out string               output format (run 'cue help filetypes' for more info)\n  -o, --outfile string           filename or - for stdout with optional file prefix\n    cue        Output as CUE    (can encode any value)\n    json       Output as JSON   (can encode any value)\n    toml       Output as TOML   (can encode any value)\n    yaml       Output as YAML   (can encode any value)\n    text       Output as text   (can only encode values of type string)\n    binary     Output as binary (can only encode values of type string or bytes)\n"
          }
        ],
        "field": [
          {
            "id": "inputs",
            "label": "Inputs",
            "description": "Packages, CUE files or data files; empty means the current package.",
            "type": "path",
            "position": 0,
            "multiple": true,
            "min": 0,
            "path": {
              "kind": "any",
              "role": "input"
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "out",
            "label": "Output format",
            "type": "enum",
            "option": [
              "--out"
            ],
            "choices": [
              {
                "value": "cue",
                "label": "CUE"
              },
              {
                "value": "json",
                "label": "JSON"
              },
              {
                "value": "toml",
                "label": "TOML"
              },
              {
                "value": "yaml",
                "label": "YAML"
              },
              {
                "value": "text",
                "label": "Text"
              },
              {
                "value": "binary",
                "label": "Binary"
              }
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "expression",
            "label": "Expression",
            "description": "Export this expression only; repeatable.",
            "type": "string",
            "option": [
              "--expression",
              "-e"
            ],
            "multiple": true,
            "sources": [
              "help"
            ]
          },
          {
            "id": "outfile",
            "label": "Output file",
            "type": "path",
            "option": [
              "--outfile",
              "-o"
            ],
            "path": {
              "kind": "file",
              "role": "output",
              "must_exist": false
            },
            "effect": "overwrite",
            "sources": [
              "help"
            ]
          },
          {
            "id": "force",
            "label": "Overwrite existing files",
            "type": "boolean",
            "option": [
              "--force",
              "-f"
            ],
            "effect": "overwrite",
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "yaml",
            "label": "Export as YAML",
            "fields": [
              "inputs",
              "out",
              "expression",
              "outfile"
            ],
            "required": [],
            "set": {
              "out": [
                "yaml"
              ]
            }
          },
          {
            "id": "json",
            "label": "Export as JSON",
            "fields": [
              "inputs",
              "out",
              "expression",
              "outfile"
            ],
            "required": [],
            "set": {
              "out": [
                "json"
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "inputs",
              "out",
              "expression",
              "outfile",
              "force"
            ]
          }
        ]
      },
      {
        "path": [
          "vet"
        ],
        "label": "Validate data against CUE",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://cuelang.org/docs/reference/command/cue-help-vet/",
            "revision": "2026-10-27",
            "evidence": "cue vet [flags] [inputs]\n  -c, --concrete                 require the evaluation to be concrete, or set -c=false to allow incomplete values\n  -d, --schema string            expression to select schema for evaluating values in non-CUE files\n"
          }
        ],
        "field": [
          {
            "id": "inputs",
            "label": "Inputs",
            "description": "Packages, CUE files or data files; empty means the current package.",
            "type": "path",
            "position": 0,
            "multiple": true,
            "min": 0,
            "path": {
              "kind": "any",
              "role": "input"
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "concrete",
            "label": "Require concrete values",
            "type": "boolean",
            "option": [
              "--concrete",
              "-c"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "schema",
            "label": "Schema expression",
            "description": "Expression selecting the schema used to check non-CUE data files.",
            "type": "string",
            "option": [
              "--schema",
              "-d"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "check",
            "label": "Validate",
            "fields": [
              "inputs",
              "concrete",
              "schema"
            ],
            "required": [
              "inputs"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "inputs",
              "concrete",
              "schema"
            ]
          }
        ]
      },
      {
        "path": [
          "fmt"
        ],
        "label": "Format CUE files",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://cuelang.org/docs/reference/command/cue-help-fmt/",
            "revision": "2026-10-27",
            "evidence": "cue fmt [flags] [inputs]\n      --check   exits with non-zero status if any files are not formatted\n  -d, --diff    display diffs instead of rewriting files\n      --files   treat arguments as paths to files or directories to recursively format\n"
          }
        ],
        "field": [
          {
            "id": "inputs",
            "label": "Inputs",
            "description": "Packages, CUE files or data files; empty means the current package.",
            "type": "path",
            "position": 0,
            "multiple": true,
            "min": 0,
            "path": {
              "kind": "any",
              "role": "input"
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "check",
            "label": "Check only",
            "description": "Exit non-zero if any file is not formatted.",
            "type": "boolean",
            "option": [
              "--check"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "diff",
            "label": "Show diffs instead of rewriting",
            "type": "boolean",
            "option": [
              "--diff",
              "-d"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "files",
            "label": "Treat arguments as paths",
            "description": "Recursively format the given files or directories.",
            "type": "boolean",
            "option": [
              "--files"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "format",
            "label": "Format in place",
            "fields": [
              "inputs",
              "files"
            ],
            "required": []
          },
          {
            "id": "preview",
            "label": "Preview changes",
            "fields": [
              "inputs",
              "diff",
              "files"
            ],
            "required": [],
            "set": {
              "diff": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "inputs",
              "check",
              "diff",
              "files"
            ]
          }
        ]
      }
    ]
  }
}
