上个月API账单里有一条线,我盯着看了很久。
不是那些贵的推理任务——那些我认。是零碎的小东西。"这个报错什么意思"的追问。凌晨11点让Claude Code写的五行测试。一千个微不足道的请求,每个都按正价计费。
与此同时,我的机器上跑着Ollama,加载着qwen2.5-coder。快。免费。就在那儿干等着。
问题是:我的命令行工具完全不知道它的存在。
协议巴别塔:每个AI都在说自己的话
Claude Code说Anthropic的协议。Codex CLI说OpenAI的。Gemini CLI说Google的。Ollama呢?它有自己的方言——但它在http://localhost:11434留了一个OpenAI兼容的接口。
所以问题不是"Ollama能不能干这个",它显然能。问题是:怎么让你的工具跟它对话,又不用每次切换本地和云端时都重写整套配置?
这就是我这周解决的问题。现在已经作为CliGate的一部分发布了。
CliGate是一个本地代理,原本就负责把Claude Code、Codex CLI、Gemini CLI路由到云端服务商。新增的本地模型支持把Ollama列为与OpenAI、Anthropic、Google平级的路由目标。
启用本地模型路由后,CliGate拦截来自CLI工具的请求——根据你的配置——把它们发给Ollama而非云端。协议转换发生在代理层:Claude Code的Anthropic格式请求被适配成Ollama想要的格式,响应再适配回来。
你的工具永远察觉不到差别。
3分钟 setup:从账单焦虑到本地自由
第一步,确认Ollama在运行。
装个模型。CliGate会自动发现已加载的任何东西。
curl http://localhost:11434/api/version
第二步,启动CliGate。
控制台开在http://localhost:8081。
第三步,添加Ollama实例。
进Settings → Local Models,填入Ollama地址:
CliGate跑完健康检查,通过/v1/models拉取你的模型列表。已加载的模型自动出现——不用手动输入。
打开"Local Model Routing"开关。从此,任何原本发往云端的请求都会先检查本地模型。
你也可以按应用单独配置。比如:
Claude Code → qwen2.5-coder:7b(你的本地编程模型)
Codex CLI → cloud(需要完整能力时)
完事。不用折腾ANTHROPIC_BASE_URL。不用重新导出环境变量。一个开关搞定。
进Chat标签页,选"Local Model"作为来源,发条消息。如果返回了,路由就是通的。然后回终端正常使用Claude Code——代理会处理剩下的事。
Claude Code在一键setup时已经指向了CliGate
claude "explain what this function does"
# → 路由到你的本地Ollama模型
真正的坑:不是路由,是流式传输
我原以为基础路由是最难的部分。结果不是。
有意思的问题是流式传输。Claude Code期望Anthropic SSE格式的流式响应。Ollama的流式格式不一样。更麻烦的是,有些本地模型在工具调用(函数调用)上的行为怪异——返回格式不对,或者在应该流式的时候不流式。
CliGate的处理方式是:标准化。无论上游是什么,下游工具拿到的响应格式保持一致。如果本地模型不支持某项功能,代理层会优雅降级,而不是直接报错。
这花了比预期多的时间。但结果是,你可以把Claude Code指向一个7B参数的本地模型,它以为自己在跟Claude 3.5 Sonnet对话。
速度差异很实在。我的M3 Max上,qwen2.5-coder:7b处理简单重构任务比API往返快3-4倍。复杂推理?还是送云端。但那种"帮我解释这个正则"的请求,本地解决,零延迟,零账单。
一个被忽略的细节:模型发现机制
大多数类似工具要你手动输入模型名称。CliGate的做法是查询Ollama的/v1/models端点,动态拉取列表。
这意味着你ollama pull一个新模型,刷新一下控制台,它就在下拉菜单里了。不需要改配置。不需要重启代理。
这个细节很小,但改变了使用节奏。实验新模型的成本降到几乎为零——下载,加载,测试,不喜欢就删。不用在配置文件里翻找该填什么模型ID。
目前支持的工具有限:Claude Code、Codex CLI、Gemini CLI。都是官方CLI工具,不是API直接调用。这是有意为之——这些工具最吃API用量,也最烦人。
如果你在用Continue.dev或者Cursor,它们有自己的模型配置界面,不需要CliGate这种中间层。这个工具解决的是"官方CLI工具绑定特定供应商"的问题。
安装方式:npm install -g cligate,或者从GitHub release下载二进制文件。Ollama需要单独安装,CliGate不会替你装。
一个已知限制:Windows支持还在测试。macOS和Linux是主力平台。M系列芯片的Mac上体验最好——Ollama对Apple Silicon优化得相当到位。
代码在MIT许可证下开源。路由逻辑的核心是协议适配器,每个上游供应商一个。Anthropic的适配器最复杂,因为他们的流式格式和工具调用规范跟OpenAI差异最大。
热门跟贴