This project creates a proxy for OpenRouter that modifies API responses to work with Xcode 26 beta as a model provider. The proxy transforms OpenRouter responses to match OpenAI's format, which is required by Xcode's native AI integration.
/modelsendpoint returns models in OpenAI format/chat/completionsendpoint proxies requests directly to OpenRouter- Containerized with Docker
 - Standalone pre-compiled executable
 
- Create docker-compose.yml (already created in project)
 - Start the service:
 
docker-compose upTo use a different host port (e.g., 9090):
HOST_PORT=9090 docker-compose up- Build the Docker image:
 
docker build -t openrouter-proxy ./proxy- Run the container:
 
docker run --rm -p ${HOST_PORT:-8080}:8080 openrouter-proxy- Make the build script executable:
 
chmod +x build_executable.sh- Build the standalone executable:
 
./build_executable.sh- Run the executable (default port 8080):
 
./proxy/dist/appTo run on a different port (e.g., 9090):
PORT=9090 ./proxy/dist/appDISABLE_SSL_VERIFY: Set to 'true' to disable SSL verification (useful for debugging with proxies like Charles). Default: SSL verification is enabled.MODEL_FILTER_FILE: Set to the absolute path of a text file containing allowed model IDs (one per line). If set, the/v1/modelsendpoint will only return models whose IDs are in this file.
- 
Setting > Intelligence > Add a Model Provider...
- URL: http://localhost:8080
 - API Key: Bearer sk-...
 - API Key Header: Authorization
 - Description: OpenRouter
 
 
When using a debugging proxy like Proxyman, you might encounter SSL certificate verification errors. To resolve this:
- Set the 
DISABLE_SSL_VERIFYenvironment variable totrue: 
# For Docker Compose
DISABLE_SSL_VERIFY=true docker-compose up
# For standalone executable
DISABLE_SSL_VERIFY=true ./proxy/dist/app- Trust Proxyman's root certificate in your system keychain (macOS):
- Open Proxyman
 - Go to Certificate → Install Certificate on This Mac...
 - Follow prompts to add to System keychain
 - Open Keychain Access, find "Proxyman" certificate
 - Double-click it, expand Trust, and set "When using this certificate" to "Always Trust"
 
 
Important Security Note: Disabling SSL verification should only be done for debugging purposes. Never use this in production environments as it makes connections vulnerable to man-in-the-middle attacks.
- Get models in OpenAI format: 
GET http://localhost:8080/models(include your OpenRouter API key in the Authorization header) - Use chat completions: 
POST http://localhost:8080/chat/completionswith your request payload and Authorization header