{
  "id": "acme-sh",
  "name": "acme.sh",
  "homepage": "https://github.com/acmesh-official/acme.sh",
  "description": "A pure Unix shell script ACME client for SSL / TLS certificate automation.",
  "executables": [
    "acme.sh"
  ],
  "dotfiles": {
    "paths": [],
    "secret": [
      "~/.acme.sh/"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Issue a certificate",
    "description": "Issue or renew an ACME certificate for one or more domains with webroot, standalone, Apache or DNS validation. Install-cert, deploy and account management are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "help",
        "kind": "help",
        "url": "https://github.com/acmesh-official/acme.sh/blob/master/acme.sh",
        "revision": "master 2026-10",
        "evidence": "  --issue                  Issue a cert.\n  -r, --renew              Renew a cert.\n  -d, --domain <domain.tld>         Specifies a domain, used to issue, renew or revoke etc.\n  -f, --force                       Force install, force cert renewal or override sudo restrictions.\n  --staging, --test                 Use staging server, for testing.\n  --debug [0|1|2|3]                 Output debug info.\n  -w, --webroot <directory>         Specifies the web root folder for web root mode.\n  --standalone                      Use standalone mode.\n  --apache                          Use Apache mode.\n  --dns [dns_hook]                  Use dns manual mode or dns api.\n  -k, --keylength <bits>            Specifies the domain key length: 2048, 3072, 4096, 8192 or ec-256 (default), ec-384, ec-521.\n  --server <server_uri>             ACME Directory Resource URI.\n  --cert-file <file>                Path to copy the cert file to after issue/renew.\n  --key-file <file>                 Path to copy the key file to after issue/renew.\n  --fullchain-file <file>           Path to copy the fullchain cert file to after issue/renew.\n  --reloadcmd <command>             Command to execute after issue/renew to reload the server.\n"
      }
    ],
    "field": [
      {
        "id": "issue",
        "label": "Issue certificate",
        "type": "boolean",
        "option": [
          "--issue"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "renew",
        "label": "Renew certificate",
        "type": "boolean",
        "option": [
          "--renew"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "domain",
        "label": "Domains",
        "description": "One entry per domain; the first is the primary name.",
        "type": "string",
        "option": [
          "--domain",
          "-d"
        ],
        "multiple": true,
        "sources": [
          "help"
        ]
      },
      {
        "id": "webroot",
        "label": "Web root",
        "type": "path",
        "option": [
          "--webroot",
          "-w"
        ],
        "path": {
          "kind": "directory",
          "role": "input"
        },
        "sources": [
          "help"
        ]
      },
      {
        "id": "standalone",
        "label": "Standalone mode",
        "type": "boolean",
        "option": [
          "--standalone"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "apache",
        "label": "Apache mode",
        "type": "boolean",
        "option": [
          "--apache"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "dns_hook",
        "label": "DNS API hook",
        "description": "For example dns_cf; use the DNS API for validation.",
        "type": "string",
        "option": [
          "--dns"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "keylength",
        "label": "Key length",
        "type": "string",
        "option": [
          "--keylength",
          "-k"
        ],
        "suggestions": [
          {
            "value": "2048",
            "label": "RSA 2048"
          },
          {
            "value": "4096",
            "label": "RSA 4096"
          },
          {
            "value": "ec-256",
            "label": "ECC P-256"
          },
          {
            "value": "ec-384",
            "label": "ECC P-384"
          }
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "server",
        "label": "ACME server",
        "type": "string",
        "option": [
          "--server"
        ],
        "suggestions": [
          {
            "value": "letsencrypt",
            "label": "Let's Encrypt"
          },
          {
            "value": "zerossl",
            "label": "ZeroSSL"
          }
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "staging",
        "label": "Use staging server",
        "type": "boolean",
        "option": [
          "--staging"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "force",
        "label": "Force",
        "type": "boolean",
        "option": [
          "--force",
          "-f"
        ],
        "effect": "overwrite",
        "sources": [
          "help"
        ]
      },
      {
        "id": "cert_file",
        "label": "Copy cert to",
        "type": "path",
        "option": [
          "--cert-file"
        ],
        "path": {
          "kind": "file",
          "role": "output"
        },
        "effect": "overwrite",
        "sources": [
          "help"
        ]
      },
      {
        "id": "key_file",
        "label": "Copy key to",
        "type": "path",
        "option": [
          "--key-file"
        ],
        "path": {
          "kind": "file",
          "role": "output"
        },
        "effect": "overwrite",
        "sources": [
          "help"
        ]
      },
      {
        "id": "fullchain_file",
        "label": "Copy fullchain to",
        "type": "path",
        "option": [
          "--fullchain-file"
        ],
        "path": {
          "kind": "file",
          "role": "output"
        },
        "effect": "overwrite",
        "sources": [
          "help"
        ]
      },
      {
        "id": "reloadcmd",
        "label": "Reload command",
        "type": "string",
        "option": [
          "--reloadcmd"
        ],
        "effect": "exec",
        "sources": [
          "help"
        ]
      }
    ],
    "task": [
      {
        "id": "issue_webroot",
        "label": "Issue with webroot",
        "fields": [
          "issue",
          "domain",
          "webroot",
          "keylength"
        ],
        "required": [
          "issue",
          "domain",
          "webroot"
        ],
        "set": {
          "issue": [
            true
          ]
        }
      },
      {
        "id": "issue_dns",
        "label": "Issue with DNS API",
        "fields": [
          "issue",
          "domain",
          "dns_hook",
          "keylength"
        ],
        "required": [
          "issue",
          "domain",
          "dns_hook"
        ],
        "set": {
          "issue": [
            true
          ]
        }
      },
      {
        "id": "renew_domain",
        "label": "Renew a domain",
        "fields": [
          "renew",
          "domain",
          "force"
        ],
        "required": [
          "renew",
          "domain"
        ],
        "set": {
          "renew": [
            true
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "issue",
          "renew",
          "domain",
          "webroot",
          "standalone",
          "apache",
          "dns_hook",
          "keylength"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "server",
          "staging",
          "force",
          "cert_file",
          "key_file",
          "fullchain_file",
          "reloadcmd"
        ]
      }
    ]
  }
}
