{"_id":"@aurora0201/codex-router","_rev":"2-17453f6051a27d6661ea05577d5f06b8","name":"@aurora0201/codex-router","dist-tags":{"latest":"0.2.1"},"versions":{"0.2.0":{"name":"@aurora0201/codex-router","version":"0.2.0","keywords":["codex","openai","gateway","proxy"],"license":"MIT","_id":"@aurora0201/codex-router@0.2.0","maintainers":[{"name":"aurora0201","email":"1176302809@qq.com"}],"homepage":"https://github.com/Aurora0201/codex-router#readme","bugs":{"url":"https://github.com/Aurora0201/codex-router/issues"},"os":["win32"],"bin":{"codex-router":"dist/cli.js"},"cpu":["x64"],"dist":{"shasum":"dd35b2d3ac64be6fd61d001ceabc99ad968660e2","tarball":"https://registry.npmjs.org/@aurora0201/codex-router/-/codex-router-0.2.0.tgz","fileCount":166,"integrity":"sha512-o7kQlvXolhnsIDGuUXwuPkvUO8c0cUS27G3DfhJOMUMIiEsHWFINyfiT8l8fzRMLfUEvulDcOB7RTbEQ6uxNLg==","signatures":[{"sig":"MEUCIQDjkTbkzBxsacFS0LevVmJ2TiXUkycz5Ov/FeUsqZ6q+AIgWoLF3i+uldtM3moMzOIM34WSCWryaZoTMIaNuyB1b0M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6001700},"type":"module","_from":"file:C:/Users/11763/AppData/Local/Temp/codex-router-npm-publish-fb0594e5f28b4772b9e8b48fee9e7142/aurora0201-codex-router-0.2.0.tgz","engines":{"node":">=24"},"scripts":{"dev":"tsx watch src/index.ts","lint":"tsc -p tsconfig.json --noEmit","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/index.js","test:e2e":"vitest run test/gateway.e2e.test.ts"},"_npmUser":{"name":"aurora0201","email":"1176302809@qq.com"},"_resolved":"C:\\Users\\11763\\AppData\\Local\\Temp\\codex-router-npm-publish-fb0594e5f28b4772b9e8b48fee9e7142\\aurora0201-codex-router-0.2.0.tgz","_integrity":"sha512-o7kQlvXolhnsIDGuUXwuPkvUO8c0cUS27G3DfhJOMUMIiEsHWFINyfiT8l8fzRMLfUEvulDcOB7RTbEQ6uxNLg==","repository":{"url":"git+https://github.com/Aurora0201/codex-router.git","type":"git"},"_npmVersion":"11.6.2","description":"A loopback-only account router and transparent proxy for Codex CLI.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ws":"^8.21.3","open":"11.0.0","undici":"^8.10.0","fastify":"^5.11.2","commander":"^15.0.0","env-paths":"^2.2.1","@openai/codex":"^0.147.0","better-sqlite3":"^13.0.3","@fastify/static":"^10.1.3","@inquirer/select":"^5.2.1","@fastify/websocket":"^11.3.0","@streamparser/json":"0.0.22"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^8.18.1","@types/better-sqlite3":"^9.6.0"},"_npmOperationalInternal":{"tmp":"tmp/codex-router_0.2.0_1786537477695_0.10006880082454606","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aurora0201/codex-router","version":"0.2.1","description":"A loopback-only account router and transparent proxy for Codex CLI.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/Aurora0201/codex-router.git"},"homepage":"https://github.com/Aurora0201/codex-router#readme","bugs":{"url":"https://github.com/Aurora0201/codex-router/issues"},"keywords":["codex","openai","gateway","proxy"],"type":"module","bin":{"codex-router":"dist/cli.js"},"engines":{"node":">=24"},"os":["win32"],"cpu":["x64"],"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","dev":"tsx watch src/index.ts","lint":"tsc -p tsconfig.json --noEmit","start":"node dist/index.js","test":"vitest run","test:e2e":"vitest run test/gateway.e2e.test.ts"},"dependencies":{"@fastify/static":"^10.1.3","@fastify/websocket":"^11.3.0","@inquirer/select":"^5.2.1","@openai/codex":"^0.147.0","@streamparser/json":"0.0.22","better-sqlite3":"^13.0.3","commander":"^15.0.0","env-paths":"^2.2.1","fastify":"^5.11.2","open":"11.0.0","undici":"^8.10.0","ws":"^8.21.3"},"devDependencies":{"@types/better-sqlite3":"^9.6.0","@types/ws":"^8.18.1"},"_id":"@aurora0201/codex-router@0.2.1","_integrity":"sha512-mYEnCBbABLvx5rymZ66eOV3+dS5BBm4s6/xKACCQOVElcF3fmDHuI6ozKug63gqqsuN/iuzkvhUUlCtKlgKsWA==","_resolved":"C:\\Users\\11763\\AppData\\Local\\Temp\\codex-router-021-verify-bc042b9e41c14ac7b853214af0929dcf\\aurora0201-codex-router-0.2.1.tgz","_from":"file:C:/Users/11763/AppData/Local/Temp/codex-router-021-verify-bc042b9e41c14ac7b853214af0929dcf/aurora0201-codex-router-0.2.1.tgz","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-mYEnCBbABLvx5rymZ66eOV3+dS5BBm4s6/xKACCQOVElcF3fmDHuI6ozKug63gqqsuN/iuzkvhUUlCtKlgKsWA==","shasum":"693872fda79fc30082a2cb7a416e239e9a8cdca0","tarball":"https://registry.npmjs.org/@aurora0201/codex-router/-/codex-router-0.2.1.tgz","fileCount":178,"unpackedSize":6814320,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDqNZmxBqmB3+JWh9mNfX76miLsrEe9O7MF8qaT+vxo1QIhAJLyaZWpz2vu0kGqk7nd5WJKf4yN9hSMDk2M5+J23RGl"}]},"_npmUser":{"name":"aurora0201","email":"1176302809@qq.com"},"directories":{},"maintainers":[{"name":"aurora0201","email":"1176302809@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codex-router_0.2.1_1789219307505_0.09462614999806185"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-12T12:24:37.545Z","modified":"2026-09-12T13:21:47.953Z","0.2.0":"2026-08-12T12:24:38.102Z","0.2.1":"2026-09-12T13:21:47.812Z"},"bugs":{"url":"https://github.com/Aurora0201/codex-router/issues"},"license":"MIT","homepage":"https://github.com/Aurora0201/codex-router#readme","keywords":["codex","openai","gateway","proxy"],"repository":{"type":"git","url":"git+https://github.com/Aurora0201/codex-router.git"},"description":"A loopback-only account router and transparent proxy for Codex CLI.","maintainers":[{"name":"aurora0201","email":"1176302809@qq.com"}],"readme":"<p align=\"center\">\r\n  <picture>\r\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/Aurora0201/codex-router/main/assets/branding/codex-router-logo-dark.png\">\r\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/Aurora0201/codex-router/main/assets/branding/codex-router-logo.png\">\r\n    <img alt=\"Codex Router\" src=\"https://raw.githubusercontent.com/Aurora0201/codex-router/main/assets/branding/codex-router-logo.png\" width=\"680\">\r\n  </picture>\r\n</p>\r\n\r\n<h1 align=\"center\">@aurora0201/codex-router</h1>\r\n\r\n<p align=\"center\">\r\n  面向 Codex CLI 的本机多账号路由器与透明代理。\r\n  <br>\r\n  隔离管理账号，按需开启自动切换与预热，并保留不含数据面正文的结构化请求证据。\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <a href=\"https://github.com/Aurora0201/codex-router/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://github.com/Aurora0201/codex-router/actions/workflows/ci.yml/badge.svg\"></a>\r\n  <a href=\"https://www.npmjs.com/package/@aurora0201/codex-router\"><img alt=\"npm\" src=\"https://img.shields.io/npm/v/%40aurora0201%2Fcodex-router?logo=npm\"></a>\r\n  <img alt=\"Node.js 24+\" src=\"https://img.shields.io/badge/Node.js-24%2B-5FA04E?logo=nodedotjs&logoColor=white\">\r\n  <a href=\"https://github.com/Aurora0201/codex-router/blob/main/LICENSE\"><img alt=\"MIT License\" src=\"https://img.shields.io/github/license/Aurora0201/codex-router\"></a>\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <img alt=\"Codex Router 运行状态管理后台\" src=\"https://raw.githubusercontent.com/Aurora0201/codex-router/main/assets/screenshots/admin-dashboard.png\" width=\"1200\">\r\n</p>\r\n\r\n## 安装\r\n\r\n当前发布包支持 **Windows x64**，需要 **Node.js 24+**。\r\n\r\n```powershell\r\nnpm install --global @aurora0201/codex-router\r\ncodex-router start\r\n```\r\n\r\n打开 <http://127.0.0.1:8317/admin/>，使用 OpenAI 官方 OAuth 添加账号并手动选择当前路由身份。\r\n\r\n```powershell\r\ncodex-router config apply\r\ncodex-router restart\r\ncodex-router status\r\n```\r\n\r\n## 主要能力\r\n\r\n- 每个账号使用独立 `CODEX_HOME`，默认手动选择；可显式开启有记录的自动切换，不跨账号重试当前失败请求。\r\n- 自动预热默认关闭，会实际消费额度；发送前记录尝试，确认五小时窗口运行后才记为成功，未确认时不会自动重复发送。\r\n- 自动预热受账号参与设置、周额度、冷却及每日自动次数上限约束；启动、休眠恢复和窗口到期后先刷新核验。\r\n- 透明转发 Codex HTTP、SSE、WebSocket、compact、models 和 web search 请求。\r\n- 实时展示 API 可用性、活动 WebSocket、对话/Turn 关联和请求诊断。\r\n- Prompt、响应正文、工具参数、工具输出、Authorization 和 Cookie 不进入日志或 SQLite。\r\n- 提供启停、状态、账号选择、日志和 Codex 配置管理 CLI。\r\n\r\n完整文档、安全边界、源码与发布包请访问 [GitHub 仓库](https://github.com/Aurora0201/codex-router)。\r\n\r\n## License\r\n\r\n[MIT](https://github.com/Aurora0201/codex-router/blob/main/LICENSE)\r\n","readmeFilename":"README.md"}