{
  "description": "Run a built project, package or kernel binary with architecture, platform, memory, ports and volumes. Networks, kernel args, MAC/IP and app arguments after -- are left out.",
  "name": "kraft",
  "subcommands": [
    {
      "name": "run",
      "description": "Run a unikernel",
      "options": [
        {
          "names": [
            "--target",
            "-t"
          ],
          "description": "Project target",
          "args": {
            "name": "target",
            "isOptional": false
          }
        },
        {
          "names": [
            "--arch",
            "-m"
          ],
          "description": "Architecture",
          "args": {
            "name": "arch",
            "isOptional": false,
            "suggestions": [
              {
                "name": "x86_64",
                "description": "x86_64"
              },
              {
                "name": "arm64",
                "description": "arm64"
              }
            ]
          }
        },
        {
          "names": [
            "--plat"
          ],
          "description": "Platform",
          "args": {
            "name": "plat",
            "isOptional": false,
            "suggestions": [
              {
                "name": "qemu",
                "description": "QEMU"
              }
            ]
          }
        },
        {
          "names": [
            "--memory",
            "-M"
          ],
          "description": "For example 64Mi, 1G.",
          "args": {
            "name": "memory",
            "description": "For example 64Mi, 1G.",
            "isOptional": false
          }
        },
        {
          "names": [
            "--port",
            "-p"
          ],
          "description": "host:guest, for example 8080:80.",
          "args": {
            "name": "port",
            "description": "host:guest, for example 8080:80.",
            "isOptional": false,
            "isVariadic": true
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--volume",
            "-v"
          ],
          "description": "host-path:guest-path.",
          "args": {
            "name": "volume",
            "description": "host-path:guest-path.",
            "isOptional": false,
            "isVariadic": true
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--rootfs"
          ],
          "description": "Root filesystem",
          "args": {
            "name": "rootfs",
            "isOptional": false,
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--env",
            "-e"
          ],
          "description": "Environment variables",
          "args": {
            "name": "env",
            "isOptional": false,
            "isVariadic": true
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--name",
            "-n"
          ],
          "description": "Instance name",
          "args": {
            "name": "name",
            "isOptional": false
          }
        },
        {
          "names": [
            "--detach",
            "-d"
          ],
          "description": "Run in background"
        },
        {
          "names": [
            "--rm"
          ],
          "description": "Remove when it stops"
        }
      ],
      "args": [
        {
          "name": "project",
          "description": "Leave empty to run the project in the current directory.",
          "isOptional": true
        }
      ]
    }
  ]
}
