{
  "id": "goaccess",
  "name": "GoAccess",
  "homepage": "https://goaccess.io/",
  "description": "Real-time web log analyzer and interactive viewer that runs in a terminal.",
  "executables": [
    "goaccess"
  ],
  "dotfiles": {
    "paths": [
      "~/.goaccessrc"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "Analyze web logs",
    "description": "Parse an access log and show it in the terminal, or write a JSON, CSV or HTML report. Panels, GeoIP, real-time WebSocket options and persistence 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://raw.githubusercontent.com/allinurl/goaccess/master/goaccess.1",
        "revision": "master 2026-10-27",
        "evidence": "--time-format=<timeformat>\n--date-format=<dateformat>\n--log-format=<logformat>\n-f --log-file=<logfile>\n-o --output=<path/file.[json|csv|html]>\n-e --exclude-ip=<IP|IP-range>\n-q --no-query-string\n-a --agent-list\n--ignore-crawlers\n--anonymize-ip\n--html-report-title=<title>\n--real-time-html\n--no-color\n--no-progress\n--tz=<timezone>\n--process-and-exit\n"
      }
    ],
    "field": [
      {
        "id": "log_file",
        "label": "Log file",
        "description": "Access log to parse. Leave empty to read from standard input.",
        "type": "path",
        "option": [
          "--log-file",
          "-f"
        ],
        "path": {
          "kind": "file",
          "role": "input"
        },
        "sources": [
          "man"
        ]
      },
      {
        "id": "log_format",
        "label": "Log format",
        "description": "A predefined name such as COMBINED, or a custom format string.",
        "type": "string",
        "option": [
          "--log-format"
        ],
        "suggestions": [
          {
            "value": "COMBINED",
            "label": "Combined"
          },
          {
            "value": "COMMON",
            "label": "Common"
          },
          {
            "value": "VCOMBINED",
            "label": "Virtual host combined"
          }
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "date_format",
        "label": "Date format",
        "type": "string",
        "option": [
          "--date-format"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "time_format",
        "label": "Time format",
        "type": "string",
        "option": [
          "--time-format"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "output",
        "label": "Output file",
        "description": "Report to write; the extension (.html, .json, .csv) picks the format.",
        "type": "path",
        "option": [
          "--output",
          "-o"
        ],
        "path": {
          "kind": "file",
          "role": "output",
          "must_exist": false
        },
        "effect": "overwrite",
        "sources": [
          "man"
        ]
      },
      {
        "id": "exclude_ip",
        "label": "Exclude IP or range",
        "type": "string",
        "option": [
          "--exclude-ip",
          "-e"
        ],
        "multiple": true,
        "sources": [
          "man"
        ]
      },
      {
        "id": "ignore_crawlers",
        "label": "Ignore crawlers",
        "type": "boolean",
        "option": [
          "--ignore-crawlers"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "no_query_string",
        "label": "Strip query strings",
        "type": "boolean",
        "option": [
          "--no-query-string",
          "-q"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "anonymize_ip",
        "label": "Anonymize IPs",
        "type": "boolean",
        "option": [
          "--anonymize-ip"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "report_title",
        "label": "HTML report title",
        "type": "string",
        "option": [
          "--html-report-title"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "real_time_html",
        "label": "Real-time HTML",
        "description": "Serve the HTML report live over WebSocket.",
        "type": "boolean",
        "option": [
          "--real-time-html"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "tz",
        "label": "Timezone",
        "type": "string",
        "option": [
          "--tz"
        ],
        "sources": [
          "man"
        ]
      }
    ],
    "task": [
      {
        "id": "terminal",
        "label": "Browse in terminal",
        "set": {
          "log_format": [
            "COMBINED"
          ]
        },
        "fields": [
          "log_file",
          "log_format",
          "exclude_ip",
          "ignore_crawlers",
          "no_query_string"
        ],
        "required": [
          "log_file"
        ]
      },
      {
        "id": "html-report",
        "label": "HTML report",
        "set": {
          "log_format": [
            "COMBINED"
          ]
        },
        "fields": [
          "log_file",
          "log_format",
          "output",
          "report_title",
          "ignore_crawlers",
          "anonymize_ip",
          "real_time_html"
        ],
        "required": [
          "log_file",
          "output"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "log_file",
          "log_format",
          "output",
          "ignore_crawlers",
          "no_query_string"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "date_format",
          "time_format",
          "exclude_ip",
          "anonymize_ip",
          "report_title",
          "real_time_html",
          "tz"
        ]
      }
    ]
  }
}
