{
  "id": "github-copilot",
  "activation": {
    "onStartup": false
  },
  "enabledByDefault": true,
  "providers": [
    "github-copilot"
  ],
  "providerEndpoints": [
    {
      "endpointClass": "github-copilot-native",
      "hostSuffixes": [
        ".githubcopilot.com"
      ]
    }
  ],
  "providerRequest": {
    "providers": {
      "github-copilot": {
        "family": "github-copilot"
      }
    }
  },
  "modelCatalog": {
    "providers": {
      "github-copilot": {
        "baseUrl": "https://api.individual.githubcopilot.com",
        "api": "openai-responses",
        "models": [
          {
            "id": "claude-fable-5",
            "name": "Claude Fable 5",
            "api": "anthropic-messages",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1000000,
            "maxTokens": 128000,
            "cost": {
              "input": 10,
              "output": 50,
              "cacheRead": 1,
              "cacheWrite": 12.5
            },
            "compat": {
              "codeMode": "capable"
            }
          },
          {
            "id": "claude-opus-5",
            "name": "Claude Opus 5",
            "api": "anthropic-messages",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1000000,
            "maxTokens": 128000,
            "cost": {
              "input": 5,
              "output": 25,
              "cacheRead": 0.5,
              "cacheWrite": 6.25
            },
            "compat": {
              "codeMode": "capable",
              "supportsReasoningEffort": true,
              "supportedReasoningEfforts": [
                "low",
                "medium",
                "high",
                "xhigh",
                "max"
              ]
            }
          },
          {
            "id": "claude-sonnet-5",
            "name": "Claude Sonnet 5",
            "api": "anthropic-messages",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1000000,
            "maxTokens": 128000,
            "cost": {
              "input": 2,
              "output": 10,
              "cacheRead": 0.2,
              "cacheWrite": 2.5
            },
            "compat": {
              "codeMode": "capable"
            }
          },
          {
            "id": "claude-haiku-4.5",
            "name": "Claude Haiku 4.5",
            "api": "anthropic-messages",
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 200000,
            "maxTokens": 64000,
            "cost": {
              "input": 1,
              "output": 5,
              "cacheRead": 0.1,
              "cacheWrite": 1.25
            }
          },
          {
            "id": "claude-opus-4.8",
            "name": "Claude Opus 4.8",
            "api": "anthropic-messages",
            "status": "deprecated",
            "replacedBy": "claude-opus-5",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1000000,
            "maxTokens": 128000,
            "cost": {
              "input": 5,
              "output": 25,
              "cacheRead": 0.5,
              "cacheWrite": 6.25
            }
          },
          {
            "id": "claude-sonnet-4.6",
            "name": "Claude Sonnet 4.6",
            "api": "anthropic-messages",
            "status": "deprecated",
            "replacedBy": "claude-sonnet-5",
            "reasoning": true,
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1000000,
            "maxTokens": 128000,
            "cost": {
              "input": 3,
              "output": 15,
              "cacheRead": 0.3,
              "cacheWrite": 3.75
            }
          },
          {
            "id": "gemini-3.6-flash",
            "name": "Gemini 3.6 Flash",
            "api": "openai-completions",
            "compat": {
              "supportsStore": false,
              "supportsDeveloperRole": false,
              "supportsUsageInStreaming": false,
              "maxTokensField": "max_tokens"
            },
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1048576,
            "maxTokens": 65536,
            "cost": {
              "input": 1.5,
              "output": 7.5,
              "cacheRead": 0.15,
              "cacheWrite": 0
            }
          },
          {
            "id": "gemini-3.1-pro-preview",
            "name": "Gemini 3.1 Pro Preview",
            "api": "openai-completions",
            "compat": {
              "supportsStore": false,
              "supportsDeveloperRole": false,
              "supportsUsageInStreaming": false,
              "maxTokensField": "max_tokens"
            },
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1048576,
            "maxTokens": 65536,
            "cost": {
              "input": 2,
              "output": 12,
              "cacheRead": 0.2,
              "cacheWrite": 0
            }
          },
          {
            "id": "gemini-3.5-flash",
            "name": "Gemini 3.5 Flash",
            "api": "openai-completions",
            "compat": {
              "supportsStore": false,
              "supportsDeveloperRole": false,
              "supportsUsageInStreaming": false,
              "maxTokensField": "max_tokens"
            },
            "status": "deprecated",
            "replacedBy": "gemini-3.6-flash",
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1048576,
            "maxTokens": 65536,
            "cost": {
              "input": 1.5,
              "output": 9,
              "cacheRead": 0.15,
              "cacheWrite": 0
            }
          },
          {
            "id": "gemini-2.5-pro",
            "name": "Gemini 2.5 Pro",
            "api": "openai-completions",
            "compat": {
              "supportsStore": false,
              "supportsDeveloperRole": false,
              "supportsUsageInStreaming": false,
              "maxTokensField": "max_tokens"
            },
            "status": "deprecated",
            "replacedBy": "gemini-3.1-pro-preview",
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1048576,
            "maxTokens": 65536,
            "cost": {
              "input": 1.25,
              "output": 10,
              "cacheRead": 0.125,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.6-sol",
            "name": "GPT-5.6 Sol",
            "reasoning": true,
            "thinkingLevelMap": {
              "minimal": "low",
              "xhigh": "xhigh",
              "max": "max"
            },
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1050000,
            "contextTokens": 922000,
            "maxTokens": 128000,
            "cost": {
              "input": 5,
              "output": 30,
              "cacheRead": 0.5,
              "cacheWrite": 0
            },
            "compat": {
              "codeMode": "capable",
              "supportedReasoningEfforts": [
                "none",
                "low",
                "medium",
                "high",
                "xhigh",
                "max"
              ]
            }
          },
          {
            "id": "gpt-5.6-terra",
            "name": "GPT-5.6 Terra",
            "reasoning": true,
            "thinkingLevelMap": {
              "minimal": "low",
              "xhigh": "xhigh",
              "max": "max"
            },
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1050000,
            "contextTokens": 922000,
            "maxTokens": 128000,
            "cost": {
              "input": 2.5,
              "output": 15,
              "cacheRead": 0.25,
              "cacheWrite": 0
            },
            "compat": {
              "codeMode": "capable",
              "supportedReasoningEfforts": [
                "none",
                "low",
                "medium",
                "high",
                "xhigh",
                "max"
              ]
            }
          },
          {
            "id": "gpt-5.6-luna",
            "name": "GPT-5.6 Luna",
            "reasoning": true,
            "thinkingLevelMap": {
              "minimal": "low",
              "xhigh": "xhigh",
              "max": "max"
            },
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1050000,
            "contextTokens": 922000,
            "maxTokens": 128000,
            "cost": {
              "input": 1,
              "output": 6,
              "cacheRead": 0.1,
              "cacheWrite": 0
            },
            "compat": {
              "codeMode": "capable",
              "supportedReasoningEfforts": [
                "none",
                "low",
                "medium",
                "high",
                "xhigh",
                "max"
              ]
            }
          },
          {
            "id": "gpt-5.3-codex",
            "name": "GPT-5.3-Codex",
            "reasoning": true,
            "thinkingLevelMap": {
              "minimal": "low",
              "xhigh": "xhigh",
              "max": null
            },
            "compat": {
              "supportedReasoningEfforts": [
                "low",
                "medium",
                "high",
                "xhigh"
              ]
            },
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "contextTokens": 272000,
            "maxTokens": 128000,
            "cost": {
              "input": 1.75,
              "output": 14,
              "cacheRead": 0.175,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.4",
            "name": "GPT-5.4",
            "status": "deprecated",
            "replacedBy": "gpt-5.6-terra",
            "reasoning": true,
            "thinkingLevelMap": {
              "minimal": "low",
              "xhigh": "xhigh",
              "max": null
            },
            "compat": {
              "supportedReasoningEfforts": [
                "none",
                "low",
                "medium",
                "high",
                "xhigh"
              ]
            },
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1050000,
            "maxTokens": 128000,
            "cost": {
              "input": 2.5,
              "output": 15,
              "cacheRead": 0.25,
              "cacheWrite": 0
            }
          },
          {
            "id": "gpt-5.5",
            "name": "GPT-5.5",
            "status": "deprecated",
            "replacedBy": "gpt-5.6-sol",
            "reasoning": true,
            "thinkingLevelMap": {
              "minimal": "low",
              "xhigh": "xhigh",
              "max": null
            },
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 1050000,
            "contextTokens": 272000,
            "maxTokens": 128000,
            "cost": {
              "input": 5,
              "output": 30,
              "cacheRead": 0.5,
              "cacheWrite": 0
            },
            "compat": {
              "codeMode": "capable",
              "supportedReasoningEfforts": [
                "none",
                "low",
                "medium",
                "high",
                "xhigh"
              ]
            }
          },
          {
            "id": "gpt-5.4-mini",
            "name": "GPT-5.4 mini",
            "status": "deprecated",
            "replacedBy": "gpt-5.6-luna",
            "reasoning": true,
            "thinkingLevelMap": {
              "minimal": "low",
              "xhigh": "xhigh",
              "max": null
            },
            "compat": {
              "supportedReasoningEfforts": [
                "none",
                "low",
                "medium",
                "high",
                "xhigh"
              ]
            },
            "input": [
              "text",
              "image"
            ],
            "contextWindow": 400000,
            "contextTokens": 272000,
            "maxTokens": 128000,
            "cost": {
              "input": 0.75,
              "output": 4.5,
              "cacheRead": 0.075,
              "cacheWrite": 0
            }
          },
          {
            "id": "raptor-mini",
            "name": "Raptor mini",
            "input": [
              "text"
            ],
            "contextWindow": 128000,
            "maxTokens": 8192,
            "cost": {
              "input": 0.25,
              "output": 2,
              "cacheRead": 0.025,
              "cacheWrite": 0
            }
          }
        ]
      }
    },
    "discovery": {
      "github-copilot": "refreshable"
    }
  },
  "contracts": {
    "embeddingProviders": [
      "github-copilot"
    ],
    "usageProviders": [
      "github-copilot"
    ]
  },
  "setup": {
    "providers": [
      {
        "id": "github-copilot",
        "envVars": [
          "COPILOT_GITHUB_TOKEN",
          "GH_TOKEN",
          "GITHUB_TOKEN"
        ]
      }
    ]
  },
  "providerAuthChoices": [
    {
      "provider": "github-copilot",
      "method": "device",
      "choiceId": "github-copilot",
      "appGuidedAuth": "device-code",
      "appGuidedSecret": true,
      "choiceLabel": "GitHub Copilot",
      "choiceHint": "Device login with your GitHub account",
      "assistantPriority": 1,
      "groupId": "copilot",
      "groupLabel": "Copilot",
      "groupHint": "GitHub, GitHub Enterprise + Local Proxy",
      "optionKey": "githubCopilotToken",
      "cliFlag": "--github-copilot-token",
      "cliOption": "--github-copilot-token <token>",
      "cliDescription": "GitHub Copilot OAuth token"
    },
    {
      "provider": "github-copilot",
      "method": "device-enterprise",
      "choiceId": "github-copilot-enterprise",
      "appGuidedAuth": "device-code",
      "choiceLabel": "GitHub Copilot (Enterprise / data residency)",
      "choiceHint": "Device login against your GitHub Enterprise (*.ghe.com) tenant",
      "assistantPriority": 2,
      "groupId": "copilot",
      "groupLabel": "Copilot",
      "groupHint": "GitHub, GitHub Enterprise + Local Proxy"
    }
  ],
  "configSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "discovery": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        }
      }
    }
  },
  "uiHints": {
    "discovery": {
      "label": "Model Discovery",
      "help": "Plugin-owned controls for GitHub Copilot model auto-discovery."
    },
    "discovery.enabled": {
      "label": "Enable Discovery",
      "help": "When false, OpenClaw keeps the GitHub Copilot plugin available but skips implicit startup discovery from ambient Copilot credentials."
    }
  }
}
