{"_id":"@ace-ify/copilot-claude-proxy","_rev":"12-366534461f07c6c4adcfbbd2a51f126e","name":"@ace-ify/copilot-claude-proxy","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.1":{"name":"@ace-ify/copilot-claude-proxy","version":"1.0.1","keywords":["copilot","claude","proxy","anthropic","github","ai","openai-compatible"],"author":{"name":"Naimish Singh"},"license":"MIT","_id":"@ace-ify/copilot-claude-proxy@1.0.1","maintainers":[{"name":"naimish21","email":"21naimish21@gmail.com"}],"bin":{"copilot-claude-proxy":"src/server.js"},"dist":{"shasum":"2ebe38d54d9f0ff6063e097ca531c4aa51ec57cc","tarball":"https://registry.npmjs.org/@ace-ify/copilot-claude-proxy/-/copilot-claude-proxy-1.0.1.tgz","fileCount":6,"integrity":"sha512-qbiy2fwLnkHExYEcl/x3AKxdNsKlHRZD1SoBANxMUdVaXLCGtPAer1WU9ZhYWs38yrCe0tRs4qQYOoujKuc2zw==","signatures":[{"sig":"MEYCIQCPgrxEso/IKzoC1h7spbR/Yt+eq1LHdpXLXYW5SG9ErgIhAJ0NSY0UJ+Njw/F0x09JMvFDHE/Lv56dq4fqVUBPNXrK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144349},"main":"src/server.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"76ad468ca4c57482c29ee98acdd5729ecfb1aadf","scripts":{"start":"node src/server.js"},"_npmUser":{"name":"naimish21","email":"21naimish21@gmail.com"},"_npmVersion":"11.8.0","description":"Local compatibility proxy that accepts Anthropic-style POST /v1/messages calls and forwards them to GitHub Copilot's OpenAI-compatible endpoint. Ideal for using Claude Code with Copilot models.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"dotenv":"^16.4.5","express":"^4.21.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/copilot-claude-proxy_1.0.1_1776934096629_0.2729109393533693","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@ace-ify/copilot-claude-proxy","version":"1.0.2","keywords":["copilot","claude","proxy","anthropic","github","ai","openai-compatible"],"author":{"name":"Naimish Singh"},"license":"MIT","_id":"@ace-ify/copilot-claude-proxy@1.0.2","maintainers":[{"name":"naimish21","email":"21naimish21@gmail.com"}],"bin":{"copilot-claude-proxy":"src/server.js"},"dist":{"shasum":"4adf0cddabf3b10839c8d4cca60479edf84df497","tarball":"https://registry.npmjs.org/@ace-ify/copilot-claude-proxy/-/copilot-claude-proxy-1.0.2.tgz","fileCount":6,"integrity":"sha512-uY2+kmOm+LbTlCaKmxfbydvUmJwkzbCzFJdi12r8CTcqk9aT7O9ZyQy/ncEquqFhUMKCvrRQYF45O36OJ5zUaw==","signatures":[{"sig":"MEQCIG5O45S+lOIZo0ZTPMQ8Qprwqu086Wpu4X2ubUfzIFQkAiBjVr9RSB7Z1cf8l+u+14d8Amu2wWCJu7NoPMxPqLefMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144358},"main":"src/server.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"9d0c9869f73602e58f64e5b67a89bd5c1fe46c8d","scripts":{"start":"node src/server.js"},"_npmUser":{"name":"naimish21","email":"21naimish21@gmail.com"},"_npmVersion":"11.8.0","description":"Local compatibility proxy that accepts Anthropic-style POST /v1/messages calls and forwards them to GitHub Copilot's OpenAI-compatible endpoint. Ideal for using Claude Code with Copilot models.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"dotenv":"^16.4.5","express":"^4.21.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/copilot-claude-proxy_1.0.2_1776937293931_0.8296124587912506","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@ace-ify/copilot-claude-proxy","version":"1.0.3","keywords":["copilot","claude","proxy","anthropic","github","ai","openai-compatible"],"author":{"name":"Naimish Singh"},"license":"MIT","_id":"@ace-ify/copilot-claude-proxy@1.0.3","maintainers":[{"name":"naimish21","email":"21naimish21@gmail.com"}],"bin":{"copilot-claude-proxy":"src/server.js"},"dist":{"shasum":"95f1a989d8183bde1258e42153e6d1255be8a6aa","tarball":"https://registry.npmjs.org/@ace-ify/copilot-claude-proxy/-/copilot-claude-proxy-1.0.3.tgz","fileCount":6,"integrity":"sha512-0fQQkJ6GioLS+gjAq5Kbs9metrxwQ+YHEmUh4sLYXGsw/yfJ14zhZiBC0NbQEiWjxeJjR3cSvbYHYbJPcW2HTA==","signatures":[{"sig":"MEYCIQCKyPuqhegXV5ba2Q8qG+WKitzlCJ1fbpqQk5pmhyIu4gIhAKPBE4JItMXcCc71/AllO0KWU9fUx/9nX47xMBkwHAq6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144412},"main":"src/server.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"986630653e88564ae00de0b62a256c0d5a6847c2","scripts":{"start":"node src/server.js"},"_npmUser":{"name":"naimish21","email":"21naimish21@gmail.com"},"_npmVersion":"11.8.0","description":"Local compatibility proxy that accepts Anthropic-style POST /v1/messages calls and forwards them to GitHub Copilot's OpenAI-compatible endpoint. Ideal for using Claude Code with Copilot models.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"dotenv":"^16.4.5","express":"^4.21.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/copilot-claude-proxy_1.0.3_1776937656188_0.2816921452483323","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@ace-ify/copilot-claude-proxy","version":"1.0.4","keywords":["copilot","claude","proxy","anthropic","github","ai","openai-compatible"],"author":{"name":"Naimish Singh"},"license":"MIT","_id":"@ace-ify/copilot-claude-proxy@1.0.4","maintainers":[{"name":"naimish21","email":"21naimish21@gmail.com"}],"bin":{"copilot-claude-proxy":"src/server.js"},"dist":{"shasum":"66386d0963f7141ba1dcc59cbf2ce7fcb2efff98","tarball":"https://registry.npmjs.org/@ace-ify/copilot-claude-proxy/-/copilot-claude-proxy-1.0.4.tgz","fileCount":6,"integrity":"sha512-VdLtYBzt1wj2kFQ1RxMa25MpfULGFc341bRpWtS7fIgVk0Nbf6WPDNHwclhd/zsz3L3pJKT5R3lZ8sqDKRR8uw==","signatures":[{"sig":"MEUCIQDzkYsCTZHpN5mO0j0sis0/q3FOFyu8BsSI2/JTTYPZGwIgcVNMPZMhoJIqOXwbzznkEk9Y3/jCRc6g9uXnpAs/q4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145838},"main":"src/server.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"24504f42c9d0bc79c3e3694321d067927291e1b5","scripts":{"start":"node src/server.js"},"_npmUser":{"name":"naimish21","email":"21naimish21@gmail.com"},"_npmVersion":"11.8.0","description":"Local compatibility proxy that accepts Anthropic-style POST /v1/messages calls and forwards them to GitHub Copilot's OpenAI-compatible endpoint. Ideal for using Claude Code with Copilot models.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"dotenv":"^16.4.5","express":"^4.21.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/copilot-claude-proxy_1.0.4_1776939515700_0.904244602055849","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@ace-ify/copilot-claude-proxy","version":"1.0.5","type":"module","description":"Local compatibility proxy that accepts Anthropic-style POST /v1/messages calls and forwards them to GitHub Copilot's OpenAI-compatible endpoint. Ideal for using Claude Code with Copilot models.","main":"src/server.js","bin":{"copilot-claude-proxy":"src/server.js"},"scripts":{"start":"node src/server.js"},"engines":{"node":">=20.0.0"},"dependencies":{"dotenv":"^16.4.5","express":"^4.21.2"},"keywords":["copilot","claude","proxy","anthropic","github","ai","openai-compatible"],"author":{"name":"Naimish Singh"},"license":"MIT","gitHead":"4412f174c0428411f2a1e6c07aa1deb65fdfc59f","_id":"@ace-ify/copilot-claude-proxy@1.0.5","_nodeVersion":"24.7.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-Tt248ziN2wBTDkQWWlOEL1p1DkGIe1Zw7NGzXP2t5L/zv+qdwJmjhcqqgduz5PxhJ9WYFvIfEfuXHRyGck4xZA==","shasum":"8ab680849956eeee1f628b7f2ce1f9d47ecfde2d","tarball":"https://registry.npmjs.org/@ace-ify/copilot-claude-proxy/-/copilot-claude-proxy-1.0.5.tgz","fileCount":6,"unpackedSize":147759,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDdt0Koi4V2jNz4XjcOsVyn4/vtgASw5BqpNJq/8xu4twIgLN57l5N3w1oIS/z1PbAsMiYdDtV6gvt0HaaLWKpPNZM="}]},"_npmUser":{"name":"naimish21","email":"21naimish21@gmail.com"},"directories":{},"maintainers":[{"name":"naimish21","email":"21naimish21@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/copilot-claude-proxy_1.0.5_1777548072877_0.33700151916862797"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-23T08:48:16.535Z","modified":"2026-04-30T11:21:13.202Z","0.1.0":"2026-04-23T06:41:49.234Z","0.1.1":"2026-04-23T07:35:33.978Z","1.0.0":"2026-04-23T07:56:51.596Z","1.0.1":"2026-04-23T08:48:16.780Z","1.0.2":"2026-04-23T09:41:34.186Z","1.0.3":"2026-04-23T09:47:36.351Z","1.0.4":"2026-04-23T10:18:35.839Z","1.0.5":"2026-04-30T11:21:13.047Z"},"author":{"name":"Naimish Singh"},"license":"MIT","keywords":["copilot","claude","proxy","anthropic","github","ai","openai-compatible"],"description":"Local compatibility proxy that accepts Anthropic-style POST /v1/messages calls and forwards them to GitHub Copilot's OpenAI-compatible endpoint. Ideal for using Claude Code with Copilot models.","maintainers":[{"name":"naimish21","email":"21naimish21@gmail.com"}],"readme":"# Copilot Claude Proxy \r\n\r\n> **⚠️ Disclaimer:** This is an unofficial, experimental tool. It interfaces with GitHub Copilot endpoints in ways that may not be officially supported for third-party clients. Users are responsible for complying with GitHub's and Anthropic's Terms of Service. Use at your own risk. The author is not responsible for blocked accounts or ToS violations.\r\n\r\nA local compatibility proxy that accepts Anthropic-style `POST /v1/messages` calls and forwards them to the GitHub Copilot OpenAI-compatible chat endpoint. Ideal for using [Claude Code](https://github.com/anthropics/claude-code) with your existing Copilot models.\r\n\r\nThis is intended for personal, authorized use only.\r\n\r\n## 🚀 Quick Start (Zero Install)\r\n\r\nYou can run this proxy directly using `npx` without needing to clone the repository or manually install dependencies.\r\n\r\n1. Open your terminal and run:\r\n\r\n```bash\r\nnpx @ace-ify/copilot-claude-proxy\r\n```\r\n\r\n2. The server will start on `http://127.0.0.1:2169` by default.\r\n\r\n3. Open the **Admin UI** at `http://127.0.0.1:2169/admin` in your browser.\r\n\r\n4. Click **Connect Copilot** to authenticate via the GitHub OAuth device flow. This securely generates a token used to forward requests to GitHub models.\r\n\r\n5. Select your preferred model and click **Enable Proxy**. This will automatically patch your Claude settings.\r\n\r\n## 🛠️ Local Setup (For Developers)\r\n\r\nIf you prefer to run it locally from source:\r\n\r\n1. Clone the repository and install dependencies:\r\n```bash\r\ngit clone https://github.com/ace-ify/copilot-claude-proxy.git\r\ncd copilot-claude-proxy\r\nnpm install\r\n```\r\n\r\n2. (Optional) Create an `.env` file:\r\n```bash\r\ncopy .env.example .env\r\n```\r\n\r\n3. Run the server:\r\n```bash\r\nnpm start\r\n```\r\n\r\n## ⚙️ Configuration (Environment Variables)\r\n\r\nThe proxy comes with sensible defaults, but you can override them using environment variables. \r\n\r\n| Variable | Default | Purpose |\r\n| :--- | :--- | :--- |\r\n| `PORT` | `2169` | Local listen port. |\r\n| `COPILOT_ACCESS_TOKEN` | `null` | Your GitHub Copilot access token. If you use the Web UI to login, you don't need to set this. |\r\n| `GITHUB_TOKEN` | `null` | Fallback if `COPILOT_ACCESS_TOKEN` is unset. |\r\n| `DEFAULT_MODEL` | `gpt-5.3-codex` | Fallback model if the incoming request omits a model. |\r\n| `ADMIN_MODEL_ALLOWLIST` | *multiple* | Comma-separated model IDs visible in the Admin UI dropdown. |\r\n\r\n*Note: For a full list of advanced tuning variables (endpoint overrides, caching TTLs, beta headers), please check `src/server.js`.*\r\n\r\n## 🧠 How it Works & Routing\r\n\r\nThis proxy acts as a bridge between your local tools (like Claude Code) and GitHub Copilot's upstream APIs. \r\n\r\n1. **Model Discovery:** The proxy checks Copilot `/models` and inspects each model's `supported_endpoints`.\r\n2. **Anthropic Native:** If a model supports `/v1/messages` natively, the proxy forwards directly to Copilot `/v1/messages`.\r\n3. **Responses API:** If a model supports `/responses`, the proxy uses `/responses` (supporting both non-streaming and streaming).\r\n4. **OpenAI Fallback:** Otherwise, it falls back to Copilot `/chat/completions` and performs Anthropic <-> OpenAI mapping on the fly.\r\n\r\n### Endpoints\r\n- `POST /v1/messages`: Anthropic-like messages payload mapped to Copilot.\r\n- `GET /healthz`: Health check endpoint.\r\n- `/admin/*`: Internal endpoints for the dashboard (status, trace, live metrics, auth).\r\n\r\n## 🔒 Security Notes\r\n\r\n- **Keep this local only (`127.0.0.1`)** unless you intentionally add auth and network controls.\r\n- **Do not share your token.**\r\n- Copilot upstream model availability depends on your GitHub Copilot entitlement and account policy.\r\n- Upstream schema or policy changes may require adapter updates.\r\n\r\n## 📄 License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.","readmeFilename":"README.md"}