{
  "id": "kubo",
  "name": "Kubo (IPFS)",
  "homepage": "https://github.com/ipfs/kubo",
  "description": "The reference IPFS implementation and node daemon.",
  "executables": [
    "ipfs"
  ],
  "dotfiles": {
    "paths": [],
    "secret": [
      "~/.ipfs/config",
      "~/.ipfs/swarm.key"
    ],
    "side_effect": false
  },
  "commands": {
    "format": 1,
    "label": "Kubo (IPFS)",
    "description": "Add files or directories to IPFS with ipfs add. Experimental chunking, inline and filestore options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "add"
        ],
        "label": "Add files",
        "description": "Add one or more paths to the local node and pin them. Experimental options are left out.",
        "source": [
          {
            "id": "cli",
            "kind": "help",
            "url": "https://docs.ipfs.tech/reference/kubo/cli/",
            "revision": "kubo 0.43.1",
            "evidence": "  ipfs add <path>... - Add a file or directory to IPFS.\n  <path>... - The path to a file to be added to IPFS.\n  -r, --recursive            bool   - Add directory paths recursively.\n  -H, --hidden               bool   - Include files that are hidden. Only takes\n  -q, --quiet                bool   - Write minimal output.\n  -Q, --quieter              bool   - Write only final hash.\n  -n, --only-hash            bool   - Only chunk and hash - do not write to\n  -w, --wrap-with-directory  bool   - Wrap files with a directory object.\n  --pin                      bool   - Pin locally to protect added files from\n  --cid-version              int    - CID version (0 or 1). CIDv1 automatically\n  --to-files                 string - Add reference to Files API (MFS) at the\n  --stdin-name               string - Assign a name if the file source is stdin.\n"
          }
        ],
        "field": [
          {
            "id": "paths",
            "label": "Files or directories",
            "type": "path",
            "position": 0,
            "multiple": true,
            "path": {
              "kind": "any",
              "role": "input"
            },
            "sources": [
              "cli"
            ]
          },
          {
            "id": "recursive",
            "label": "Add directories recursively",
            "type": "boolean",
            "option": [
              "--recursive",
              "-r"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "hidden",
            "label": "Include hidden files",
            "type": "boolean",
            "option": [
              "--hidden",
              "-H"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "wrap",
            "label": "Wrap in a directory",
            "type": "boolean",
            "option": [
              "--wrap-with-directory",
              "-w"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "only_hash",
            "label": "Only hash, do not store",
            "type": "boolean",
            "option": [
              "--only-hash",
              "-n"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "quieter",
            "label": "Print only the final hash",
            "type": "boolean",
            "option": [
              "--quieter",
              "-Q"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "cid_version",
            "label": "CID version",
            "type": "integer",
            "option": [
              "--cid-version"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "to_files",
            "label": "Also add to MFS path",
            "type": "string",
            "option": [
              "--to-files"
            ],
            "sources": [
              "cli"
            ]
          }
        ],
        "task": [
          {
            "id": "add-dir",
            "label": "Add a directory",
            "set": {
              "recursive": [
                true
              ]
            },
            "fields": [
              "paths",
              "recursive"
            ],
            "required": [
              "paths"
            ]
          },
          {
            "id": "hash-only",
            "label": "Compute the CID only",
            "set": {
              "only_hash": [
                true
              ],
              "quieter": [
                true
              ]
            },
            "fields": [
              "paths",
              "only_hash",
              "quieter"
            ],
            "required": [
              "paths"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "paths",
              "recursive",
              "hidden",
              "wrap",
              "only_hash",
              "quieter"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "cid_version",
              "to_files"
            ]
          }
        ]
      }
    ]
  }
}
