coxy
v0.0.4
Published
<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/coxy-proxy/coxy/refs/heads/main/assets/header-light.png"> <img alt="Coxy logo" src="https://raw.githubusercontent.com/coxy-proxy/
Downloads
30
Readme
Why?
- You have a lot of free quota on GitHub Copilot, you want to use it like OpenAI-compatible APIs.
- You want the computing power of GitHub Copilot beyond VS Code.
- You want to use modern models like gpt-4.1 free.
- You have multiple GitHub accounts and the free quota is just wasted.
- Host LLM locally and leave the computing remotely.
Features
- Proxies requests to
https://api.githubcopilot.com- Support endpoints:
/chat/completions,/models
- Support endpoints:
- User-friendly admin UI:
- Log in with GitHub and generate tokens
- Add tokens manually
- Manage multiple tokens with ease
- View chat message usage statistics
- Simple chat bot for model evaluation
- Client-side chat session history
How to use
- Start the proxy server
- Option 1: Use Docker
docker run -p 3000:3000 ghcr.io/coxy-proxy/coxy:latest - Option 2: Use
pnpx(recommended) ornpxpnpx coxy
- Option 1: Use Docker
- Browse
http://localhost:3000to generate the token by following the instructions.- Or add your own token manually.
- Set a default token.
- Your OpenAI-compatible API base URL is
http://localhost:3000/api- You can test it like this: (no need authorization header since you've set a default token!)
curl --request POST --url http://localhost:3000/api/chat/completions --header 'content-type: application/json' \ --data '{ "model": "gpt-4", "messages": [{"role": "user", "content": "Hi"}] }'- You still can set a token in the request header
authorization: Bearer <token>and it will override the default token.
- (Optional) Use environment variable
PORTfor setting different port other than3000.
Available environment variables
PORT: Port number to listen on (default:3000)LOG_LEVEL: Log level of pino (default:info)DATABASE_URL: Database URL for Prisma (currently only supports sqlite). Should start withfile:. (default:file:../coxy.db)- The relative path will be resolved to the absolute path at runtime.
Advanced usage
- Dummy token
_to make coxy use the default token.- In most cases, the default token just works without 'Authorization' header. But if your LLM client requires a non-empty API key, you can use the special dummy token
_to make coxy use the default token.
- In most cases, the default token just works without 'Authorization' header. But if your LLM client requires a non-empty API key, you can use the special dummy token
- Provisioning: launch the CLI with
--provisionto force initialize the database schema via Prisma. - Tips for using docker:
- Mount the sqlite db file from host to persist the tokens and use .env file to set environment variables. Use
--provisionfirst time to initialize the database schema via Prisma, e.g.docker run -p 3000:3000 -v /path/to/sqlite.db:/app/coxy.db -v /path/to/.env:/app/.env ghcr.io/coxy-proxy/coxy:latest --provision
- Mount the sqlite db file from host to persist the tokens and use .env file to set environment variables. Use
Troubleshooting
- I got status code 400 when using GPT-5-mini model.
- Make sure you have enabled "OpenAI GPT-5 mini" in your github account Copilot settings. The URL looks like
https://github.com/settings/copilot/features.
- Make sure you have enabled "OpenAI GPT-5 mini" in your github account Copilot settings. The URL looks like
- I got the error
Fail to load API keyswhen opening API Keys page.- Make sure you have sqlite db file and provisioned correctly.
- I'm using podman and cannot access via
localhost:3000but can access via127.0.0.1:3000.- It seems podman's known issue or bug. Just use
127.0.0.1:3000instead or setting another host name, like127.0.0.1 coxy, in your/etc/hostsfile.
- It seems podman's known issue or bug. Just use
Use cases
- Use with LLM CLI locally.
- Chat with GitHub Copilot by Open WebUI.
Requirements
- Node.js 22 or higher
References
- https://www.npmjs.com/package/@github/copilot-language-server
- https://github.com/B00TK1D/copilot-api
- https://github.com/ericc-ch/copilot-api
- https://hub.docker.com/r/mouxan/copilot
Licensed under the MIT License.
