{
  "id": "terramate",
  "name": "Terramate",
  "homepage": "https://terramate.io/docs/cli/reference/configuration/",
  "description": "An infrastructure-as-code orchestration and code-generation CLI.",
  "executables": [
    "terramate"
  ],
  "dotfiles": {
    "paths": [
      "~/.terramaterc",
      "%APPDATA%/terramate.rc"
    ],
    "secret": [
      "~/.terramate.d/credentials.tmrc.json",
      "%APPDATA%/.terramate.d/credentials.tmrc.json"
    ],
    "side_effect": false,
    "machine_lines": [
      {
        "file": [
          "~/.terramaterc",
          "%APPDATA%/terramate.rc"
        ],
        "match": {
          "prefix": [
            "user_terramate_dir"
          ]
        },
        "scope": "backup"
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "Terramate",
    "description": "Run a command in Terramate stacks, or list stacks. Terramate Cloud sync options, dependency selection and target options are not covered.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "run"
        ],
        "label": "Run a command in stacks",
        "description": "Execute a command in each selected stack. The command goes after --; use Dry run to only plan the execution.",
        "source": [
          {
            "id": "run-docs",
            "kind": "manual",
            "url": "https://terramate.io/docs/cli/cmdline/run",
            "revision": "2026-10-27",
            "evidence": "terramate run terraform apply\nterramate run --changed --parallel 5 --\n--continue-on-error\nDo not stop execution when an error occurs.\n--dry-run\nPlan the execution but do not execute it.\n--reverse\nReverse the order of execution.\n--parallel <n>, -j <n>\nRun independent stacks in parallel.\n--changed, -c\n--tags <tags>\n--no-tags <tags>\n"
          }
        ],
        "field": [
          {
            "id": "command",
            "label": "Command and arguments",
            "description": "The command to run in each stack, for example terraform plan.",
            "type": "string",
            "position": 0,
            "multiple": true,
            "sources": [
              "run-docs"
            ]
          },
          {
            "id": "changed",
            "label": "Only changed stacks",
            "type": "boolean",
            "option": [
              "--changed",
              "-c"
            ],
            "sources": [
              "run-docs"
            ]
          },
          {
            "id": "parallel",
            "label": "Parallel stacks",
            "type": "integer",
            "option": [
              "--parallel",
              "-j"
            ],
            "sources": [
              "run-docs"
            ]
          },
          {
            "id": "dry_run",
            "label": "Dry run",
            "description": "Plan the execution but do not execute it.",
            "type": "boolean",
            "option": [
              "--dry-run"
            ],
            "sources": [
              "run-docs"
            ]
          },
          {
            "id": "continue_on_error",
            "label": "Continue on error",
            "type": "boolean",
            "option": [
              "--continue-on-error"
            ],
            "sources": [
              "run-docs"
            ]
          },
          {
            "id": "reverse",
            "label": "Reverse order",
            "type": "boolean",
            "option": [
              "--reverse"
            ],
            "sources": [
              "run-docs"
            ]
          },
          {
            "id": "tags",
            "label": "Tags filter",
            "type": "string",
            "option": [
              "--tags"
            ],
            "sources": [
              "run-docs"
            ]
          },
          {
            "id": "no_tags",
            "label": "Exclude tags",
            "type": "string",
            "option": [
              "--no-tags"
            ],
            "sources": [
              "run-docs"
            ]
          }
        ],
        "task": [
          {
            "id": "changed_run",
            "label": "Run in changed stacks",
            "fields": [
              "command",
              "changed",
              "parallel",
              "continue_on_error"
            ],
            "required": [
              "command"
            ],
            "set": {
              "changed": [
                true
              ]
            }
          },
          {
            "id": "dry_run_all",
            "label": "Dry run in all stacks",
            "fields": [
              "command",
              "dry_run",
              "tags"
            ],
            "required": [
              "command"
            ],
            "set": {
              "dry_run": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "command",
              "changed",
              "parallel",
              "dry_run"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "continue_on_error",
              "reverse",
              "tags",
              "no_tags"
            ]
          }
        ]
      }
    ]
  }
}
