{
  "version": "1.0.0",
  "commands": [
    {
      "id": "sonar",
      "name": "sonar",
      "fullName": "sonar",
      "description": "SonarQube CLI",
      "isGroup": true,
      "isRoot": true,
      "requiresAuth": false,
      "depth": 0,
      "parentId": null,
      "arguments": [],
      "options": [],
      "examples": [],
      "children": [
        "sonar-auth",
        "sonar-list",
        "sonar-api",
        "sonar-integrate",
        "sonar-context",
        "sonar-analyze",
        "sonar-remediate",
        "sonar-config",
        "sonar-system",
        "sonar-self-update"
      ]
    },
    {
      "id": "sonar-auth",
      "name": "auth",
      "fullName": "sonar auth",
      "description": "Manage authentication tokens and credentials",
      "isGroup": true,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 1,
      "parentId": "sonar",
      "arguments": [],
      "options": [],
      "examples": [],
      "children": [
        "sonar-auth-login",
        "sonar-auth-logout",
        "sonar-auth-status"
      ]
    },
    {
      "id": "sonar-auth-login",
      "name": "login",
      "fullName": "sonar auth login",
      "description": "Authenticate via browser and save credentials in the system keychain. Must be run manually — agents cannot authenticate themselves. For CI and automation, use environment variables instead: https://docs.sonarsource.com/sonarqube-cli/using-sonarqube-cli/environment-variables",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 2,
      "parentId": "sonar-auth",
      "arguments": [],
      "options": [
        {
          "flags": "-s, --server <server>",
          "long": "--server",
          "short": "-s",
          "description": "SonarQube Server URL, SonarQube Cloud EU (https://sonarcloud.io), or SonarQube Cloud US (https://sonarqube.us). Defaults to SonarQube Cloud EU.",
          "type": "string",
          "required": false
        },
        {
          "flags": "-o, --org <org>",
          "long": "--org",
          "short": "-o",
          "description": "SonarQube Cloud organization key (required for SonarQube Cloud)",
          "type": "string",
          "required": false
        }
      ],
      "examples": [
        {
          "command": "sonar auth login",
          "description": "Interactive login for SonarQube Cloud with browser"
        },
        {
          "command": "sonar auth login -s https://sonarqube.my.com/sonarqube",
          "description": "Interactive login for SonarQube Server with browser with a server specified"
        }
      ],
      "children": []
    },
    {
      "id": "sonar-auth-logout",
      "name": "logout",
      "fullName": "sonar auth logout",
      "description": "Remove active connection token from keychain",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 2,
      "parentId": "sonar-auth",
      "arguments": [],
      "options": [],
      "examples": [
        {
          "command": "sonar auth logout",
          "description": "Remove active connection token from keychain"
        }
      ],
      "children": []
    },
    {
      "id": "sonar-auth-status",
      "name": "status",
      "fullName": "sonar auth status",
      "description": "Show active authentication connection with token verification",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 2,
      "parentId": "sonar-auth",
      "arguments": [],
      "options": [],
      "examples": [
        {
          "command": "sonar auth status",
          "description": "Show current server connection and token status"
        }
      ],
      "children": []
    },
    {
      "id": "sonar-list",
      "name": "list",
      "fullName": "sonar list",
      "description": "List issues and projects from SonarQube Cloud or Server",
      "isGroup": true,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 1,
      "parentId": "sonar",
      "arguments": [],
      "options": [],
      "examples": [],
      "children": [
        "sonar-list-issues",
        "sonar-list-projects"
      ]
    },
    {
      "id": "sonar-list-issues",
      "name": "issues",
      "fullName": "sonar list issues",
      "description": "Search for issues in SonarQube",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 2,
      "parentId": "sonar-list",
      "arguments": [],
      "options": [
        {
          "flags": "-p, --project <project>",
          "long": "--project",
          "short": "-p",
          "description": "Project key",
          "type": "string",
          "required": true
        },
        {
          "flags": "--statuses <statuses>",
          "long": "--statuses",
          "description": "Filter by status (comma-separated list of: OPEN, CONFIRMED, FALSE_POSITIVE, ACCEPTED, FIXED)",
          "type": "string",
          "required": false
        },
        {
          "flags": "--severities <severities>",
          "long": "--severities",
          "description": "Filter by severity (comma-separated list of: INFO, MINOR, MAJOR, CRITICAL, BLOCKER)",
          "type": "string",
          "required": false
        },
        {
          "flags": "--format <format>",
          "long": "--format",
          "description": "Output format",
          "type": "string",
          "required": false,
          "defaultValue": "json",
          "allowedValues": [
            "json",
            "toon",
            "table",
            "csv"
          ]
        },
        {
          "flags": "--branch <branch>",
          "long": "--branch",
          "description": "Branch name",
          "type": "string",
          "required": false
        },
        {
          "flags": "--pull-request <pull-request>",
          "long": "--pull-request",
          "description": "Pull request ID",
          "type": "string",
          "required": false
        },
        {
          "flags": "--page-size <page-size>",
          "long": "--page-size",
          "description": "Page size (1-500)",
          "type": "number",
          "required": false,
          "defaultValue": 500
        },
        {
          "flags": "--page <page>",
          "long": "--page",
          "description": "Page number",
          "type": "number",
          "required": false,
          "defaultValue": 1
        }
      ],
      "examples": [
        {
          "command": "sonar list issues -p my-project",
          "description": "List issues in a project"
        },
        {
          "command": "sonar list issues -p my-project --format toon",
          "description": "Output issues in TOON format for AI agents"
        }
      ],
      "children": []
    },
    {
      "id": "sonar-list-projects",
      "name": "projects",
      "fullName": "sonar list projects",
      "description": "Search for projects in SonarQube",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 2,
      "parentId": "sonar-list",
      "arguments": [],
      "options": [
        {
          "flags": "-q, --query <query>",
          "long": "--query",
          "short": "-q",
          "description": "Search query to filter projects by name or key",
          "type": "string",
          "required": false
        },
        {
          "flags": "--page <page>",
          "long": "--page",
          "description": "Page number",
          "type": "number",
          "required": false,
          "defaultValue": 1
        },
        {
          "flags": "--page-size <page-size>",
          "long": "--page-size",
          "description": "Page size (1-500)",
          "type": "number",
          "required": false,
          "defaultValue": 500
        }
      ],
      "examples": [
        {
          "command": "sonar list projects",
          "description": "List first 500 accessible projects"
        },
        {
          "command": "sonar list projects -q my-project",
          "description": "Search projects by name or key"
        },
        {
          "command": "sonar list projects --page 2 --page-size 50",
          "description": "Paginate through projects"
        }
      ],
      "children": []
    },
    {
      "id": "sonar-api",
      "name": "api",
      "fullName": "sonar api",
      "description": "Make authenticated API requests to SonarQube",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 1,
      "parentId": "sonar",
      "arguments": [
        {
          "name": "method",
          "description": "HTTP method (get, post, patch, put, delete)",
          "required": true,
          "variadic": false
        },
        {
          "name": "endpoint",
          "description": "API endpoint path. Must start with \"/\", and can contain query parameters.",
          "required": true,
          "variadic": false
        }
      ],
      "options": [
        {
          "flags": "-d, --data <data>",
          "long": "--data",
          "short": "-d",
          "description": "JSON string for request body. The tool will automatically format as either form data or JSON body.",
          "type": "string",
          "required": false
        },
        {
          "flags": "-v, --verbose",
          "long": "--verbose",
          "short": "-v",
          "description": "Print request and response details for debugging.",
          "type": "boolean",
          "required": false
        }
      ],
      "examples": [
        {
          "command": "sonar api get \"/api/favorites/search\"",
          "description": "List favorite projects"
        },
        {
          "command": "sonar api get \"/api/rules/search?organization=my-org&languages=ts\"",
          "description": "Search for TypeScript rules in an organization"
        },
        {
          "command": "sonar api post \"/api/user_tokens/generate\" --data '{\"name\":\"my-token\"}'",
          "description": "Generate a new user token"
        },
        {
          "command": "sonar api post \"/api/issues/do_transition\" --data '{\"issue\":\"AYx1z2\",\"transition\":\"accept\"}'",
          "description": "Accept an issue"
        },
        {
          "command": "sonar api get \"/analysis/engine\"",
          "description": "Get the current analysis engine JAR info (V2 API)"
        },
        {
          "command": "sonar api get \"/api/system/status\" --verbose",
          "description": "Check system status with full request/response details"
        },
        {
          "command": "sonar api post \"/api/user_tokens/revoke\" --data '{\"name\":\"my-token\"}'",
          "description": "Revoke a user token"
        }
      ],
      "children": []
    },
    {
      "id": "sonar-integrate",
      "name": "integrate",
      "fullName": "sonar integrate",
      "description": "Setup SonarQube integration for AI coding agents, git and others.",
      "isGroup": true,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 1,
      "parentId": "sonar",
      "arguments": [],
      "options": [],
      "examples": [
        {
          "command": "sonar integrate claude -s https://sonarcloud.io -p my-project",
          "description": "Integrate Claude Code with interactive setup"
        },
        {
          "command": "sonar integrate claude -g",
          "description": "Integrate globally and install hooks to ~/.claude which will be available for all projects"
        }
      ],
      "children": [
        "sonar-integrate-git",
        "sonar-integrate-claude",
        "sonar-integrate-copilot",
        "sonar-integrate-codex"
      ]
    },
    {
      "id": "sonar-integrate-git",
      "name": "git",
      "fullName": "sonar integrate git",
      "description": "Install a Git pre-commit hook that scans staged files for secrets before each commit, or a Git pre-push hook that scans committed files for secrets before each push.",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 2,
      "parentId": "sonar-integrate",
      "arguments": [],
      "options": [
        {
          "flags": "--hook <type>",
          "long": "--hook",
          "description": "Hook to install: pre-commit (scan staged files) or pre-push (scan files in unpushed commits)",
          "type": "string",
          "required": false
        },
        {
          "flags": "--force",
          "long": "--force",
          "description": "Overwrite existing hook if it is not from sonar integrate git",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "--non-interactive",
          "long": "--non-interactive",
          "description": "Non-interactive mode (no prompts)",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "--global",
          "long": "--global",
          "description": "Install hook globally for all repositories (sets git config --global core.hooksPath)",
          "type": "boolean",
          "required": false
        }
      ],
      "examples": [
        {
          "command": "sonar integrate git",
          "description": "Install a pre-commit hook that scans staged files for secrets (interactive)"
        },
        {
          "command": "sonar integrate git --hook pre-push",
          "description": "Install a pre-push hook that scans committed files for secrets before pushing"
        },
        {
          "command": "sonar integrate git --global",
          "description": "Install a staged-file secrets hook globally for all repositories (sets git config --global core.hooksPath)"
        },
        {
          "command": "sonar integrate git --hook pre-push --global --non-interactive",
          "description": "Non-interactive: install a pre-push secrets hook globally for all repositories"
        }
      ],
      "children": []
    },
    {
      "id": "sonar-integrate-claude",
      "name": "claude",
      "fullName": "sonar integrate claude",
      "description": "Setup SonarQube integration for Claude Code. This will install secrets scanning hooks, configure SonarQube Agentic Analysis and MCP Server.",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 2,
      "parentId": "sonar-integrate",
      "arguments": [],
      "options": [
        {
          "flags": "-p, --project <project>",
          "long": "--project",
          "short": "-p",
          "description": "Project key. Ignored when --global is used.",
          "type": "string",
          "required": false
        },
        {
          "flags": "--non-interactive",
          "long": "--non-interactive",
          "description": "Non-interactive mode (no prompts)",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "-g, --global",
          "long": "--global",
          "short": "-g",
          "description": "Install hooks and config globally to ~/.claude instead of project directory",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "--skip-context",
          "long": "--skip-context",
          "description": "Skip the sonar-context-augmentation install/init/skill step",
          "type": "boolean",
          "required": false
        }
      ],
      "examples": [],
      "children": []
    },
    {
      "id": "sonar-integrate-copilot",
      "name": "copilot",
      "fullName": "sonar integrate copilot",
      "description": "Setup SonarQube integration for Copilot. This will install secrets scanning hooks, configure SonarQube Agentic Analysis and MCP Server.",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 2,
      "parentId": "sonar-integrate",
      "arguments": [],
      "options": [
        {
          "flags": "-g, --global",
          "long": "--global",
          "short": "-g",
          "description": "Install hooks and config globally to ~/.copilot instead of project directory",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "-p, --project <project>",
          "long": "--project",
          "short": "-p",
          "description": "Project key. Mutually exclusive with --global.",
          "type": "string",
          "required": false
        },
        {
          "flags": "--non-interactive",
          "long": "--non-interactive",
          "description": "Non-interactive mode (no prompts)",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "--skip-context",
          "long": "--skip-context",
          "description": "Skip the sonar-context-augmentation install/init/skill step",
          "type": "boolean",
          "required": false
        }
      ],
      "examples": [],
      "children": []
    },
    {
      "id": "sonar-integrate-codex",
      "name": "codex",
      "fullName": "sonar integrate codex",
      "description": "Setup SonarQube integration for Codex. This will install a UserPromptSubmit hook that scans prompts for secrets before they are sent.",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 2,
      "parentId": "sonar-integrate",
      "arguments": [],
      "options": [
        {
          "flags": "-g, --global",
          "long": "--global",
          "short": "-g",
          "description": "Install hook and config globally to ~/.codex instead of project directory",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "-p, --project <project>",
          "long": "--project",
          "short": "-p",
          "description": "Project key. Mutually exclusive with --global.",
          "type": "string",
          "required": false
        },
        {
          "flags": "--non-interactive",
          "long": "--non-interactive",
          "description": "Non-interactive mode (no prompts)",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "--skip-context",
          "long": "--skip-context",
          "description": "Skip the sonar-context-augmentation install/init/skill step",
          "type": "boolean",
          "required": false
        }
      ],
      "examples": [],
      "children": []
    },
    {
      "id": "sonar-context",
      "name": "context",
      "fullName": "sonar context",
      "description": "Augment AI agents with context from your codebase (beta: subject to change)",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 1,
      "parentId": "sonar",
      "arguments": [
        {
          "name": "action",
          "description": "Action forwarded to sonar-context-augmentation",
          "required": false,
          "variadic": false
        },
        {
          "name": "args",
          "description": "Additional arguments forwarded to sonar-context-augmentation",
          "required": false,
          "variadic": true
        }
      ],
      "options": [],
      "examples": [],
      "children": []
    },
    {
      "id": "sonar-analyze",
      "name": "analyze",
      "fullName": "sonar analyze",
      "description": "Analyze code for quality and security issues",
      "isGroup": true,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 1,
      "parentId": "sonar",
      "arguments": [],
      "options": [
        {
          "flags": "--file <file>",
          "long": "--file",
          "description": "Analyze a single file (skips change set detection)",
          "type": "string",
          "required": false
        },
        {
          "flags": "--staged",
          "long": "--staged",
          "description": "Analyze staged files only (git diff --cached)",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "--base <ref>",
          "long": "--base",
          "description": "Analyze files changed vs a branch or ref (e.g. main)",
          "type": "string",
          "required": false
        },
        {
          "flags": "-p, --project <project>",
          "long": "--project",
          "short": "-p",
          "description": "SonarQube Cloud project key (overrides auto-detected project)",
          "type": "string",
          "required": false
        },
        {
          "flags": "--force",
          "long": "--force",
          "description": "Skip the large change set confirmation prompt",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "--format <format>",
          "long": "--format",
          "description": "Output format",
          "type": "string",
          "required": false,
          "defaultValue": "text",
          "allowedValues": [
            "text",
            "json"
          ]
        }
      ],
      "examples": [],
      "children": [
        "sonar-analyze-secrets",
        "sonar-analyze-dependency-risks",
        "sonar-analyze-agentic"
      ]
    },
    {
      "id": "sonar-analyze-secrets",
      "name": "secrets",
      "fullName": "sonar analyze secrets",
      "description": "Scan files or stdin for hardcoded secrets",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 2,
      "parentId": "sonar-analyze",
      "arguments": [
        {
          "name": "paths",
          "description": "File or directory paths to scan for secrets",
          "required": false,
          "variadic": true
        }
      ],
      "options": [
        {
          "flags": "--stdin",
          "long": "--stdin",
          "description": "Read from standard input instead of paths",
          "type": "boolean",
          "required": false
        }
      ],
      "examples": [
        {
          "command": "sonar analyze secrets src/config.ts",
          "description": "Scan a file for hardcoded secrets"
        },
        {
          "command": "sonar analyze secrets src/file1.ts src/file2.ts",
          "description": "Scan multiple files for hardcoded secrets"
        },
        {
          "command": "cat .env | sonar analyze secrets --stdin",
          "description": "Scan stdin for hardcoded secrets"
        }
      ],
      "children": []
    },
    {
      "id": "sonar-analyze-dependency-risks",
      "name": "dependency-risks",
      "fullName": "sonar analyze dependency-risks",
      "description": "Analyze project dependencies for security and license risks (beta: subject to change)",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 2,
      "parentId": "sonar-analyze",
      "arguments": [],
      "options": [
        {
          "flags": "-p, --project <project>",
          "long": "--project",
          "short": "-p",
          "description": "Project key",
          "type": "string",
          "required": true
        },
        {
          "flags": "--format <format>",
          "long": "--format",
          "description": "Output format",
          "type": "string",
          "required": false,
          "defaultValue": "table",
          "allowedValues": [
            "json",
            "table"
          ]
        },
        {
          "flags": "--statuses <statuses>",
          "long": "--statuses",
          "description": "Filter issues by status\n\n  Raw:       new | open | confirm | accept | safe | fixed\n  Presets:   active | to_fix | all\n    active:  new, open, confirm\n    to_fix:  new, open, confirm, accept\n    all:     new, open, confirm, accept, safe, fixed\n\nPresets and raw statuses can be combined; the resulting set is the union.\n\nExamples:\n    --statuses active\n    --statuses new,confirm\n    --statuses active,safe\n",
          "type": "string",
          "required": false,
          "defaultValue": "active"
        }
      ],
      "examples": [],
      "children": []
    },
    {
      "id": "sonar-analyze-agentic",
      "name": "agentic",
      "fullName": "sonar analyze agentic",
      "description": "Run server-side Agentic Analysis (SonarQube Cloud only). Limitations apply.",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 2,
      "parentId": "sonar-analyze",
      "arguments": [],
      "options": [
        {
          "flags": "--file <file>",
          "long": "--file",
          "description": "Analyze a single file (skips change set detection)",
          "type": "string",
          "required": false
        },
        {
          "flags": "--staged",
          "long": "--staged",
          "description": "Analyze staged files only (git diff --cached)",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "--base <ref>",
          "long": "--base",
          "description": "Analyze files changed vs a branch or ref (e.g. main)",
          "type": "string",
          "required": false
        },
        {
          "flags": "-p, --project <project>",
          "long": "--project",
          "short": "-p",
          "description": "SonarQube Cloud project key (overrides auto-detected project)",
          "type": "string",
          "required": false
        },
        {
          "flags": "--force",
          "long": "--force",
          "description": "Skip the large change set confirmation prompt",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "--format <format>",
          "long": "--format",
          "description": "Output format",
          "type": "string",
          "required": false,
          "defaultValue": "text",
          "allowedValues": [
            "text",
            "json"
          ]
        },
        {
          "flags": "--branch <branch>",
          "long": "--branch",
          "description": "Branch name for analysis context",
          "type": "string",
          "required": false
        }
      ],
      "examples": [],
      "children": []
    },
    {
      "id": "sonar-remediate",
      "name": "remediate",
      "fullName": "sonar remediate",
      "description": "Trigger AI agent remediation for eligible issues (SonarQube Cloud only)",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": true,
      "depth": 1,
      "parentId": "sonar",
      "arguments": [],
      "options": [
        {
          "flags": "-p, --project <project>",
          "long": "--project",
          "short": "-p",
          "description": "SonarQube Cloud project key (overrides auto-detected project)",
          "type": "string",
          "required": false
        },
        {
          "flags": "--issues <issueIds>",
          "long": "--issues",
          "description": "Comma-separated issue keys to remediate non-interactively (max 20). Required when stdin is not a TTY.",
          "type": "string",
          "required": false
        }
      ],
      "examples": [],
      "children": []
    },
    {
      "id": "sonar-config",
      "name": "config",
      "fullName": "sonar config",
      "description": "Configure CLI settings",
      "isGroup": true,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 1,
      "parentId": "sonar",
      "arguments": [],
      "options": [],
      "examples": [],
      "children": [
        "sonar-config-telemetry"
      ]
    },
    {
      "id": "sonar-config-telemetry",
      "name": "telemetry",
      "fullName": "sonar config telemetry",
      "description": "Configure telemetry settings",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 2,
      "parentId": "sonar-config",
      "arguments": [],
      "options": [
        {
          "flags": "--enabled",
          "long": "--enabled",
          "description": "Enable collection of anonymous usage statistics",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "--disabled",
          "long": "--disabled",
          "description": "Disable collection of anonymous usage statistics",
          "type": "boolean",
          "required": false
        }
      ],
      "examples": [
        {
          "command": "sonar config telemetry --enabled",
          "description": "Enable collection of anonymous usage statistics"
        },
        {
          "command": "sonar config telemetry --disabled",
          "description": "Disable collection of anonymous usage statistics"
        }
      ],
      "children": []
    },
    {
      "id": "sonar-system",
      "name": "system",
      "fullName": "sonar system",
      "description": "System diagnostics and maintenance commands for the SonarQube CLI installation.",
      "isGroup": true,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 1,
      "parentId": "sonar",
      "arguments": [],
      "options": [],
      "examples": [],
      "children": [
        "sonar-system-status",
        "sonar-system-reset"
      ]
    },
    {
      "id": "sonar-system-status",
      "name": "status",
      "fullName": "sonar system status",
      "description": "Show overall system status: authentication, installed binaries, and integrations",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 2,
      "parentId": "sonar-system",
      "arguments": [],
      "options": [
        {
          "flags": "--json",
          "long": "--json",
          "description": "Output as JSON for machine consumption",
          "type": "boolean",
          "required": false
        }
      ],
      "examples": [],
      "children": []
    },
    {
      "id": "sonar-system-reset",
      "name": "reset",
      "fullName": "sonar system reset",
      "description": "Reset the CLI to factory defaults: remove tokens, binaries, integrations, and cached files. Telemetry settings are preserved.",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 2,
      "parentId": "sonar-system",
      "arguments": [],
      "options": [
        {
          "flags": "--force",
          "long": "--force",
          "description": "Skip the interactive confirmation prompt (required for non-interactive use)",
          "type": "boolean",
          "required": false
        }
      ],
      "examples": [],
      "children": []
    },
    {
      "id": "sonar-self-update",
      "name": "self-update",
      "fullName": "sonar self-update",
      "description": "Update SonarQube CLI to the latest version",
      "isGroup": false,
      "isRoot": false,
      "requiresAuth": false,
      "depth": 1,
      "parentId": "sonar",
      "arguments": [],
      "options": [
        {
          "flags": "--status",
          "long": "--status",
          "description": "Check for a newer version without installing",
          "type": "boolean",
          "required": false
        },
        {
          "flags": "--force",
          "long": "--force",
          "description": "Install the latest version even if already up to date",
          "type": "boolean",
          "required": false
        }
      ],
      "examples": [],
      "children": []
    }
  ]
}