From 49a8b33d52821dbedb1337cade4704b138876676 Mon Sep 17 00:00:00 2001 From: Suyash Srijan Date: Sun, 15 Mar 2026 06:25:02 +0000 Subject: [PATCH] Add proxy server warning and testing doc link to README --- README.md | 4 ++++ proxy-server/docs/TESTING.md | 1 + 2 files changed, 5 insertions(+) diff --git a/README.md b/README.md index 63b5475..b4f6871 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,14 @@ A proxy API server that lets you use GitHub Copilot in Xcode, either as a custom - [Launchd agent](#launchd-agent) - [CLI reference](#cli-reference) - [Security](#security) +- [Testing](proxy-server/docs/TESTING.md) - [License](#license) ## Why +> [!WARNING] +> Most other Copilot proxy servers (whether remote or local) work by reverse-engineering private Copilot APIs and spoofing the user-agent to impersonate VS Code. GitHub's abuse detection [flags this kind of usage](https://github.com/orgs/community/discussions/160013) and can restrict or suspend your Copilot access. The proxy projects [themselves warn about this risk](https://github.com/ericc-ch/copilot-api#important-notes). You should avoid using any of those servers. This server uses the official [Copilot SDK](https://github.com/github/copilot-sdk), which is the sanctioned way to build on top of Copilot. + Xcode 26 added support for third-party LLM providers, but it only supports ChatGPT and Claude out of the box. If you have a GitHub Copilot subscription, there's no built-in way to use it. This server wraps the [GitHub Copilot SDK](https://github.com/github/copilot-sdk) and exposes it as an API that Xcode can talk to. It's built on [copilot-sdk-proxy](https://github.com/theblixguy/copilot-sdk-proxy), which handles the SDK integration and protocol translation. It supports three providers: diff --git a/proxy-server/docs/TESTING.md b/proxy-server/docs/TESTING.md index eea56dc..3df403a 100644 --- a/proxy-server/docs/TESTING.md +++ b/proxy-server/docs/TESTING.md @@ -94,6 +94,7 @@ Per-provider coverage: These test things that llm-mock-server can't simulate: - Session error mid-stream (no deltas, partial deltas) +- Prompt send failure (session.send() rejection) - Context compaction events - Reasoning block structure (Claude thinking blocks, Codex reasoning summary events) - Tool execution event logging