{
  "id": "azion",
  "name": "Azion CLI",
  "homepage": "https://www.azion.com/en/documentation/devtools/cli/",
  "description": "CLI for the Azion service",
  "executables": [
    "azion"
  ],
  "dotfiles": {
    "paths": [],
    "secret": [
      "~/.azion/settings.toml",
      "~/.azion/*/credentials.toml"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Azion CLI",
    "description": "Create, build and deploy an Azion project and read function logs. Login, profiles, dev server, sync and the other commands are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "init"
        ],
        "label": "Create a project",
        "source": [
          {
            "id": "doc",
            "kind": "manual",
            "url": "https://www.azion.com/en/documentation/devtools/cli/init/",
            "revision": "2026-10-27",
            "evidence": "azion init [flags]\n--auto———Skips the questions about a local development server and a deploy at the end of the command.\n--local———Runs the build and the deploy on your machine when you deploy the project from this command.\n--name—string—Name of the application. The command creates the project in a folder with this name. Without it, the command asks for the name.\n--package-manager—string—Package manager that installs the project dependencies, such as npm, yarn, or pnpm.\n--skip-framework-build———Skips the framework build that runs before azion build.\nazion init --name my-app\n"
          }
        ],
        "field": [
          {
            "id": "name",
            "label": "Application name",
            "description": "Creates the project in a folder with this name.",
            "type": "string",
            "option": [
              "--name"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "package_manager",
            "label": "Package manager",
            "type": "string",
            "option": [
              "--package-manager"
            ],
            "suggestions": [
              {
                "value": "npm",
                "label": "npm"
              },
              {
                "value": "yarn",
                "label": "Yarn"
              },
              {
                "value": "pnpm",
                "label": "pnpm"
              }
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "auto",
            "label": "Skip the final questions",
            "type": "boolean",
            "option": [
              "--auto"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "local",
            "label": "Build and deploy locally",
            "type": "boolean",
            "option": [
              "--local"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "skip_framework_build",
            "label": "Skip the framework build",
            "type": "boolean",
            "option": [
              "--skip-framework-build"
            ],
            "sources": [
              "doc"
            ]
          }
        ],
        "task": [
          {
            "id": "new",
            "label": "New project",
            "fields": [
              "name",
              "package_manager",
              "auto"
            ],
            "required": [
              "name"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "name",
              "package_manager",
              "auto"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "local",
              "skip_framework_build"
            ]
          }
        ]
      },
      {
        "path": [
          "build"
        ],
        "label": "Build the project",
        "source": [
          {
            "id": "doc",
            "kind": "manual",
            "url": "https://www.azion.com/en/documentation/devtools/cli/build/",
            "revision": "2026-10-27",
            "evidence": "azion build [flags]\n--config-dir—string\"azion\"Relative path to the folder that holds your azion.json and args.json files.\n--config-file—string—Path to the azion.config file to build with, such as azion.staging.config.cjs.\n--entry—string./main.jsCode entry point of the build.\n--preset—string—Preset to build the project with, when you want a preset other than the project's own.\n--skip-framework-build———Skips the framework build that runs before the Azion build.\n"
          }
        ],
        "field": [
          {
            "id": "config_file",
            "label": "azion.config file",
            "type": "path",
            "option": [
              "--config-file"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "doc"
            ]
          },
          {
            "id": "config_dir",
            "label": "Config folder",
            "description": "Folder holding azion.json and args.json. Default azion.",
            "type": "path",
            "option": [
              "--config-dir"
            ],
            "path": {
              "kind": "directory",
              "role": "input"
            },
            "sources": [
              "doc"
            ]
          },
          {
            "id": "entry",
            "label": "Code entry point",
            "description": "Default ./main.js.",
            "type": "string",
            "option": [
              "--entry"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "preset",
            "label": "Preset",
            "description": "Names are the ones azion list presets prints.",
            "type": "string",
            "option": [
              "--preset"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "skip_framework_build",
            "label": "Skip the framework build",
            "type": "boolean",
            "option": [
              "--skip-framework-build"
            ],
            "sources": [
              "doc"
            ]
          }
        ],
        "task": [
          {
            "id": "build",
            "label": "Build",
            "fields": [
              "config_file",
              "preset",
              "skip_framework_build"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "config_file",
              "preset",
              "skip_framework_build"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "config_dir",
              "entry"
            ]
          }
        ]
      },
      {
        "path": [
          "deploy"
        ],
        "label": "Deploy the project",
        "source": [
          {
            "id": "doc",
            "kind": "manual",
            "url": "https://www.azion.com/en/documentation/devtools/cli/deploy/",
            "revision": "2026-10-27",
            "evidence": "azion deploy [flags]\n--auto———Runs the whole command without stopping for a question.\n--config-dir—string\"azion\"Relative path to the folder that holds your azion.json and args.json files.\n--config-file—string—Path to the azion.config file to deploy with, such as azion.staging.config.cjs.\n--dry-run———Lists the steps the deploy would run, without running them.\n--env—string\".edge/.env\"Relative path to your .env file.\n--local———Runs the build and the deploy on your machine instead of on Azion.\n--no-prompt———Returns the error instead of asking a question when a step fails.\n--path—string—Path to the folder that holds your static files.\n--skip-build———Deploys without running the build first.\n--skip-framework-build———Skips the framework build that runs before azion build.\n--sync———Synchronizes the local azion.json file with the remote resources.\n--workers—intauto-calculated based on CPU cores, max 20Number of upload workers that send files at the same time.\nazion deploy --local --dry-run\n"
          }
        ],
        "field": [
          {
            "id": "path",
            "label": "Static files folder",
            "type": "path",
            "option": [
              "--path"
            ],
            "path": {
              "kind": "directory",
              "role": "input"
            },
            "sources": [
              "doc"
            ]
          },
          {
            "id": "local",
            "label": "Build and deploy locally",
            "type": "boolean",
            "option": [
              "--local"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "dry_run",
            "label": "Dry run",
            "description": "List the steps without running them.",
            "type": "boolean",
            "option": [
              "--dry-run"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "auto",
            "label": "Do not ask questions",
            "type": "boolean",
            "option": [
              "--auto"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "no_prompt",
            "label": "Fail instead of prompting",
            "type": "boolean",
            "option": [
              "--no-prompt"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "skip_build",
            "label": "Skip the build",
            "type": "boolean",
            "option": [
              "--skip-build"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "skip_framework_build",
            "label": "Skip the framework build",
            "type": "boolean",
            "option": [
              "--skip-framework-build"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "sync",
            "label": "Sync azion.json with remote",
            "type": "boolean",
            "option": [
              "--sync"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "env",
            "label": ".env file",
            "description": "Default .edge/.env.",
            "type": "path",
            "option": [
              "--env"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "doc"
            ]
          },
          {
            "id": "config_file",
            "label": "azion.config file",
            "type": "path",
            "option": [
              "--config-file"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "doc"
            ]
          },
          {
            "id": "workers",
            "label": "Upload workers",
            "type": "integer",
            "option": [
              "--workers"
            ],
            "sources": [
              "doc"
            ]
          }
        ],
        "task": [
          {
            "id": "deploy",
            "label": "Deploy",
            "fields": [
              "auto",
              "local",
              "sync"
            ],
            "required": []
          },
          {
            "id": "dry",
            "label": "Preview a local deploy",
            "set": {
              "local": [
                true
              ],
              "dry_run": [
                true
              ]
            },
            "fields": [
              "local",
              "dry_run"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "local",
              "dry_run",
              "auto",
              "sync",
              "path"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "no_prompt",
              "skip_build",
              "skip_framework_build",
              "env",
              "config_file",
              "workers"
            ]
          }
        ]
      },
      {
        "path": [
          "logs",
          "cells"
        ],
        "label": "Function logs",
        "source": [
          {
            "id": "doc",
            "kind": "manual",
            "url": "https://www.azion.com/en/documentation/devtools/cli/logs/",
            "revision": "2026-10-27",
            "evidence": "azion logs cells [flags]\n--function-id—string—ID of the function whose logs you want. Without it, the command shows the logs of every function.\n--limit—string\"100\"Number of log entries the command shows at a time.\n--pretty———Prints the logs in a formatted layout.\n--tail———Keeps the command running and prints logs as they arrive, like tail -f.\n"
          }
        ],
        "field": [
          {
            "id": "function_id",
            "label": "Function ID",
            "description": "Without it, shows logs of every function.",
            "type": "string",
            "option": [
              "--function-id"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "limit",
            "label": "Entries at a time",
            "type": "string",
            "option": [
              "--limit"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "pretty",
            "label": "Formatted layout",
            "type": "boolean",
            "option": [
              "--pretty"
            ],
            "sources": [
              "doc"
            ]
          },
          {
            "id": "tail",
            "label": "Follow",
            "type": "boolean",
            "option": [
              "--tail"
            ],
            "sources": [
              "doc"
            ]
          }
        ],
        "task": [
          {
            "id": "follow",
            "label": "Follow function logs",
            "set": {
              "tail": [
                true
              ],
              "pretty": [
                true
              ]
            },
            "fields": [
              "function_id",
              "tail",
              "pretty"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "function_id",
              "limit",
              "pretty",
              "tail"
            ]
          }
        ]
      }
    ]
  }
}
