{
  "id": "faas-cli",
  "name": "faas-cli",
  "homepage": "https://github.com/openfaas/faas-cli",
  "executables": [
    "faas-cli"
  ],
  "dotfiles": {
    "paths": [],
    "exclude": [],
    "secret": [
      "~/.openfaas/config.yml"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Work with OpenFaaS functions",
    "description": "Scaffold, build, deploy and invoke OpenFaaS functions. Registry login, secrets, templates and store commands are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "source": [
      {
        "id": "help",
        "kind": "help",
        "url": "https://github.com/openfaas/faas-cli",
        "revision": "master 2026-10-27",
        "evidence": "(Rendered from the cobra flag definitions in commands/*.go of openfaas/faas-cli)\nfaas-cli new FUNCTION_NAME --lang=FUNCTION_LANGUAGE [--gateway=http://host:port] | --list | --append=STACK_FILE)\n      --lang string           Language or template to use\n  -g, --gateway string        Gateway URL to store in YAML stack file\n  -p, --prefix string         Set prefix for the function image\n      --list                  List available languages\n  -a, --append string         Append to existing YAML file\n  -q, --quiet                 Skip template notes\nfaas-cli up -f [YAML_FILE] [--skip-push] [--skip-deploy] [flags from build, push, deploy]\nBuilds, pushes and deploys OpenFaaS function containers\n  -f, --yaml string           Path to YAML file describing function(s)\n      --filter string         Wildcard to match with function names in YAML file\n      --publish               Use faas-cli publish instead of faas-cli build followed by faas-cli push\n      --platforms string      Publish for these platforms, when used with --publish\n      --skip-push             Skip pushing function to remote registry\n      --skip-deploy           Skip function deployment\n      --watch                 Watch for changes in files and re-deploy\nfaas-cli deploy\n  -g, --gateway string        Gateway URL starting with http(s)://\n      --image string          Docker image name to build\n      --name string           Name of the deployed function\n  -n, --namespace string      Namespace of the function\n  -e, --env stringArray       Set one or more environment variables (ENVVAR=VALUE)\n  -l, --label stringArray     Set one or more label (LABEL=VALUE)\n      --replace               Remove and re-create existing function(s)\n      --secret stringArray    Give the function access to a secure secret\n      --tls-no-verify         Disable TLS validation\nfaas-cli invoke FUNCTION_NAME [--gateway GATEWAY_URL] [--content-type CONTENT_TYPE] [--query KEY=VALUE] [--header \"KEY: VALUE\"] [--method HTTP_METHOD]\nInvoke an OpenFaaS function\n      --content-type string   The content-type HTTP header such as application/json\n  -H, --header stringArray    pass HTTP request header\n      --query stringArray     pass query-string options\n  -a, --async                 Invoke the function asynchronously\n  -m, --method string         pass HTTP request method\n"
      }
    ],
    "subcommand": [
      {
        "path": [
          "new"
        ],
        "label": "Create a function",
        "description": "Scaffold a new function from a template in the current folder.",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://github.com/openfaas/faas-cli",
            "revision": "master 2026-10-27",
            "evidence": "(Rendered from the cobra flag definitions in commands/*.go of openfaas/faas-cli)\nfaas-cli new FUNCTION_NAME --lang=FUNCTION_LANGUAGE [--gateway=http://host:port] | --list | --append=STACK_FILE)\n      --lang string           Language or template to use\n  -g, --gateway string        Gateway URL to store in YAML stack file\n  -p, --prefix string         Set prefix for the function image\n      --list                  List available languages\n  -a, --append string         Append to existing YAML file\n  -q, --quiet                 Skip template notes\nfaas-cli up -f [YAML_FILE] [--skip-push] [--skip-deploy] [flags from build, push, deploy]\nBuilds, pushes and deploys OpenFaaS function containers\n  -f, --yaml string           Path to YAML file describing function(s)\n      --filter string         Wildcard to match with function names in YAML file\n      --publish               Use faas-cli publish instead of faas-cli build followed by faas-cli push\n      --platforms string      Publish for these platforms, when used with --publish\n      --skip-push             Skip pushing function to remote registry\n      --skip-deploy           Skip function deployment\n      --watch                 Watch for changes in files and re-deploy\nfaas-cli deploy\n  -g, --gateway string        Gateway URL starting with http(s)://\n      --image string          Docker image name to build\n      --name string           Name of the deployed function\n  -n, --namespace string      Namespace of the function\n  -e, --env stringArray       Set one or more environment variables (ENVVAR=VALUE)\n  -l, --label stringArray     Set one or more label (LABEL=VALUE)\n      --replace               Remove and re-create existing function(s)\n      --secret stringArray    Give the function access to a secure secret\n      --tls-no-verify         Disable TLS validation\nfaas-cli invoke FUNCTION_NAME [--gateway GATEWAY_URL] [--content-type CONTENT_TYPE] [--query KEY=VALUE] [--header \"KEY: VALUE\"] [--method HTTP_METHOD]\nInvoke an OpenFaaS function\n      --content-type string   The content-type HTTP header such as application/json\n  -H, --header stringArray    pass HTTP request header\n      --query stringArray     pass query-string options\n  -a, --async                 Invoke the function asynchronously\n  -m, --method string         pass HTTP request method\n"
          }
        ],
        "field": [
          {
            "id": "name",
            "label": "Function name",
            "type": "string",
            "position": 0,
            "min": 1,
            "sources": [
              "help"
            ]
          },
          {
            "id": "lang",
            "label": "Language / template",
            "type": "string",
            "option": [
              "--lang"
            ],
            "suggestions": [
              {
                "value": "node20",
                "label": "Node.js 20"
              },
              {
                "value": "python3-http",
                "label": "Python 3 (HTTP)"
              },
              {
                "value": "golang-middleware",
                "label": "Go (middleware)"
              }
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "prefix",
            "label": "Image prefix",
            "description": "Registry or user prefix for the function image, for example ghcr.io/user.",
            "type": "string",
            "option": [
              "--prefix",
              "-p"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "gateway",
            "label": "Gateway URL",
            "description": "Gateway URL starting with http(s)://. Defaults to the OPENFAAS_URL or http://127.0.0.1:8080.",
            "type": "url",
            "option": [
              "--gateway",
              "-g"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "list",
            "label": "List available languages",
            "type": "boolean",
            "option": [
              "--list"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "append",
            "label": "Append to stack file",
            "type": "path",
            "option": [
              "--append",
              "-a"
            ],
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "quiet",
            "label": "Skip template notes",
            "type": "boolean",
            "option": [
              "--quiet",
              "-q"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "new",
            "label": "New function",
            "fields": [
              "name",
              "lang",
              "prefix"
            ],
            "required": [
              "name",
              "lang"
            ]
          },
          {
            "id": "list",
            "label": "List languages",
            "fields": [
              "list"
            ],
            "set": {
              "list": [
                true
              ]
            },
            "lock": [
              "list"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "name",
              "lang",
              "prefix",
              "list"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "gateway",
              "append",
              "quiet"
            ]
          }
        ]
      },
      {
        "path": [
          "up"
        ],
        "label": "Build, push and deploy",
        "description": "Run build, push and deploy for the functions in a stack file.",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://github.com/openfaas/faas-cli",
            "revision": "master 2026-10-27",
            "evidence": "(Rendered from the cobra flag definitions in commands/*.go of openfaas/faas-cli)\nfaas-cli new FUNCTION_NAME --lang=FUNCTION_LANGUAGE [--gateway=http://host:port] | --list | --append=STACK_FILE)\n      --lang string           Language or template to use\n  -g, --gateway string        Gateway URL to store in YAML stack file\n  -p, --prefix string         Set prefix for the function image\n      --list                  List available languages\n  -a, --append string         Append to existing YAML file\n  -q, --quiet                 Skip template notes\nfaas-cli up -f [YAML_FILE] [--skip-push] [--skip-deploy] [flags from build, push, deploy]\nBuilds, pushes and deploys OpenFaaS function containers\n  -f, --yaml string           Path to YAML file describing function(s)\n      --filter string         Wildcard to match with function names in YAML file\n      --publish               Use faas-cli publish instead of faas-cli build followed by faas-cli push\n      --platforms string      Publish for these platforms, when used with --publish\n      --skip-push             Skip pushing function to remote registry\n      --skip-deploy           Skip function deployment\n      --watch                 Watch for changes in files and re-deploy\nfaas-cli deploy\n  -g, --gateway string        Gateway URL starting with http(s)://\n      --image string          Docker image name to build\n      --name string           Name of the deployed function\n  -n, --namespace string      Namespace of the function\n  -e, --env stringArray       Set one or more environment variables (ENVVAR=VALUE)\n  -l, --label stringArray     Set one or more label (LABEL=VALUE)\n      --replace               Remove and re-create existing function(s)\n      --secret stringArray    Give the function access to a secure secret\n      --tls-no-verify         Disable TLS validation\nfaas-cli invoke FUNCTION_NAME [--gateway GATEWAY_URL] [--content-type CONTENT_TYPE] [--query KEY=VALUE] [--header \"KEY: VALUE\"] [--method HTTP_METHOD]\nInvoke an OpenFaaS function\n      --content-type string   The content-type HTTP header such as application/json\n  -H, --header stringArray    pass HTTP request header\n      --query stringArray     pass query-string options\n  -a, --async                 Invoke the function asynchronously\n  -m, --method string         pass HTTP request method\n"
          }
        ],
        "field": [
          {
            "id": "yaml",
            "label": "Stack file",
            "type": "path",
            "option": [
              "--yaml",
              "-f"
            ],
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "filter",
            "label": "Function name filter",
            "description": "Wildcard to match function names in the stack file.",
            "type": "string",
            "option": [
              "--filter"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "publish",
            "label": "Multi-arch publish",
            "type": "boolean",
            "option": [
              "--publish"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "platforms",
            "label": "Platforms",
            "description": "Used with publish.",
            "type": "string",
            "option": [
              "--platforms"
            ],
            "suggestions": [
              {
                "value": "linux/amd64",
                "label": "linux/amd64"
              },
              {
                "value": "linux/arm64",
                "label": "linux/arm64"
              },
              {
                "value": "linux/amd64,linux/arm64",
                "label": "amd64 + arm64"
              }
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "skip_push",
            "label": "Skip push",
            "type": "boolean",
            "option": [
              "--skip-push"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "skip_deploy",
            "label": "Skip deploy",
            "type": "boolean",
            "option": [
              "--skip-deploy"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "watch",
            "label": "Watch and redeploy",
            "type": "boolean",
            "option": [
              "--watch"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "up",
            "label": "Build, push, deploy",
            "fields": [
              "yaml",
              "filter"
            ]
          },
          {
            "id": "local",
            "label": "Build and deploy locally",
            "fields": [
              "yaml",
              "skip_push"
            ],
            "set": {
              "skip_push": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "yaml",
              "filter",
              "skip_push",
              "skip_deploy"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "publish",
              "platforms",
              "watch"
            ]
          }
        ]
      },
      {
        "path": [
          "deploy"
        ],
        "label": "Deploy functions",
        "description": "Deploy functions from a stack file or an existing image.",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://github.com/openfaas/faas-cli",
            "revision": "master 2026-10-27",
            "evidence": "(Rendered from the cobra flag definitions in commands/*.go of openfaas/faas-cli)\nfaas-cli new FUNCTION_NAME --lang=FUNCTION_LANGUAGE [--gateway=http://host:port] | --list | --append=STACK_FILE)\n      --lang string           Language or template to use\n  -g, --gateway string        Gateway URL to store in YAML stack file\n  -p, --prefix string         Set prefix for the function image\n      --list                  List available languages\n  -a, --append string         Append to existing YAML file\n  -q, --quiet                 Skip template notes\nfaas-cli up -f [YAML_FILE] [--skip-push] [--skip-deploy] [flags from build, push, deploy]\nBuilds, pushes and deploys OpenFaaS function containers\n  -f, --yaml string           Path to YAML file describing function(s)\n      --filter string         Wildcard to match with function names in YAML file\n      --publish               Use faas-cli publish instead of faas-cli build followed by faas-cli push\n      --platforms string      Publish for these platforms, when used with --publish\n      --skip-push             Skip pushing function to remote registry\n      --skip-deploy           Skip function deployment\n      --watch                 Watch for changes in files and re-deploy\nfaas-cli deploy\n  -g, --gateway string        Gateway URL starting with http(s)://\n      --image string          Docker image name to build\n      --name string           Name of the deployed function\n  -n, --namespace string      Namespace of the function\n  -e, --env stringArray       Set one or more environment variables (ENVVAR=VALUE)\n  -l, --label stringArray     Set one or more label (LABEL=VALUE)\n      --replace               Remove and re-create existing function(s)\n      --secret stringArray    Give the function access to a secure secret\n      --tls-no-verify         Disable TLS validation\nfaas-cli invoke FUNCTION_NAME [--gateway GATEWAY_URL] [--content-type CONTENT_TYPE] [--query KEY=VALUE] [--header \"KEY: VALUE\"] [--method HTTP_METHOD]\nInvoke an OpenFaaS function\n      --content-type string   The content-type HTTP header such as application/json\n  -H, --header stringArray    pass HTTP request header\n      --query stringArray     pass query-string options\n  -a, --async                 Invoke the function asynchronously\n  -m, --method string         pass HTTP request method\n"
          }
        ],
        "field": [
          {
            "id": "yaml",
            "label": "Stack file",
            "type": "path",
            "option": [
              "--yaml",
              "-f"
            ],
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "gateway",
            "label": "Gateway URL",
            "description": "Gateway URL starting with http(s)://. Defaults to the OPENFAAS_URL or http://127.0.0.1:8080.",
            "type": "url",
            "option": [
              "--gateway",
              "-g"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "namespace",
            "label": "Namespace",
            "type": "string",
            "option": [
              "--namespace",
              "-n"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "image",
            "label": "Image",
            "description": "Docker image to deploy (when not using a stack file).",
            "type": "string",
            "option": [
              "--image"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "name",
            "label": "Function name",
            "type": "string",
            "option": [
              "--name"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "env",
            "label": "Environment variables",
            "description": "ENVVAR=VALUE, repeatable.",
            "type": "string",
            "option": [
              "--env",
              "-e"
            ],
            "multiple": true,
            "sources": [
              "help"
            ]
          },
          {
            "id": "label",
            "label": "Labels",
            "description": "LABEL=VALUE, repeatable.",
            "type": "string",
            "option": [
              "--label",
              "-l"
            ],
            "multiple": true,
            "sources": [
              "help"
            ]
          },
          {
            "id": "secret",
            "label": "Secrets",
            "type": "string",
            "option": [
              "--secret"
            ],
            "multiple": true,
            "sources": [
              "help"
            ]
          },
          {
            "id": "replace",
            "label": "Replace existing function",
            "type": "boolean",
            "option": [
              "--replace"
            ],
            "effect": "overwrite",
            "sources": [
              "help"
            ]
          },
          {
            "id": "tls_no_verify",
            "label": "Skip TLS verification",
            "type": "boolean",
            "option": [
              "--tls-no-verify"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "stack",
            "label": "Deploy from stack file",
            "fields": [
              "yaml",
              "gateway",
              "namespace"
            ],
            "required": [
              "yaml"
            ]
          },
          {
            "id": "image",
            "label": "Deploy an image",
            "fields": [
              "image",
              "name",
              "gateway",
              "env",
              "secret"
            ],
            "required": [
              "image",
              "name"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "yaml",
              "gateway",
              "namespace",
              "image",
              "name"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "env",
              "label",
              "secret",
              "replace",
              "tls_no_verify"
            ]
          }
        ]
      },
      {
        "path": [
          "invoke"
        ],
        "label": "Invoke a function",
        "description": "Call a deployed function; the request body is read from standard input.",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://github.com/openfaas/faas-cli",
            "revision": "master 2026-10-27",
            "evidence": "(Rendered from the cobra flag definitions in commands/*.go of openfaas/faas-cli)\nfaas-cli new FUNCTION_NAME --lang=FUNCTION_LANGUAGE [--gateway=http://host:port] | --list | --append=STACK_FILE)\n      --lang string           Language or template to use\n  -g, --gateway string        Gateway URL to store in YAML stack file\n  -p, --prefix string         Set prefix for the function image\n      --list                  List available languages\n  -a, --append string         Append to existing YAML file\n  -q, --quiet                 Skip template notes\nfaas-cli up -f [YAML_FILE] [--skip-push] [--skip-deploy] [flags from build, push, deploy]\nBuilds, pushes and deploys OpenFaaS function containers\n  -f, --yaml string           Path to YAML file describing function(s)\n      --filter string         Wildcard to match with function names in YAML file\n      --publish               Use faas-cli publish instead of faas-cli build followed by faas-cli push\n      --platforms string      Publish for these platforms, when used with --publish\n      --skip-push             Skip pushing function to remote registry\n      --skip-deploy           Skip function deployment\n      --watch                 Watch for changes in files and re-deploy\nfaas-cli deploy\n  -g, --gateway string        Gateway URL starting with http(s)://\n      --image string          Docker image name to build\n      --name string           Name of the deployed function\n  -n, --namespace string      Namespace of the function\n  -e, --env stringArray       Set one or more environment variables (ENVVAR=VALUE)\n  -l, --label stringArray     Set one or more label (LABEL=VALUE)\n      --replace               Remove and re-create existing function(s)\n      --secret stringArray    Give the function access to a secure secret\n      --tls-no-verify         Disable TLS validation\nfaas-cli invoke FUNCTION_NAME [--gateway GATEWAY_URL] [--content-type CONTENT_TYPE] [--query KEY=VALUE] [--header \"KEY: VALUE\"] [--method HTTP_METHOD]\nInvoke an OpenFaaS function\n      --content-type string   The content-type HTTP header such as application/json\n  -H, --header stringArray    pass HTTP request header\n      --query stringArray     pass query-string options\n  -a, --async                 Invoke the function asynchronously\n  -m, --method string         pass HTTP request method\n"
          }
        ],
        "field": [
          {
            "id": "function",
            "label": "Function name",
            "type": "string",
            "position": 0,
            "min": 1,
            "sources": [
              "help"
            ]
          },
          {
            "id": "gateway",
            "label": "Gateway URL",
            "description": "Gateway URL starting with http(s)://. Defaults to the OPENFAAS_URL or http://127.0.0.1:8080.",
            "type": "url",
            "option": [
              "--gateway",
              "-g"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "content_type",
            "label": "Content type",
            "type": "string",
            "option": [
              "--content-type"
            ],
            "suggestions": [
              {
                "value": "application/json",
                "label": "JSON"
              },
              {
                "value": "text/plain",
                "label": "Plain text"
              }
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "header",
            "label": "Headers",
            "description": "\"KEY: VALUE\", repeatable.",
            "type": "string",
            "option": [
              "--header",
              "-H"
            ],
            "multiple": true,
            "sources": [
              "help"
            ]
          },
          {
            "id": "query",
            "label": "Query parameters",
            "description": "KEY=VALUE, repeatable.",
            "type": "string",
            "option": [
              "--query"
            ],
            "multiple": true,
            "sources": [
              "help"
            ]
          },
          {
            "id": "method",
            "label": "HTTP method",
            "type": "string",
            "option": [
              "--method",
              "-m"
            ],
            "suggestions": [
              {
                "value": "POST",
                "label": "POST"
              },
              {
                "value": "GET",
                "label": "GET"
              }
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "async",
            "label": "Asynchronous",
            "type": "boolean",
            "option": [
              "--async",
              "-a"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "invoke",
            "label": "Invoke",
            "fields": [
              "function",
              "gateway",
              "content_type",
              "header"
            ],
            "required": [
              "function"
            ]
          },
          {
            "id": "get",
            "label": "GET with query",
            "fields": [
              "function",
              "method",
              "query"
            ],
            "required": [
              "function"
            ],
            "set": {
              "method": [
                "GET"
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "function",
              "gateway",
              "content_type",
              "method"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "header",
              "query",
              "async"
            ]
          }
        ]
      }
    ]
  }
}
