ARTICLE · 1144605
AI工具推荐 - 免费的API谁还不知道,五个服务接进一个面板,想用哪个用哪个;
API-FREE · UNIFIED PANEL
约 2,200 字
阅读约 6 分钟
五个免费 AI 反代服务,五套后台、五个端口、五次登录。API-free 没改它们一行代码,只在外面加了一层:一个页面看状态、用量和密钥。
FIVE PANELS
五套东西,五套面板
我把之前开源的五个白嫖的服务集合到了一起;
五套独立进程。五个端口。
而且每个页面还得单独登录一次。所以我整合到了一起。
例如我想看看今天一共用了多少额度,得挨个打开五个页面;想改一个配置,得先想起来它到底在哪个端口上。
所以最近我花了点时间,在外面加了一层,把它们收进同一个面板里。
它叫 API-free。
先说清楚一件事:它没有动那五个项目,一行代码都没改。
先把最要紧的搞清楚——我说的「收进一个面板」,收的是管理,不是功能。

统一面板在外,五个服务各自独立:只加一层,不动上游
把那五个服务摆出来,大概是这么个样子。
Qoder 跑在 8210,WorkBuddy 跑在 7863,Cline 跑在 8787,Command Code 的桥跑在 8014,OpenCode Zen 那条免费通道跑在 8020。
PORT
本机端口
8210
Qoder
7863
WorkBuddy
8787
Cline
8014
Command Code
8020
OpenCode Zen
9000
一个面板,全部在这
每个都有自己的一套账号池、自己的登录流程、自己的用量统计,还有一个风格各异的网页后台。
单个看都没问题,甚至可以说都做得挺细。问题在于它们是五件事,不是一件事。

随便打开一家都是完整后台:账号池、模型、用量、日志、设置各有页签
我要的东西其实特别朴素:一个页面里能看见五家谁在跑、谁挂着、账号还剩几个、今天用了多少 token;能在一个地方点启停;能在一个地方把密钥复制出来贴进客户端。
就这三件事,是 API-free 全部的设计目标。
其实吧,我要的东西真的就这么点。

五个端口、五次登录,收成一个面板——收的是管理,不是功能
它自己是个 Go 写的后端加一个 React 前端,跑起来在 127.0.0.1:9000 上开一个页面。
这里有个我一开始就定下来的取舍,后面所有设计都是从它来的。
不碰上游。
那五个项目各自的接口形状不一样,而且会变——上游平台一改规则,它们就得跟着改。我如果去改它们的代码,等于把这个最不稳定的部分焊死在自己的面板里,以后谁改都难受。
所以这一层只做聚合:统一读它们的原生接口,把差异在服务端吸收掉。

只在外面加一层壳,一台机器都不拆,只从外面读原生接口
OVERVIEW
总览页:五家的账,终于能一起看
打开面板第一屏是总览。
每个服务一张细线卡,卡片上排着状态、账号数、积分、模型数、今日用量,还有一条 30 天的迷你趋势线。屏幕够宽的时候,五张卡正好一行排满。
下面是一张跨服务的用量趋势图,图例就是五个服务的 logo,点一下只看那一家,可以多选,表头会跟着换成这家的输入、输出和请求数。合计的时候按输入输出分层画,选中某一家就单独一条线。
这块我自己用得最多。
因为「今天到底用了多少」这个问题,以前要开五个页面才能回答。
现在抬眼就有。

总览页:五家的状态、账号、积分、模型数、今日用量与 30 天趋势排在一起
统计是按天落本地 SQLite 的。用的是纯 Go 的 sqlite 驱动,不需要 CGO。

