一个本地的 Electron 应用,用于捕获 LLM 网站的浏览器会话,并在本机暴露 OpenAI 兼容 API。它提供控制面板来管理站点、查看捕获请求与测试模型。
语言:中文 | English (README.md)
- OpenAI 兼容 API:
POST /v1/chat/completions、GET /v1/models,以及 Anthropic 原生POST /v1/messages。 - 多站点控制面板:添加/删除站点、打开/刷新窗口、查看请求并选择凭据。
- 凭据捕获:Electron
webRequest、CDP(HTTP + WebSocket),以及可选本地 MITM 代理。 - 适配器体系:将不同站点协议转换为 OpenAI 格式,内置多种特定适配器。
- OAuth 设备码/PKCE 登录:Gemini、OpenAI Codex、Qwen。
- 可选 API Key 校验、模型别名、动态模型发现与刷新策略。
- Claude Code 接管/恢复:将 Claude CLI 指向本地代理。
- 本地持久化与脱敏日志。
- 应用在独立的 Electron 窗口打开目标站点并监听网络流量。
- 捕获规则从请求/响应中提取 Authorization、Cookie、Session ID 等凭据。
- 根据响应内容自动识别模型列表(如可解析)。
- 本地 API 服务器将 OpenAI 规范请求映射到站点适配器。
- 以 OpenAI 兼容 SSE 或 WebSocket 方式返回响应。
安装依赖:
npm install
npm --prefix renderer install构建 UI 并启动:
npm --prefix renderer run build
npm run build
npm run start开发模式(UI 热更新):
npm --prefix renderer run dev
npm run dev应用会打开控制面板,API 默认绑定到 127.0.0.1:8080。
- 打开应用并添加一个目标站点。
- 点击 Open 打开站点窗口。
- 与站点交互以捕获请求。
- 打开 Requests 选择一个请求作为凭据。
- 从 UI 复制模型名称并调用本地 API。
示例:获取模型列表
curl http://127.0.0.1:8080/v1/models示例:Chat Completion
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"your-model-name","messages":[{"role":"user","content":"Hello"}]}'若启用 requireApiKey,请在 /v1/* 请求中携带 Authorization: Bearer <key>。
GET /health- 健康检查GET /status- 站点/模型/凭据信息摘要POST /v1/chat/completions- OpenAI 兼容对话GET /v1/models- 模型列表(站点 ID + 动态模型)POST /v1/messages- Anthropic 原生 messagesGET /oauth/providers- OAuth 提供方列表POST /oauth/start- 启动 OAuthGET /oauth/callback/:provider- OAuth 回调GET /oauth/status- OAuth 会话状态POST /oauth/poll- 设备码轮询
config/rules.json 控制 API 服务器:
apiServerPort,apiServerHostrequireApiKey,apiKeysmodelAliasesdefaultTargetUrl
站点与凭据保存在本地。开发环境默认存放于 data/ 和 logs/,打包后存放于 Electron userData 目录。
内置适配器:
template(通用 HTTP 适配)openai(按站点配置)theoldllmorchidsgumloop
新增适配器可放入 src/adapters/special/,默认导出即可自动注册。
- 代理与 API 默认仅本机访问(
127.0.0.1)。 - MITM 证书仅在 Electron 窗口内被信任,不会写入系统级证书链。
- 凭据来自你自己的浏览器会话,并保存在本地。
- 请遵守目标站点条款,仅在你有权限的账号上使用。
通过头部按钮可将 Claude Code 指向本地代理(修改 ~/.claude/settings.json 并创建备份),可随时恢复。
- 构建主进程:
npm run build - Lint:
npm run lint - 单元测试:
npm test - E2E 代理测试:
npm run test:e2e(需要运行中的应用与已捕获凭据)
MIT