Skip to content

tangshuang/aicodeswitch

Repository files navigation

AI Code Switch

简介

AI Code Switch 是帮助你在本地管理 AI 编程工具接入大模型的工具。 它可以让你的 Claude Code、Codex 等工具不再局限于官方模型。 为所有编程工具提供本地API驱动,自动智能的切换不同场景下的模型。

而且它尽可能简单的帮你解决这件事。

功能要点

  • 可登记任意的大模型API接口服务,让你可以在一个面板管理你的大模型厂商
  • 一键切换模型:可以注册多个供应商的多个API接口,当想要切换模型时,只需要点击一个按钮就可以立即切换
  • 自动配置:无需你手动去修改claude code或codex的系统配置文件,aicodeswitch自动帮你修改,你只要启动它,无需配置claude code或codex就可以让它们正常工作
  • 一键配置供应商,省去复杂的供应商配置流程
  • 启动所有已知大模型接口标准,可接入任意客户端,包括但不限于openclaw、hermes、trae等,根据不同需要自主配置接口对应的大模型服务
  • API转流:将兼容openai接口标准的模型,轻松接入到claude code中,支持将符合openai、anthropic、gemini的数据格式转发给claude code或codex
  • 按需中转请求:根据请求类型,让不同的模型来处理不同的任务,节省成本,基于该特性,可以让glm等原生非多模态模型支持图像识别
  • 智能故障切换:当API服务发生故障时,智能切换到其他API服务进行尝试,无需手动切换,特别适用于中转服务商
  • 代理:针对无法直接访问的模型服务,例如地区被ban,支持设置代理来解决
  • tokens超量限制:避免其中一个服务商的用量超过限制,浪费了钱,适合有免费额度的服务商
  • 次数超量限制:次数到达一定量后,切换其他服务商,适合coding plan的服务商
  • 日志:超精细的日志记录和会话记录,帮助你发现编程工具本身的问题,以及专研工具的agent逻辑
  • 统计:丰富且详细的统计数据,用量信息快速掌握,发掘自己的编程习惯
  • Skills管理:一键搜索和安装Skills,一键启用skill到claude code或codex
  • MCP管理:一键安装预设MCP,一键启用MCP
  • 导入和导出:一键备份数据,在多太电脑间共享aicodeswitch配置
  • 服务端部署,自定义API Key,支持B/S架构,让aicodeswitch成为在线服务,提供给团队使用
  • 数据完全本地,自主可控
  • 特殊语法:在发送的提示词最前面添加[!]来直接切换为高智商模型服务([x]关闭),简单快捷

桌面客户端

