项目矩阵 商业化基建 ECopilot Proxy
EEAGLE-MAINTAINED · COPILOT → ANTHROPIC GATEWAY

Copilot Proxy

GitHub Copilot → Anthropic 协议代理 · 自带计费 + 微信扫码登录,Claude Code / Cursor / 任何 SDK 客户端无缝白嫖 Copilot 后端的 Claude / GPT / Gemini。

访问生产 api.eagle.openclaws.co.uk 本机 :4819 private repo · 待开源

背景痛点 · Why this exists

个人开发者已经为 Copilot 付费,可那份额度被锁死在 IDE 插件里 — 想在 Claude Code / agent / 自动化里复用,只能再付一份 Anthropic。

一句话:把 Copilot 订阅包装成 Anthropic / OpenAI 兼容 API,自带计费、配额、微信扫码登录和管理后台 — 让 Claude Code / Cursor / 任何 SDK 客户端无缝白嫖。

5 个核心抽象 · Five abstractions

tokens.mjs
GitHub device login → Copilot session token 自动获取 / 缓存 / 续期池
lib/tokens.mjs
openai-protocol
三协议互转 Anthropic ↔ Copilot SSE ↔ OpenAI /v1/responses
tool_use + thinking
keys-v2 + quota-gate
sk-proxy 计费体系 + preflight 扣费 + free/paid/balance 三段
usage_ledger
payments + wx-gateway
微信扫码登录(邀请返利)+ 个人收款码 HMAC 充值回调
¥9.9 · ¥29
双 Dashboard
用户自助 / + Admin /_a/<obfuscated>(pricing CRUD · audit · charts)
dashboard.js × 2
截图位 · E-08 /v1/models JSON /v1/models 返回 enrich 后的 context / modalities / pricing 字段 命令 curl -H "Authorization: Bearer sk-proxy-xxx" https://api.eagle.openclaws.co.uk/v1/models | jq 次要

架构 · System architecture

客户端 → Caddy HTTPS → 127.0.0.1:4819 server.mjs (Node 20 单进程 PM2 守护) → 上游 Copilot SSE + 本地 SQLite WAL。旁路 wx-gateway 接微信扫码 / 个人收款码支付回调。

[Claude Code / Cursor / Hermes Agent]
            │  ANTHROPIC_BASE_URL=https://api.eagle.openclaws.co.uk
            │  Authorization: Bearer sk-proxy-xxx
            ▼
Caddy (HTTPS, eagle.openclaws.co.uk)
            │ reverse proxy → 127.0.0.1:4819
            ▼
server.mjs (Node 20, 单进程, PM2 守护)
  ├─ auth        sk-proxy-xxx → keys_v2 lookup
  ├─ quota-gate  preflight 估算 + 扣费(free/paid/balance)
  ├─ protocol 翻译:
  │     /v1/messages          (Anthropic)
  │     /v1/chat/completions  (OpenAI)
  │     /v1/responses         (GPT-5 系)
  │              ↕ openai-protocol.mjs
  ├─ upstream    Copilot SSE (token pool)
  └─ ledger      usage_ledger 落库 + 真实费用回填
            │
   ┌────────┴────────┐
   ▼                 ▼
[SQLite WAL]   [Copilot 上游]
 keys_v2        api.githubcopilot.com
 usage_ledger   (Claude 4.5/4.6/4.7,
 payments        GPT-5.2-5.5, Gemini)
 logs / audit

