{
  "id": "atool",
  "name": "atool",
  "homepage": "https://savannah.nongnu.org/projects/atool/",
  "description": "Archival front-end.",
  "executables": [
    "atool",
    "aunpack",
    "apack",
    "als",
    "acat",
    "adiff",
    "arepack"
  ],
  "dotfiles": {
    "paths": [
      "~/.atoolrc"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "Work with archives",
    "description": "List, extract or create archives with atool, which picks the right archiver by file extension. Archive-specific format options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": true
    },
    "source": [
      {
        "id": "man",
        "kind": "manual",
        "url": "https://man.archlinux.org/man/atool.1.en",
        "revision": "2026-10-27",
        "evidence": "-l, --list\n-x, --extract\n-X, --extract-to=PATH\n-a, --add\n-c, --cat\n-F, --format=EXTENSION\n-S, --simulate\n-f, --force\n-D, --subdir\n-q, --quiet\n-v, --verbose\n"
      }
    ],
    "field": [
      {
        "id": "list",
        "label": "List contents",
        "type": "boolean",
        "option": [
          "--list",
          "-l"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "extract",
        "label": "Extract",
        "type": "boolean",
        "option": [
          "--extract",
          "-x"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "add",
        "label": "Create / add to archive",
        "description": "The first positional argument is then the archive to create.",
        "type": "boolean",
        "option": [
          "--add",
          "-a"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "files",
        "label": "Archive and files",
        "description": "Archives to list or extract; for create, the new archive followed by the files to add.",
        "type": "path",
        "path": {
          "kind": "any",
          "role": "input"
        },
        "position": 0,
        "multiple": true,
        "min": 1,
        "sources": [
          "man"
        ]
      },
      {
        "id": "extract_to",
        "label": "Extract into directory",
        "type": "path",
        "path": {
          "kind": "directory",
          "role": "output"
        },
        "option": [
          "--extract-to",
          "-X"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "subdir",
        "label": "Always extract into a subdirectory",
        "type": "boolean",
        "option": [
          "--subdir",
          "-D"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "format",
        "label": "Force archive format",
        "description": "File extension, for example tar.gz.",
        "type": "string",
        "option": [
          "--format",
          "-F"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "force",
        "label": "Overwrite existing files",
        "type": "boolean",
        "option": [
          "--force",
          "-f"
        ],
        "effect": "overwrite",
        "sources": [
          "man"
        ]
      },
      {
        "id": "simulate",
        "label": "Simulate only",
        "type": "boolean",
        "option": [
          "--simulate",
          "-S"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "quiet",
        "label": "Quiet",
        "type": "boolean",
        "option": [
          "--quiet",
          "-q"
        ],
        "sources": [
          "man"
        ]
      }
    ],
    "task": [
      {
        "id": "list",
        "label": "List archive contents",
        "set": {
          "list": [
            true
          ]
        },
        "lock": [
          "list"
        ],
        "fields": [
          "list",
          "files",
          "format"
        ],
        "required": [
          "files"
        ]
      },
      {
        "id": "extract",
        "label": "Extract archive",
        "set": {
          "extract": [
            true
          ]
        },
        "lock": [
          "extract"
        ],
        "fields": [
          "extract",
          "files",
          "extract_to",
          "subdir",
          "force"
        ],
        "required": [
          "files"
        ]
      },
      {
        "id": "create",
        "label": "Create archive",
        "set": {
          "add": [
            true
          ]
        },
        "lock": [
          "add"
        ],
        "fields": [
          "add",
          "files",
          "format",
          "force"
        ],
        "required": [
          "files"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "list",
          "extract",
          "add",
          "files",
          "extract_to",
          "subdir"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "format",
          "force",
          "simulate",
          "quiet"
        ]
      }
    ]
  }
}
