@gensor/canvas-proxy

中文文档
0.1.1发布于 2026/11/01MITES Module零依赖

Minimal local forwarding proxy that lets the Web App call AI provider APIs without CORS restrictions.

原始使用文档
文档目录5 节
  1. 使用
  2. 转发规则
  3. 转发日志
  4. 安全提示
  5. 环境要求

@gensor/canvas-proxy

本地转发代理。浏览器直连第三方 AI 接口时经常被 CORS 拦截,启动它之后,网页会把请求先发到本机,再由本机转发到目标地址。

代理只做转发:不改写请求体,不校验 API Key,不落盘任何日志。

npm pack

使用

npx @gensor/canvas-proxy@latest

默认监听 http://127.0.0.1:23210。把这个地址填进 Canvas 的「配置 → 本地代理」,并打开开关即可。

带上 @latest 是因为 npx 会缓存已下载的版本,不加就可能一直运行旧版本。

可选参数:

npx @gensor/canvas-proxy@latest --port 23210 --host 127.0.0.1

也支持 PORT / HOST 环境变量。

转发规则

把完整目标地址接在代理地址后面:

http://127.0.0.1:23210/https://api.openai.com/v1/models
        └─── 代理地址 ──┘└──────── 目标地址 ────────┘

请求方法、请求头(除 host 等逐跳头外)、请求体原样转发;响应状态码、响应头和响应体原样返回,并补上宽松的 CORS 头。SSE 流式响应按块透传,不做缓冲。

访问根路径 / 会返回代理版本信息,可用于连通性检测,不会记入转发日志。

转发日志

每转发一条请求就在终端打印一行,包含时间、方法、完整目标地址、上游状态码和耗时:

4:05:42 PM GET https://api.openai.com/v1/models -> 200 0.9s
4:05:43 PM POST https://api.openai.com/v1/images/generations -> 200 26.4s
4:05:45 PM GET https://api.example.com/v1/models -> failed (fetch failed) 1.6s

日志在收到上游响应头时打印,所以流式请求会立刻出现一行,而不是等整段响应结束。日志只输出到终端,不落盘,也不包含请求头和请求体,因此不会泄露 API Key。

安全提示

代理默认只监听 127.0.0.1,仅本机可访问。它会转发任何请求到任何地址,请不要用 --host 0.0.0.0 暴露到公网。API Key 依然由浏览器持有并随请求转发,代理本身不存储。

环境要求

Node.js >= 18。

版本与发布记录

@gensor/canvas-proxy 共发布 2 个版本,首次发布于 2026/11/01;过去 12 个月发布了 2 个版本。

版本发布日期距今
0.1.1latest2026/11/012 天前
0.0.0-stage2026/11/012 天前

关于 @gensor/canvas-proxy 的常见问题

@gensor/canvas-proxy 是什么?

最小的本地转发代理,允许Web应用程序调用AI提供程序api而不受CORS限制。

如何安装 @gensor/canvas-proxy?

在项目目录运行 npm install @gensor/canvas-proxy,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 canvas-proxy,可以用 npx canvas-proxy 直接运行。

@gensor/canvas-proxy 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/gensor__canvas-proxy 是否存在。

@gensor/canvas-proxy 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@gensor/canvas-proxy 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@gensor/canvas-proxy 可以商用吗?

@gensor/canvas-proxy 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@gensor/canvas-proxy 还在维护吗?

最新版本 0.1.1 发布于 2026/11/01(2 天前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/11/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。