{
  "id": "ccache",
  "name": "ccache",
  "homepage": "https://ccache.dev",
  "description": "ccache is a compiler cache that speeds up recompilation.",
  "icon": "SimpleIcons:ccache",
  "executables": [
    "ccache"
  ],
  "dotfiles": {
    "paths": [
      "~/.ccache/ccache.conf",
      "[preferences]/ccache/ccache.conf",
      "~/.config/ccache/ccache.conf",
      "%LOCALAPPDATA%/ccache/ccache.conf"
    ],
    "secret": [],
    "side_effect": false
  },
  "commands": {
    "format": 1,
    "label": "Manage the cache",
    "description": "Show or reset ccache statistics, clean or clear the cache and set its size limits. Compiler-wrapper use and remote storage options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "source": [
      {
        "id": "manual",
        "kind": "manual",
        "url": "https://github.com/ccache/ccache/blob/master/doc/manual.adoc",
        "revision": "2026-10-27",
        "evidence": "*-c*, *--cleanup*::\n*-C*, *--clear*::\n*-d*, *--dir* _PATH_::\n*-F* _NUM_, *--max-files* _NUM_::\n*-M* _SIZE_, *--max-size* _SIZE_::\n*-p*, *--show-config*::\n*-s*, *--show-stats*::\n*-v*, *--verbose*::\n*-z*, *--zero-stats*::\n*--evict-older-than* _AGE_::\n*--dry-run*::\n"
      }
    ],
    "field": [
      {
        "id": "show_stats",
        "label": "Show statistics",
        "type": "boolean",
        "option": [
          "--show-stats",
          "-s"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "show_config",
        "label": "Show configuration",
        "type": "boolean",
        "option": [
          "--show-config",
          "-p"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "zero_stats",
        "label": "Zero statistics",
        "type": "boolean",
        "option": [
          "--zero-stats",
          "-z"
        ],
        "effect": "overwrite",
        "sources": [
          "manual"
        ]
      },
      {
        "id": "cleanup",
        "label": "Clean up cache",
        "type": "boolean",
        "option": [
          "--cleanup",
          "-c"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "clear",
        "label": "Clear entire cache",
        "type": "boolean",
        "option": [
          "--clear",
          "-C"
        ],
        "effect": "delete",
        "sources": [
          "manual"
        ]
      },
      {
        "id": "evict_older_than",
        "label": "Evict files older than",
        "description": "Unsigned integer with a d (days) or s (seconds) suffix.",
        "type": "string",
        "option": [
          "--evict-older-than"
        ],
        "effect": "delete",
        "sources": [
          "manual"
        ]
      },
      {
        "id": "max_size",
        "label": "Maximum cache size",
        "description": "Number with optional suffix kB, MB, GB, TB, KiB, MiB, GiB or TiB; 0 for no limit.",
        "type": "string",
        "option": [
          "--max-size",
          "-M"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "max_files",
        "label": "Maximum file count",
        "description": "0 for no limit.",
        "type": "integer",
        "option": [
          "--max-files",
          "-F"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "dir",
        "label": "Cache directory",
        "type": "path",
        "option": [
          "--dir",
          "-d"
        ],
        "path": {
          "kind": "directory",
          "role": "input"
        },
        "sources": [
          "manual"
        ]
      },
      {
        "id": "dry_run",
        "label": "Dry run",
        "type": "boolean",
        "option": [
          "--dry-run"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "verbose",
        "label": "Verbose",
        "type": "count",
        "option": [
          "--verbose",
          "-v"
        ],
        "sources": [
          "manual"
        ]
      }
    ],
    "task": [
      {
        "id": "stats",
        "label": "Show statistics",
        "fields": [
          "show_stats",
          "verbose",
          "dir"
        ],
        "required": [
          "show_stats"
        ],
        "set": {
          "show_stats": [
            true
          ]
        }
      },
      {
        "id": "limit",
        "label": "Set size limit",
        "fields": [
          "max_size",
          "max_files",
          "dir"
        ],
        "required": [
          "max_size"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "show_stats",
          "show_config",
          "zero_stats",
          "max_size",
          "max_files",
          "dir"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "cleanup",
          "clear",
          "evict_older_than",
          "dry_run",
          "verbose"
        ]
      }
    ]
  }
}