桌面版基于 Electron,内置了 Node 运行时,无需另外安装 Node.js

  • 下载安装包:进入下载(提供 Windows .exe/.msi、macOS .dmg(arm64 与 x64)、Linux .AppImage/.deb
  • 本地构建:npm install 后执行 npm run electron:build,产物输出到 release/ 目录

命令行工具

# 安装
npm install -g aicodeswitch
# 启动服务
aicos start
# http://127.0.0.1:4567
# 启动服务并打开管理界面
aicos ui
# 停止服务
aicos stop

管理界面

配置供应商

  • 什么是供应商?
  • 供应商配置有什么用?

具体请看下方文档。

路由配置

  • 什么是路由?
  • 什么是路由规则?

具体请看下方文档。

覆盖配置文件

在aicodeswitch中,点击“写入Claude Code配置”按钮,它会修改Claude Code的配置文件,让Claude Code开始使用aicocdeswitch提供的模型API,而非直接连到官网的模型API。

你不用太担心,你可以在写入后,点击“恢复Claude Code配置”按钮,将Claude Code的配置文件恢复到原始状态。

Codex的配置覆盖逻辑一模一样。

设置

你可以在设置页面,对aicodedeswitch进行配置。

也可以导出配置数据,转移到其他电脑上导入。

配置供应商

什么是供应商?

所谓供应商,就是提供AI服务的上游服务商。可以是OpenAI、Claude、DeepSeek、GLM 官方服务,也可以是其他中转服务商。

供应商配置有什么用?

通过将你所有的AI服务商统一起来管理,可以帮你:

  1. 避免频繁修改配置文件,通过aicodeswitch,可以一键切换到不同的供应商的AI服务API
  2. 通过aicodeswitch,将不同供应商的接口数据,转换为工具可以正确使用的接口数据格式,也就是说,你可以将Claude Code接入遵循openai的接口数据协议的其他接口
  3. 避免你忘记曾经注册过那些供应商
  4. 充分榨干不怎么用的供应商的服务,避免充值后不怎么用浪费了

什么是API服务的“源类型”

供应商接口返回的数据格式标准类型,目前支持以下几种:

  • OpenAI(Responses API标准)
  • OpenAI Chat (Chat Completions API标准)
  • DeepSeek Chat(reasoning_content标准)
  • Claude
  • Claude Chat
  • Gemini
  • Gemini Chat

有什么用?

aicodeswitch内部,会根据“源类型”来转换数据。例如,你的供应商API服务接口是OpenAI Chat的数据格式,而你在路由中配置的“客户端工具“是Claude Code,那么就意味着,这个供应商API的数据,需要经过转换之后才能被Claude Code正确使用。

路由管理

什么是路由?

路由是aicodeswitch的核心功能,它负责将不同的对象工具(目前指Claude Code和Codex)的请求,路由到不同的供应商API服务上。

什么是“客户端工具”?

目前指Claude Code或Codex。

什么是“路由规则”?

以Claude Code为例,它的请求实际上并非铁板一块,可以被分为多种。比如它的深度思考、长文对话、图片理解等等,都是可以独立对待的。

路由规则的目的,就是让你的工具发出的请求,可以根据这个区分,发送给不同的服务商来处理。例如,你默认使用glm-4.7作为写代码的模型,但是,你可以把图片识别的请求发给doubao-code来进行,因为doubao-code的图片识别平均价格可以更低。同样的道理,不同目标的请求可以通过不同的规则来处理,以提升编程的质量和效果。

目前,我仅提供了几个比较容易区分的规则,以后,还会添加更多的规则。

激活路由

我们可以为Claude Code添加多个路由,但是,我们必须激活一个路由,才能开始使用。 而且,所有以Claude Code为对象的路由,在同一时间,只有一个可以被激活。

切换路由

你可以根据你的实际情况来实时切换路由,比如,你可以在发现自己的某个服务商处的余额较少时,立即切换到另外一个服务商。

智能故障切换机制

当同一请求类型配置多个规则时,系统会按排序优先使用第一个,如果某个服务报错(4xx/5xx)或请求超时,将自动切换到下一个可用规则,确保你可以正常使用coding工具。

数据转流

支持将openai的流式响应数据转换成Claude Code的流式数据,并支持实时转换,从而可以让你使用支持openAI的API服务来在Claude Code中使用。

不过,需要注意,如果你的API服务商不支持tools,或者所支持的max_tokens太小,是无法在Claude Code中使用的。

Skills管理

你可以在 aicodeswitch 中集中统一管理 skills,把skills分发给claude code和codex,随时启用和停用skills。 另外,你可以基于自然语言搜索skills,找到skill之后,支持一键安装。

MCP管理

你可以在 aicodeswitch 中集中统一管理 MCP,把MCP分发给claude code和codex,随时启用和停用MCP。 并且,你还可以通过MCP来实现图像理解。

日志

日志页面,您可以查看:

请求日志:所有 API 请求的详细记录

  • 请求来源和目标
  • 请求内容和响应
  • 耗时和状态码
  • 错误信息(如有)

错误日志:错误和异常记录

  • 错误类型
  • 错误详情
  • 发生时间

会话日志:按照会话session来汇集日志

日志筛选

根据提供的选项进行筛选。

配置文件

作为 CLI 工具,你可以在 ~/.aicodeswitch/ 目录下找到工具的相关文件。里面有一个 aicodeswitch.conf 文件,可以进行配置。 目前仅支持以下配置:

# aicodeswitch的服务端口
PORT=4567

# 如果提供AUTH,你无法直接登录用户界面,必须输入AUTH的值才能进入,相当于是一个登陆鉴权
# 如果你在自己的服务器上使用,通过远程接入接口时,就必须提供这个值
# AUTH=

服务监听地址由 AUTH 模式自动决定,无需也无法通过配置修改:

  • AUTH 关闭:仅监听 127.0.0.1(本机访问)
  • AUTH 开启:监听 0.0.0.0(允许远端 AccessKey 客户端连接)

写入本地编程工具(Claude Code / Codex)配置文件的地址、以及 UI / CLI 展示的访问地址,统一使用 127.0.0.1

常见问题

1. 如何切换供应商?

在路由管理页面修改规则的目标供应商,或调整优先级即可。

2. 如何查看失败的请求?

在请求日志页面,筛选状态码不为 200 的记录。

3. 如何备份配置?

在系统设置页面使用导出配置功能,然后将提供的数据保存到本地文件中。

4. 如何设置日志保留时间?

在系统设置页面修改日志保留天数配置。

我的开源

  • PCM: 用户意图识别、精准上下文、多线对话的Agent系统
  • Lan Transfer: 免费高效的局域网文件互传工具
  • MCP Bone: 远程托管的MCP服管理工具
  • Anys: 免费前端监控kit
  • WebCut: 免费开源的网页端视频剪辑UI框架
  • indb: 网页端轻量kv数据库操作库
  • Formast: 复杂业务场景下的企业级JSON驱动表单框架

关联资源

支持我

你的支持是我前进的动力!

许可

此项目采用双许可证模式:

  • 开源使用:项目默认采用 GPL 3.0 许可证,允许个人免费使用、修改和分发,但所有衍生品必须开源。
  • 商业使用:如果您希望商业化使用而不遵守 GPL 条款(例如闭源销售),请联系我们购买单独的商业许可证。

技术支持

如有问题或建议,请访问项目 GitHub 仓库提交 Issue。

About

AI编程工具模型接口本地化管理和快速切换工具

Resources

License

Stars

78 stars

Watchers

2 watching

Forks

Packages

 
 
 

Contributors