A FastAPI proxy server that seamlessly turns GitHub Copilot's chat completion capabilities into OpenAI compatible API service.
🚀 Advanced Integration
- Seamless GitHub Copilot chat completion API proxy
- Real-time streaming response support
- High-performance request handling
🔐 Security & Reliability
- Secure authentication middleware
- Automatic token management and refresh
- Built-in CORS support for web applications
💻 Universal Compatibility
- Cross-platform support (Windows and Unix-based systems)
- Docker containerization ready
- Flexible deployment options
- Python 3.10+
- pip (Python package manager)
- GitHub Copilot subscription
- GitHub authentication token
- Clone the repository:
git clone https://github.com/yuchanns/copilot-openai-api.git
cd copilot_provider
- Install dependencies:
# Install PDM first if you haven't
pip install -U pdm
# Install project dependencies using PDM
pdm install --prod
- Set up environment variables:
# Windows
set COPILOT_TOKEN=your_access_token_here
set COPILOT_SERVER_PORT=9191 # Optional: Server port (default: 9191)
set COPILOT_SERVER_WORKERS=4 # Optional: Number of workers (default: min(CPU_COUNT, 4))
# Unix/Linux/macOS
export COPILOT_TOKEN=your_access_token_here
export COPILOT_SERVER_PORT=9191 # Optional: Server port (default: 9191)
export COPILOT_SERVER_WORKERS=4 # Optional: Number of workers (default: min(CPU_COUNT, 4))
📝 Note:
COPILOT_TOKEN
: Required for authentication. If not set, a random token will be generated.COPILOT_SERVER_PORT
: Optional. Controls which port the server listens on.COPILOT_SERVER_WORKERS
: Optional. Controls the number of worker processes.
- Configure GitHub Copilot:
- Windows users: Check
%LOCALAPPDATA%/github-copilot/
- Unix/Linux/macOS users: Check
~/.config/github-copilot/
- Windows users: Check
Required configuration files:
apps.json
orhosts.json
(containing GitHub OAuth token)token.json
(will be created automatically)
💡 How to get a valid Github Copilot configuration?
Choose any of these official GitHub Copilot plugins:
- GitHub Copilot for VS Code
- GitHub Copilot for Visual Studio
- GitHub Copilot for Vim
- GitHub Copilot for JetBrains IDEs
After installing and signing in, configuration files will be automatically created in your system's config directory.
Choose between local or Docker deployment:
Start the server with:
pdm dev
Launch the containerized version:
# Unix/Linux/macOS
docker run --rm -p 9191:9191 \
-v ~/.config/github-copilot:/home/appuser/.config/github-copilot \
ghcr.io/yuchanns/copilot-openai-api
# Windows
docker run --rm -p 9191:9191 ^
-v %LOCALAPPDATA%/github-copilot:/home/appuser/.config/github-copilot ^
ghcr.io/yuchanns/copilot-openai-api
The Docker setup:
- Maps port 9191 to your host
- Mounts your Copilot configuration
- Provides identical functionality to local deployment
Access the chat completion endpoint:
curl -X POST http://localhost:9191/chat/completions \
-H "Authorization: Bearer your_access_token_here" \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "Hello, Copilot!"}]
}'
Proxies requests to GitHub Copilot's API.
Required Headers:
Authorization: Bearer <your_access_token>
Content-Type: application/json
Request Body:
- Follow GitHub Copilot chat completion API format
Response:
- Streams responses directly from GitHub Copilot's API
Secure your endpoints:
- Set
COPILOT_TOKEN
in your environment - Include in request headers:
Authorization: Bearer your_access_token_here
The server provides clear error responses:
- 401: Missing/invalid authorization header
- 403: Invalid access token
- Other errors are propagated from GitHub Copilot API
- Configure CORS for your specific domains (default:
*
) - Safeguard your
COPILOT_TOKEN
and GitHub OAuth token - Built-in token management with concurrent access protection
Licensed under the Apache License 2.0 - see the LICENSE file for details.