统计页:跨服务的输入与输出分层用量,按天落本地
所以编译出来就是一个可执行文件,不用为了一个数据库再去配环境。
除了用量,总览上还有时段分布、模型和账号排行、服务质量,以及一条面板事件流——什么时候哪个服务崩了、被拉起来了,都在里面。
说到崩了,这是我觉得比「能看数据」更值钱的一块。
开关是真的进程启停。停止是杀进程树,不是把页面上的按钮变灰。
服务崩了,面板会按 30 秒起步的指数退避把它重新拉起来,最长退到 10 分钟一次。
有一说一,这个策略不激进,但足够让一个偶发挂掉的服务自己回来。
还有一个我挺喜欢的细节:面板会收编。
我跟你说,这个细节一开始我没想到。
如果某个服务是你自己在命令行里先起好的,面板启动时不会跟你打架。
它会把这个实例接管过来,照样显示状态、用量和日志,只是标记成不是面板拉起的。等它哪次掉线了,面板再按自己的规矩把它拉起来。
也就是说,你可以随便用哪种方式启动,最后都会归到同一个地方管。
ACCESS TAB
接入页签:密钥只待在一个地方
如果只让我留一个功能,我留这个。
每个服务的详情页里有一个「接入」页签,里面是四块东西。
第一块是连接信息。地址可以在「经面板」和「直连服务」之间切,各带一个复制按钮。下面是 API Key,默认是脱敏的,点显示才看全文,点复制直接进剪贴板。

接入页签:地址、脱敏密钥、模型选择与可直接粘贴的调用代码都在一处
看明文这个接口只对本机开放,非本机来源会直接返回 403。
这条是刻意的。因为面板的代理会注入各个服务的真实密钥,所以它整站都不该被放到公网上。
第二块是模型下拉框,列表来自那个服务自己的 /v1/models。

模型列表来自各服务自己的 /v1/models,不另存一份
第三块是可以直接粘贴运行的代码,分了 cURL、Python、Node、Anthropic、环境变量五个标签页,按你上面选的地址和模型实时生成。
其中 Anthropic 那页只有 Cline 有,因为它同时提供 OpenAI 和 Anthropic 两种协议,能直接接 Claude Code。
第四块是接入须知和一键自检。自检会真的发一条最小请求出去,max_tokens 给 64,然后把 HTTP 状态、耗时、返回内容,或者上游报的原文错误,直接显示在页面上。
不用去翻日志,也不用猜是不是密钥配错了。
· · ·
这里面最省事的是代理入口。
PROXY ENDPOINT
http://127.0.0.1:9000/api/svc/<服务id>/v1
走这个地址的时候,客户端的 API Key 你随便填,填 panel 都行。
面板会把它覆盖成那家服务的真实密钥,然后转发出去。
你想想看,如果不这么做,你得在四五个客户端的配置文件里各存一份真钥。哪天换一个,就得挨个改一遍。
这个设计的好处很直接:你电脑上装的 Cline、Continue、Cherry Studio、ChatBox,甚至 Cursor,每一个里面填的都是同一句废话。
真密钥只在面板里存着一份,不会散落在四五个软件的配置文件里。

客户端随便填,面板换成真钥再转发——真钥不散落在四五个配置文件里
顺带说一句,服务没在跑的时候,这个页签照样能用。
地址和密钥还在,只有模型列表会写明服务未运行。所以你什么时候想配客户端都行,不用先把它拉起来。
· · ·
THE POINT
最后
回到最开始那件事。
单纯就是想做一个汇总管理。那五个服务该有的能力都有,问题是它们是五个。
五个端口、五次登录、五个页面,每次想看一眼总量都要开一圈。
不过一开始想做成 API 中转,把自用的所有平台一起,全部走一个接口,但是做了 3 版发现中转不是我想要的效果,不过大家可以自行搭建,而我的想法只是一个汇总,
只是我终于有了一个地方,能一眼看完、一次启停、一处拿密钥。
有些工具的价值不在于它能做什么新事情,而在于它把你已经在做的事情,从五件变成了一件。
— THE END —
既然看到这里了,觉得不错就顺手三连
想第一时间收到推送,也可以给我个星标 ⭐
谢谢你看我的文章,我们,下次再见。
/ 作者:Patrick
/ 这里分享好用的 AI 工具和 skill
/ 创作不易,三连支持一下吧~