{
  "id": "earthly",
  "name": "Earthly",
  "homepage": "https://earthly.dev/",
  "description": "Super simple build framework with fast, repeatable builds and an instantly familiar syntax – like Dockerfile and Makefile had a baby.",
  "executables": [
    "earthly"
  ],
  "dotfiles": {
    "paths": [
      "~/.earthly/config.yml",
      "~/.earthly-dev/config.yml"
    ],
    "secret": [],
    "secret_paths": [
      {
        "file": [
          "~/.earthly/config.yml",
          "~/.earthly-dev/config.yml"
        ],
        "match": {
          "key_path": [
            "git.*.password"
          ]
        }
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "Run an Earthly target",
    "description": "Execute a build target from an Earthfile (target form). The artifact and image forms, account, org, secrets, satellite and other subcommands are not covered.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "reference",
        "kind": "manual",
        "url": "https://docs.earthly.dev/docs/earthly-command",
        "revision": "2026-10-27",
        "evidence": "  earthly [options...] <target-ref> [build-args...]\n##### `--secret|-s <secret-id>[=<value>]`\n##### `--secret-file <secret-id>=<path>`\n##### `--push`\n##### `--no-output`\n##### `--no-cache`\n##### `--allow-privileged|-P`\n##### `--ci`\n##### `--platform <platform>`\n##### `--interactive|-i`\n##### `--strict`\n##### `--verbose`\n##### `--config <path>`\n"
      }
    ],
    "field": [
      {
        "id": "target",
        "label": "Target",
        "description": "Target reference such as +build, ./dir+build or github.com/org/repo+build.",
        "type": "string",
        "position": 0,
        "min": 1,
        "sources": [
          "reference"
        ]
      },
      {
        "id": "build_args",
        "label": "Build args",
        "description": "Passed after the target, for example --VERSION=1.2.3.",
        "type": "string",
        "position": 1,
        "multiple": true,
        "sources": [
          "reference"
        ]
      },
      {
        "id": "push",
        "label": "Push images and run RUN --push",
        "type": "boolean",
        "option": [
          "--push"
        ],
        "effect": "exec",
        "sources": [
          "reference"
        ]
      },
      {
        "id": "no_output",
        "label": "No output",
        "description": "Do not output any images or artifacts.",
        "type": "boolean",
        "option": [
          "--no-output"
        ],
        "sources": [
          "reference"
        ]
      },
      {
        "id": "no_cache",
        "label": "Ignore cache",
        "type": "boolean",
        "option": [
          "--no-cache"
        ],
        "sources": [
          "reference"
        ]
      },
      {
        "id": "ci",
        "label": "CI mode",
        "description": "Alias for --no-output --strict.",
        "type": "boolean",
        "option": [
          "--ci"
        ],
        "sources": [
          "reference"
        ]
      },
      {
        "id": "strict",
        "label": "Strict",
        "description": "Disallow features that may create unrepeatable builds.",
        "type": "boolean",
        "option": [
          "--strict"
        ],
        "sources": [
          "reference"
        ]
      },
      {
        "id": "platform",
        "label": "Platform",
        "type": "string",
        "option": [
          "--platform"
        ],
        "suggestions": [
          {
            "value": "linux/amd64",
            "label": "linux/amd64"
          },
          {
            "value": "linux/arm64",
            "label": "linux/arm64"
          },
          {
            "value": "linux/arm/v7",
            "label": "linux/arm/v7"
          }
        ],
        "sources": [
          "reference"
        ]
      },
      {
        "id": "secret",
        "label": "Secret",
        "description": "Form secret-id=value, or just secret-id to read it from the environment.",
        "type": "string",
        "option": [
          "--secret",
          "-s"
        ],
        "multiple": true,
        "sources": [
          "reference"
        ]
      },
      {
        "id": "secret_file",
        "label": "Secret from file",
        "description": "Form secret-id=path.",
        "type": "string",
        "option": [
          "--secret-file"
        ],
        "multiple": true,
        "sources": [
          "reference"
        ]
      },
      {
        "id": "allow_privileged",
        "label": "Allow privileged RUN",
        "type": "boolean",
        "option": [
          "--allow-privileged",
          "-P"
        ],
        "effect": "exec",
        "sources": [
          "reference"
        ]
      },
      {
        "id": "interactive",
        "label": "Interactive debugging",
        "description": "Drop into a shell when a RUN command fails.",
        "type": "boolean",
        "option": [
          "--interactive",
          "-i"
        ],
        "sources": [
          "reference"
        ]
      },
      {
        "id": "verbose",
        "label": "Verbose logging",
        "type": "boolean",
        "option": [
          "--verbose"
        ],
        "sources": [
          "reference"
        ]
      }
    ],
    "task": [
      {
        "id": "build",
        "label": "Build a target",
        "fields": [
          "target",
          "build_args"
        ],
        "required": [
          "target"
        ]
      },
      {
        "id": "ci",
        "label": "Build in CI mode",
        "fields": [
          "target",
          "ci",
          "build_args"
        ],
        "required": [
          "target",
          "ci"
        ],
        "set": {
          "ci": [
            true
          ]
        }
      },
      {
        "id": "debug",
        "label": "Build with interactive debugging",
        "fields": [
          "target",
          "interactive",
          "build_args"
        ],
        "required": [
          "target",
          "interactive"
        ],
        "set": {
          "interactive": [
            true
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "target",
          "build_args",
          "push",
          "no_output",
          "no_cache",
          "platform"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "ci",
          "strict",
          "secret",
          "secret_file",
          "allow_privileged",
          "interactive",
          "verbose"
        ]
      }
    ]
  }
}