旁路:
 wx-gateway (wx.mvp.restry.cn) ──扫码/支付回调──▶ /wx/* /payment/*
 Dashboard  (/ 用户 · /_a/xxx 管理) ──fetch──▶ /user/* /admin/*

8 条关键里程碑 · Milestones

  1. 04-11MVP 单文件落地:server.mjs 一把梭,Copilot → Anthropic 翻译 + SQLite 日志 + 基础 dashboard(25458a9)
  2. 04-13模块化:server.mjs → lib/*,dashboard.html 1720 → 229+720+772 行拆分(5e04c52 / e2fa019)
  3. 04-14移动端 UI + Logto SSO + GitHub device login(279f646)— 第一次"不懂技术的人"也能跑起来
  4. 04-19Stage 2-4 大版本一晚集中提交 20+ commits:keys_v2 + usage_ledger + pricing 倍率表 + OpenAI 协议兼容 + 用户/管理员双 dashboard + 多模型注册表 — 从"自用工具"升级成"可计费 SaaS"
  5. 04-28默认路由对调:用户 dashboard 上 /,admin 退到 /_admin;接入 Claude Code / OpenClaw 快速集成卡(5771dbf / 776efde)
  6. 04-29微信扫码默认化 + 邀请返利 + 个人收款码 HMAC 支付 E2E(66e6ca1 / a635502 / 5e07f3c)+ admin 路径混淆 /_a/<obfuscated>(f6eb7de)+ 移除 Logto 改单一 user_session(92c5aa1)
  7. 05-中同步上游 Sonnet/Opus 4.5/4.6/4.7 + GPT-5.2~5.5 全家桶(b084a8e);dashboard 显示 token 余额、enrich /v1/models 含 context/pricing(78e47b3)
  8. 05-29AGENTS.md Agent 接管剧本 + 本地自托管模式 + quickstart wizard + loopback 旁路(a1c77c4 / c727121 / 4c44ee9)— AI agent 一句话给用户在本机端到端部署

12 条关键 commit · Top commits

从 96 commits 里挑出"架构 / 安全 / 商业化 / 大爆发日"四个维度的代表。

25458a9起点MVP:Copilot→Anthropic 翻译 + SQLite + dashboard 一把梭 — 全部价值的起点(2026-04-11)
5e04c52架构server.mjs 模块化到 lib/ — 后续所有功能扩展的前提(04-13)
279f646体验移动端 UI + device login — 第一次能让"不懂技术的人"也跑起来(04-14)
d534dc2 + bc00510 + a26eb79架构keys_v2 + quota engine + pricing 倍率表 — 从自用工具升级成可计费 SaaS(04-19)
eb5c297协议OpenAI /v1/chat/completions 入口 — 覆盖 Cursor / 各种 OpenAI SDK 客户端(04-19)
dbbe8af合并dev → main 大合并:multi-model + keys_v2 + 双 dashboard,第一个生产可用版本(04-19)
7946dca商业微信扫码登录 + API key fallback + 绑定流程 — 为闲鱼引流铺路(04-28)
a635502 + 5e07f3c商业wx-gateway 个人收款码支付全链路 E2E — 正式具备收钱能力(04-29)
f6eb7de + 92c5aa1安全admin 路径混淆 /_a/<obfuscated> + 移除 Logto 统一 user_session — 安全收敛(04-29)
b084a8e协议同步上游 Copilot 模型(4.5/4.6/4.7 + GPT-5.2-5.5) — 跟上 Copilot 节奏(04-29)
c001963修复月度配额窗口 rollover + dashboard 显示纠偏 — 解决月底"key 突然不能用"投诉(详见名场面 #2)
a1c77c4 + 4c44ee9爆发local self-host mode + AGENTS.md 剧本 — AI agent 端到端自动部署(05-29)

名场面 #1 · Hall of Fame · 闲鱼 → 公众号 → key 的 7 步

HALL OF FAME · 商业化闭环 · 7 步用户旅程

微信扫码登录 + 闲鱼引流完整流程

TL;DR · 闲鱼挂的不是"卖 key",是 "Claude Code 陪跑 / 开源教程"。引流到公众号才是核心钩子 —— 关注公众号 → 公众号内打开 H5 → in-app OAuth 自动建 sk-proxy-xxx → 顶部一键复制 + 两行 export → 跑通后弹充值码, 全程不需要用户理解 OAuth / device flow / API 协议。

7 步用户旅程

  1. 1
    闲鱼商品页 / 私聊
    在闲鱼搜 "Claude Code",看到 ¥0.01 试用 / 教程陪跑链接,私聊问"怎么用"
    系统行为自动回复发公众号二维码 + api.eagle.openclaws.co.uk 落地页
    截图:闲鱼商品页 + 私聊话术(手机,必截)
  2. 2
    微信公众号「造悟者」
    扫码关注公众号
    系统行为wx-gateway 收到关注事件 → 推欢迎语 + "点这里 1 秒拿 key" 菜单链接
    截图 E-03:公众号 in-app 浏览器落地页(手机,必截)
  3. 3
    公众号 in-app H5
    在公众号内打开 H5 https://api.eagle.openclaws.co.uk/(自带 in-app 浏览器 OAuth)
    系统行为dbf02ef 的 in-app auto-OAuth → 后端 createWxSignupKey() 自动建 sk-proxy-xxx,带 invite_code / source 落库
    截图 E-01:User Dashboard 首屏 + 微信头像/昵称 banner(手机,必截)
  4. 4
    User Dashboard 顶部
    「立即复制 key」+「Claude Code 接入指南」卡
    系统行为一键复制 sk-proxy-xxx,下方展示两行 export 命令
    截图 E-02:快速集成卡 776efde(桌面,必截)
  5. 5
    用户本机终端
    ANTHROPIC_BASE_URL=https://api.eagle.openclaws.co.uk ANTHROPIC_AUTH_TOKEN=sk-proxy-xxx claude
    系统行为服务端走 quotaPreflight → 命中 free 配额 → Copilot SSE 回流
    截图:终端首条 hello-world 响应(桌面,次要)
  6. 6
    Dashboard 充值弹窗
    配额吃完 / 想上 Opus 4.7-1m,点 dashboard「充值」
    系统行为弹二维码(e633459),5s 轮询 /payment/status,HMAC 回调到账,paid_quota +=
    截图 E-04:充值弹窗 ¥9.9 / ¥29 + 个人收款码(手机,必截)
  7. 7
    邀请返利
    转发邀请链接,新用户扫码注册 → 双方 +N 配额
    系统行为maybeSettleInvite() IP 反薅校验 + 自邀屏蔽(38daa85)
    截图:邀请卡片 + 邀请战绩(手机,次要)

名场面 #2 · Hall of Fame · 读路径不自愈的 monthly_29 bug

HALL OF FAME · 复盘 c001963 · 3 文件 / +15 / -3

c001963 · 月度窗口 rollover bug 复盘

先纠一下 · commit 修的是 monthly_29 套餐的月度配额窗口(不是 5h 滚动窗口 —— 五小时窗口走的是 Copilot 上游 rate-limit,本服务侧没碰)。 bug 本质:写路径(quotaPreflight)正确,读路径(dashboard /user/me · /user/plan)不自愈

为什么修

4 月底连着三个充了 ¥29 月包的用户私信"key 突然 401 配额耗尽",可后台一看 window_used 已经超过 window_quota,但 window_reset_at上个月的时间戳 —— 明显该 rollover 没 rollover。

Debug 过程

  1. 怀疑 HMAC 充值回调没把 window_quota 续上 → 查 payments 表,到账记录齐全,排除支付侧。
  2. 看 quotaPreflight() · 里面 windowRolloverIfNeeded(row) 是有的 —— 但只有"用户真的发请求"才会触发 rollover。这几个用户当时没在打字,dashboard 一打开看到 window_used / window_quota 是过期窗口的快照,直接卡红,吓得不敢用。
  3. 本机时间复现 · 把系统时间调到 reset_at + 1s,刷 dashboard,果然显示"已用 200万 / 配额 0",因为读路径 /user/me/user/plan 走的是裸 SELECT,没经过 rollover

修复一句话

windowRolloverIfNeededquota-gate.mjs 内部函数 export 出来,在 /user/me/user/plan 两个读端点里也调一次(仅对 plan_type === 'monthly_29' 且未过期的 key),dashboard 显示同步 clamp。改动 3 文件 / +15 / -3

教训

"写路径正确"不等于"读路径正确"。dashboard 是用户感知第一屏,状态字段在读侧也得自愈,不能只靠下次写请求救场 —— 用户看到红条第一反应是"key 坏了",不是"我去发个请求试试"。

技术栈 · Tech stack

Runtime
Node.js 20 · ES Modules · 原生 http(无 Express)
Storage
better-sqlite3 WAL + 二级索引
协议层
Server-Sent Events 流式转发 · GitHub Copilot 私有协议 · Anthropic Messages · OpenAI /v1/responses
部署
Caddy(HTTPS 反代)· PM2(进程守护)· systemd / launchd 开机自启
前端
原生 HTML + 原生 JS + Chart.js(无前端框架)· Lucide icons
支付 / 登录
微信公众号 OAuth(经 wx-gateway)· HMAC-SHA256 支付回调 · 个人收款码

现状 + 未结清债务 · Status & debt

截图位 · E-05 Admin Dashboard Overview 活跃 key 数 / 今日 token / GMV / 模型分布饼图 URL https://api.eagle.openclaws.co.uk/_a/<obfuscated> 管理员登录后首屏 必截

现状(2026-06-01 实测)

  • 生产环境 · https://api.eagle.openclaws.co.uk,PM2 守护 copilot-proxy 单进程,Caddy 终结 HTTPS
  • 模型覆盖 · Sonnet 4.5/4.6/4.7、Opus 4.5/4.6/4.7(含 4.7-1m-internal 1M 上下文)、GPT-5.2/5.3/5.5(走 /v1/responses)、Gemini(OpenAI 协议)
  • 商业化已上线 · 微信扫码即得 key · ¥9.9 / ¥29 两档付费包 · free / paid / balance 三段扣费
  • Agent 一键部署 · 用户把 repo 丢给 Claude Code,按 AGENTS.md 自动完成 device login + systemd/launchd 开机自启
  • 当前 HEAD · fced613(2026-05-29 10:56 CST)· 96 个 commit
  • 用户数 / 日活 / GMV · 待补(admin 后台有 overview,未导出快照)

未结清债务

  • P1仓库未开源 · 未发公开 PR · GitHub repo URL + Release 节奏待补
  • P1上游协议 break 缺自动兼容层 · 大版本(如 thinking.type.enabled)突然 break 老 CC,靠手动 bump 客户端版本号
  • P2opus-4.7-1m-internal 本机直连 :4819 404 · 上游未对所有用户开放,目前依赖 eagle gateway 兜底
  • P1支付无对账脚本 · 只接了微信个人码 + HMAC 回调,异常订单需手动 SQL 排查
  • P1测试覆盖偏 e2e 缺 CI · scripts/test-*.mjs 为主,缺单元测试和 CI 流水线,回归靠人肉 npm test
  • P2Dashboard 风格无设计稿 · UI 约定散落在 copilot-claude-proxy skill 里,新增 tab 容易破风格
  • P2abuse 防护无行为风控 · 只有 IP 限流 + 邀请反薅,缺 prompt-injection 滥用检测
  • P2DISABLE_LOCALHOST_BYPASS 默认偏宽松 · 需部署者自觉设置,文档化在 docs/SELF-HOST.md 但未在启动时告警