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