xiaohack's Blog - 插件系统
type: channel
link: https://blog.xiaohack.org/tag/e167baf0/
items: 从某BAT大厂开源框架实战审计揭秘 LLM 集成框架中的隐蔽加载漏洞
items: 微服务应用漏洞自动化挖掘MScan的实现与实战（下）
items: FastCMS 0.1.6 插件系统RCE代码审计
items: 微服务应用漏洞自动化挖掘MScan的实现与实战（上）
items: 【开源新星】UniHub：完美主义的开源跨平台工具集 & 插件生态，你提需求我来实现
items: 【开源发布】UniHub - 跨平台桌面工具集，支持插件扩展的效率神器
items: Claude-Code-Router 更新 2.0
items: 【2026 开源 AiBal】一站式追踪多个 AI 服务商的 API 用量、配额和余额
items: ProxyCast的变更日志（持续更新）

从某BAT大厂开源框架实战审计揭秘 LLM 集成框架中的隐蔽加载漏洞
type: item
date: 2026-01-19T20:33:54+08:00
description: 从某实战审计揭秘 LLM 集成框架中的隐蔽加载漏洞最近在研究LLM集成应用框架时，在审计某BAT大厂的github18k大型开源LLM集成应用框架项目时发现了一处隐蔽的加载漏洞，虽然开发者打过了防御补丁，但仍然可进行绕过并已提交CVE。遂深入进行了该类型的漏洞在LLM集成应用框架中的探究，供师傅们交流指点...1.归纳攻击路径随着 AI 从“聊天机器人”向“自主智能体（Agentic AI）”演进，许多LLM 集成应用框架成为了连接大模型与物理世界的桥梁。这些框架通过插件（Plugins）和工具（Tools）赋予了模型执行代码、访问数据库的能力。然而，这种能力的赋予也导致了一个极度隐蔽的代码注入：在这些框架通用的插件加载机制中，存在一个系统性的RCE漏洞——即便开发者部署了看似严密的静态分析安全审查，攻击者依然能利用“加载时执行”的特性，将恶意载荷伪装成功能扩展，实现对服务器的完全接管。我在审计了多个LLM应用框架后首先归纳总结一下该类加载漏洞的经典污染点流路径在 LLM 集成应用中，插件系统通常被设计为“动态可扩展”，这一类漏洞通常遵循一个通用的“受污染路径”： Source：框架暴露文件上传接口（如插件/工具安装包）。这些接口往往缺乏严格的身份验证，或被认为是“低风险”的操作入口。 Static Analysis WAF：系统在保存代码前，会调用安全模块对 Python 文件进行静态扫描（如 AST 校验、沙箱执行）。它试图识别并拦截 subprocess 或 os.system 等敏感调用。 Pyjail: 由于 Python是动态语言，攻击者可以利用动态导入、继承链等特性绕过AST静态扫描、hook和沙箱逃逸等 Sink：为了让插件生效，框架必须执行“扫描与刷新（Refresh/Scan）”。在这个过程中，系统会尝试 导入加载 这些模块导致poc执行。 2 逃脱静态分析的艺术这一部分和师傅们经常遇到的CTF的Pyjail挑战中相似：在 AI 应用框架中，针对插件源码的“语义审查”通常包括：禁用敏感库（如 os, subprocess）、拦截敏感函数调用（如 eval, exec）以及限制魔术属性访问（如 subclasses）。最基础的审查通常使用 ast.Name 或 ast.Attribute 来匹配关键词。攻击者可以通过字符串混淆和 getattr 动态重建调用链。利用字符串拼接或反转绕过特征匹配。# 绕过拦截器对 "os" 和 "system" 的直接检索 m = __import__('o' + 's') f = getattr(m, 'metsys'[::-1]) f('whoami') 2.1 利用Python继承链如果框架完全禁用了导入机制，攻击者会转向 Python 的内建对象体系。通过查找 object 的子类，可以在不直接引入任何库的情况下，从内存中“捞出”具备系统执行能力的模块。 从元组或列表的类对象出发，通过 mro 回溯到基类，再通过 subclasses 遍历所有加载到内存的类。 # 静态分析器只能看到属性访问，无法预测结果会指向危险函数 # 寻找 site._Printer 或 os._wrap_close 等带有执行能力的类 for c in ().__class__.__base__.__subclasses__(): if c.__name__ == 'os._wrap_close': # 从该类的全局变量中直接提取并执行命令 c.__init__.__globals__['system']('id') [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "'_sitebuiltins." in str(x) and not "_Helper" in str(x) ][0]["sys"].modules["os"] #_wrap_close [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if x.__name__=="_wrap_close"][0]["system"]("ls") 2.2 Encode静态审计工具在处理字符串常量时，通常只能看到字面值。攻击者可以利用 base64、hex 或 unicode 变体，将 Payload 转化为为一串看似无意义的杂乱字符进行绕过。 将恶意逻辑序列化。由于许多 AI 框架本身支持序列化处理（用于传输模型参数或配置），这为 Payload 提供了天然的保护色。 exec("print('RCE'); __import__('os').syst…

微服务应用漏洞自动化挖掘MScan的实现与实战（下）
type: item
date: 2026-01-19T12:07:09+08:00
description: Intro Tai-e作为一个优秀的静态分析框架，内置了指针分析、污点分析等等实现。为增强其作为一个底座框架的可扩展性，其提供了插件系统，通过插件系统可以控制在静态分析过程中的各个阶段的数据处理，更进一步的进行定制化分析的实现。如下图为Tai-e官方提供的有关于插件系统的原理图： 本文中提及的有关于微服务应用的静态分析框架MScan同样是基于Tai-e进行实现的，针对微服务应用中使用的一些特殊的API进行服务间的高速通信过程，传统的静态分析方式不能够原生支持该类服务间通信的污点流的传播，但是这里采用了上面介绍了插件系统的方式，为服务间的通信过程进行建模，定制化的支持该过程的数据流分析，例如是Grpc、Dubbo或者Feign等通信方式。 具体的分析因篇幅太长分为了上下两篇，上篇主要集中于理论层面的代码分析，剖析基于Tai-e框架的改造细节，明晰从source点提取到扩展的污点分析引擎工作原理的全流程。而下篇主要集中于实战层面的内容，在剖析微服务应用各服务间的通信建模方式，也即如何构建一个SDG（Service Dependence Graph），同时贴近实战批量拉取github\gitee高star项目进行自动化 clone-complie-scan全流程。 DistancePruning 该类的实现对应着论文中提及到的基于距离引导的上下文选择策略，但是感觉具体对其的实现还是和论文中的描述存在出入，后面具体分析其实现 在options.yml中若对advance进行配置，将会使用特定的上下文选择器，这里的动态上下文选择策略的实现和核心逻辑在DistancePruning#run，核心是三个原则 1 对于一个方法，其能够调用到某一个sink点方法且能够被某一个source点方法调用到（不局限于单次调用，只要在调用图上能找到一个调用链即可），对于这样的方法，将其csMap的值设为MAX，也即是这样的方法采用最大的上下文进行分析 2 对于仅仅能够形成调用链到sink点方法，但不能够某个source点方法调用的方法，这样的方法，将其csMap的值设为固定的2，在分析时采用2-call的方法进行上下文的选择 3 而对于上述两种情况都不满足的情况，则直接将其上下文选择为MIN，采用最小的上下文 总的来说，虽然与论文中提出的基于一个方法到达最近的source-sink链的距离进行上下文的选择有所出路，但是这里的上下文选择方法也是基于一个context-insensitivity的分析结果，所以对于可能的source-to-sink调用链长度进行最大上下文的选择也一种有效的避免假阳性的方法 与此同时，注意到在Pruning类也存在有两种上下文选择的思路 1 csMapByTaintNum方法，基于一种成本控制的思路进行上下文的选择，首先通过流式处理，从指针分析结果（pta）的调用图中获取所有可到达的方法（reachableMethods），对于每个方法，计算其参数中属于“污点”（Taint）的数量。然后过滤掉污点参数数为0的方法，并将剩余方法按污点参数数从高到低排序。确保了那些更可能涉及敏感数据流的方法会被优先考虑 总的来说，上下文的大小是由一个动态的分析成本预算控制的。它优先处理污点参数多的方法，但同时严格限制方法的分析成本总和不超过上限（硬件条件）。这种设计巧妙地在分析广度（覆盖更多方法）和深度（分析复杂方法）之间取得了平衡，防止资源消耗无限增长 ○ 对于每个方法，只有当累计成本 count小于阈值（1e5）时，才会将其加入 csMap并标记为 "5"，同时计数器 count5增1 ○ 如果方法非抽象，则计算其分析成本：变量数 * (调用者数量)^4，并将此成本累加到 count上 ○ 一旦 count的值达到或超过 1e5，循环便会停止，后续方法不再被加入 csMap 2 csMapByTaintFlow方法，这个方法猜测是想基于通过上下文不敏感的静态分析结果得到的TaintFlow进行上下文的动态选择，但是感觉后面可能烂尾了，没有实现完 SDG (Service Dependence Graph) OpenFeignPlugin 该插件核心是用来建立通过Feign方式进行跨服务调用的调用边，用于构建SDG (Service Dependence Graph) 对于该插件同样是实现了标准的Plugin接口，其实现了onStart方法以及onNewCSMethod方法用于在程序分析前进行处理以及在遭遇新的方法时进行处理 对于onstart主要是在静态分析前对FeignClient进行处理，获取所有的feign类型的路由以及实现类，保存在mappingEdges中 而对于onNewCSMethod实现了一个访问者模式，遍历遇到的所有新方法的…

FastCMS 0.1.6 插件系统RCE代码审计
type: item
date: 2026-01-18T12:08:57+08:00
description: 环境搭建 ●windows 10 ●jdk 17 ●mysql 5.7.26 ●fastcms 0.1.6 下载地址：https://github.com/my-fastcms/fastcms 登录：http://127.0.0.1:8080/fastcms-master.html 账号/密码：admin/1 1 数据库配置 数据库配置文件：fastcms-master/web/src/main/resources/application.yml数据库文件：fastcms-master/doc/sql/fastcms-master.sql ​912mysql -uroot -psource D:\java\fastcms-master\doc\sql\fastcms.sql2 开发环境 搭建环境会遇到Java 9+ 模块系统（JPMS）兼容性问题，在运行配置中添加虚拟机选项（VM options），输入下列参数即可 ​91--add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED 3 生产环境 存在漏洞的功能在开发环境无法使用，但在生产环境又无法 debug，此节侧重于在 idea debug 打包，找到 fastcms-master/build.bat 文件（windows 环境用 bat，linux 环境用 sh），双击进行打包，打包完成会出现.dist目录 .dist目录中，启动 startup.cmd 文件即可运行程序，但这样无法 debug，记住fastcms-master-server.jar的绝对路径，这是用 idea debug 的关键 在 idea 的运行配置中添加 jar 应用程序需要设置下列四个参数，jar 路径是fastcms-master-server.jar的绝对路径，工作目录则是fastcms-master-server.jar的所在目录，虚拟机选项和程序实参，则贴在图片下面。名称无所谓虚拟机选项 程序实参 启动成功会显示 8080 端口，以及启动时间 代码审计 入口文件：fastcms-master/web/src/main/java/com/fastcms/web/controller/admin/PluginController.java 第一个 if 检查是否为开发环境，如果是开发环境则报错，因此必须是生产环境，生产环境 debug 前面有配置步骤，这里不在叙述，后面两个 if 判断是否有后缀，是否是 jar、zip 文件，最后进入安装环境installPlugin 方法先安装再激活loadPlugin 方法中，loadPluginFromPath 加载插件，resolvePlugins 解决依赖loadPluginFromPath 是 pf4j 的原生方法，简单看一下，pluginId 不存在代表新插件，新插件载入需要获取插件元数据（pluginDescriptor），获取插件所有类（pluginClassLoader），创建插件实例（pluginWrapper）最后通过 addPlugin 方法载入这里就已经实例化并载入了插件，后面需要激活插件，跟进 startPlugin 方法，根据 pluginId 获取插件，再根据插件获取实例化对象，执行 start 方法激活，中间只是判断插件的状态，是激活还是禁止start 方法如下，这是官方 HelloPlugin 插件，是否可以在这里加点代码？ 漏洞复现 这里为了方便演示，修改官方插件，插件编写方法附在最后 找到fastcms-master/plugins/hello-world-plugin/src/main/java/com/fastcms/hello/HelloPlugin.java文件，添加下列代码 在fastcms-master/plugins/hello-world-plugin/目录下打包成 jar 文件 fastcms-master/plugins/hello-world-plugin/target/hello-world-plugin-0.1.6-SNAPSHOT.jarhttp://127.0.0.1:8080/fastcms-master.html 登录，账号密码：admin/1此时插件管理显示暂无数据，选择打包好的 jar 文件上传成功显示插件信息，弹出计算器 上面是第一次验证的步骤，如果想要重复验证，这时有三种方法 ● 停止项目，找到astcms-master.distplugins，删除 jar，…

FastCMS 0.1.6 插件系统RCE代码审计
type: item
date: 2026-01-15T15:01:05+08:00
description: 返回文档 环境搭建 ●windows 10 ●jdk 17 ●mysql 5.7.26 ●fastcms 0.1.6 下载地址：https://github.com/my-fastcms/fastcms 登录：http://127.0.0.1:8080/fastcms-master.html 账号/密码：admin/1 1 数据库配置 数据库配置文件：fastcms-master/web/src/main/resources/application.yml数据库文件：fastcms-master/doc/sql/fastcms-master.sql ​912mysql -uroot -psource D:\java\fastcms-master\doc\sql\fastcms.sql2 开发环境 搭建环境会遇到Java 9+ 模块系统（JPMS）兼容性问题，在运行配置中添加虚拟机选项（VM options），输入下列参数即可 ​91--add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED 3 生产环境 存在漏洞的功能在开发环境无法使用，但在生产环境又无法 debug，此节侧重于在 idea debug 打包，找到 fastcms-master/build.bat 文件（windows 环境用 bat，linux 环境用 sh），双击进行打包，打包完成会出现.dist目录 .dist目录中，启动 startup.cmd 文件即可运行程序，但这样无法 debug，记住fastcms-master-server.jar的绝对路径，这是用 idea debug 的关键 在 idea 的运行配置中添加 jar 应用程序需要设置下列四个参数，jar 路径是fastcms-master-server.jar的绝对路径，工作目录则是fastcms-master-server.jar的所在目录，虚拟机选项和程序实参，则贴在图片下面。名称无所谓虚拟机选项 程序实参 启动成功会显示 8080 端口，以及启动时间 代码审计 入口文件：fastcms-master/web/src/main/java/com/fastcms/web/controller/admin/PluginController.java 第一个 if 检查是否为开发环境，如果是开发环境则报错，因此必须是生产环境，生产环境 debug 前面有配置步骤，这里不在叙述，后面两个 if 判断是否有后缀，是否是 jar、zip 文件，最后进入安装环境installPlugin 方法先安装再激活loadPlugin 方法中，loadPluginFromPath 加载插件，resolvePlugins 解决依赖loadPluginFromPath 是 pf4j 的原生方法，简单看一下，pluginId 不存在代表新插件，新插件载入需要获取插件元数据（pluginDescriptor），获取插件所有类（pluginClassLoader），创建插件实例（pluginWrapper）最后通过 addPlugin 方法载入这里就已经实例化并载入了插件，后面需要激活插件，跟进 startPlugin 方法，根据 pluginId 获取插件，再根据插件获取实例化对象，执行 start 方法激活，中间只是判断插件的状态，是激活还是禁止start 方法如下，这是官方 HelloPlugin 插件，是否可以在这里加点代码？ 漏洞复现 这里为了方便演示，修改官方插件，插件编写方法附在最后 找到fastcms-master/plugins/hello-world-plugin/src/main/java/com/fastcms/hello/HelloPlugin.java文件，添加下列代码 在fastcms-master/plugins/hello-world-plugin/目录下打包成 jar 文件 fastcms-master/plugins/hello-world-plugin/target/hello-world-plugin-0.1.6-SNAPSHOT.jarhttp://127.0.0.1:8080/fastcms-master.html 登录，账号密码：admin/1此时插件管理显示暂无数据，选择打包好的 jar 文件上传成功显示插件信息，弹出计算器 上面是第一次验证的步骤，如果想要重复验证，这时有三种方法 ● 停止项目，找到astcms-master.distplugins，删除…

微服务应用漏洞自动化挖掘MScan的实现与实战（上）
type: item
date: 2026-01-15T14:21:14+08:00
description: 返回文档 Intro Tai-e作为一个优秀的静态分析框架，内置了指针分析、污点分析等等实现。为增强其作为一个底座框架的可扩展性，其提供了插件系统，通过插件系统可以控制在静态分析过程中的各个阶段的数据处理，更进一步的进行定制化分析的实现。如下图为Tai-e官方提供的有关于插件系统的原理图： 本文中提及的有关于微服务应用的静态分析框架MScan同样是基于Tai-e进行实现的，针对微服务应用中使用的一些特殊的API进行服务间的高速通信过程，传统的静态分析方式不能够原生支持该类服务间通信的污点流的传播，但是这里采用了上面介绍了插件系统的方式，为服务间的通信过程进行建模，定制化的支持该过程的数据流分析，例如是Grpc、Dubbo或者Feign等通信方式。 具体的分析因篇幅太长分为了上下两篇，上篇主要集中于理论层面的代码分析，剖析基于Tai-e框架的改造细节，明晰从source点提取到扩展的污点分析引擎工作原理的全流程。而下篇主要集中于实战层面的内容，在剖析微服务应用各服务间的通信建模方式，也即如何构建一个SDG（Service Dependence Graph），同时贴近实战批量拉取github\gitee高star项目进行自动化`clone-complie-scan`全流程。 Jar parser 首先这里设置了缓存机制，通过配置文件中的Config.reuse来控制是否使用缓存，如果不使用上次解析jar后的缓存则将对应的targetPath中记录的缓存信息进行删除 之后就是对于给定的jars包的处理过程，遍历给定的Jar列表依次进行service discovery以及类提取 1 首先来看parseSerive如何从目标Jar中获取service name的 a 首先是通过解析目标jar包中的pom.xml文件去得到对应的service name其功能实现的核心基于以下几点 ⅰ 通过遍历jar包的所有文件获取到以"bootstrap", "application", "entry"开头，"yml", "yaml", "properties"结尾的配置文件 ⅱ 筛选出文件中带有application:关键字符串标识的配置文件 ⅲ 在获取了包含有service name的配置文件之后，使用snakeyaml进行配置文件的解析，获取其中spring.application.name对应字段的值 ⅳ 这里还做了except处理，如果使用上述的解析yaml文件的方式不能够获取到service name时，则将artifact id作为service name ⅴ 具体是遍历目标jar中包含的所有的pom.xml文件，创建一个XML解析器对pom.xml文件的内容进行解析，获取其中的artifactId字段进行返回 b 其次是根据在配置文件中预设定的Config.classpathKeywords去决定我们关注的class代码，避免引入了过多的第三方jar包的类造成过多的无效分析 c 最后就是对路由的配置进行解析其核心实现同样可以归纳为以下几点步骤 ⅰ 首先是检查是否在配置文件中指定了待检测项目的路由配置文件Config.routeConfigFile，若已经明确制定了，直接进行获取并返回即可 ⅱ 如果没有指定，类似于前面提到了获取所有配置文件的方式，筛选路由配置文件，这里支持有Sprint Cloud gateway以及zuul的路由配置方式 遍历jar包的所有文件获取到以"bootstrap", "application", "entry"开头，"yml", "yaml", "properties"结尾的配置文件 d 最后的最后就是维护了GatewayParser.routeConfigFiles以及GatewayParser.services去记录扫描到的所有路由配置文件以及services 1 如果在配置文件设置了进行上轮类抽取的重复利用，也即是Config.reuse，则直接跳过提取jar中类文件的操作，否则，就直接对所有类提取到目标文件夹下 Gateway parser 在微服务应用中，对于路由的解析是基于前面jar parser过程中扫描到的路由配置文件 其大概的实现逻辑如下 1 遍历扫描到的路由配置文件，读取配置文件信息同样通过snakeyaml进行配置文件的解析，这里分为了两种两类不同的API网关进行针对性的解析 2 对于zuul这类的API网关 a 其将zuul.routes作为前缀获取路由信息 b 根据具体的zuul配置内容获取对应的path路由信息以及service-id对应的子服务对象，并对路径进行了有效处理 1 而对于Spring Cloud Gateway这类API网关 a 根据这类API网关的配置规则，将spr…

【开源新星】UniHub：完美主义的开源跨平台工具集 & 插件生态，你提需求我来实现
type: item
date: 2026-01-10T19:22:00+08:00
description: UniHub 是一个 现代化的跨平台工具集应用，主打「插件化」与「即装即用」。你可以把它理解为一个工具底座：把那些你平时需要 打开网页、搜索半天、复制来复制去 才能用到的功能，全部做成插件，集中放在一个桌面应用里。跨平台支持（macOS / Windows / Linux）强大的插件系统，按需安装所有插件永久免费正在疯狂建设生态中只需要告诉我：你希望有什么功能？哪些工具你现在必须上网才能用？点个 star​～剩下的交给我，我来实现。 github.com GitHub - t8y2/unihub: 🚀 UniHub - 现代化的跨平台工具集应用，支持强大的插件系统 | Modern...🚀 UniHub - 现代化的跨平台工具集应用，支持强大的插件系统 | Modern cross-platform toolkit with powerful plugin system 相关 links: 开发调优UniHub 是一个 插件化的本地桌面工具箱，通过安装插件来扩展功能，主打离线可用、数据不出本机、可折腾。 [20260106154230_rec_-min] v1.1.0 更新要点：新增官方插件：Excalidraw（本地绘图 / 白板） Ctool（40+ 开发工具：加解密 / Hash / Base64 / 时间转换等） TodoList（本地待办清单）新增系统应用扫描 … 开发调优UniHub 是一个插件化的桌面工具平台，你可以把它理解为一个 "工具箱"，通过安装不同的插件来扩展功能。无论是 JSON 格式化、JWT 解析、还是其他开发工具，都可以通过插件的形式集成进来。 核心特性强大的插件系统 - 支持动态加载和管理插件，开发者可以轻松创建自己的插件内置插件市场 - 一键安装各种实用工具，无需手动下载现代化 UI - 基于 Vue 3 + Tailw…📌 转载信息来源： https://linux.do/t/topic/1425696原作者： skylertong转载时间： 2026/1/10 19:21:52

【开源发布】UniHub - 跨平台桌面工具集，支持插件扩展的效率神器
type: item
date: 2026-01-05T16:29:57+08:00
description: UniHub 是一个插件化的桌面工具平台，你可以把它理解为一个 "工具箱"，通过安装不同的插件来扩展功能。无论是 JSON 格式化、JWT 解析、还是其他开发工具，都可以通过插件的形式集成进来。核心特性强大的插件系统 - 支持动态加载和管理插件，开发者可以轻松创建自己的插件内置插件市场 - 一键安装各种实用工具，无需手动下载现代化 UI - 基于 Vue 3 + Tailwind CSS，支持深色模式细粒度权限控制 - 插件需要申请权限才能访问系统资源自动更新 - 基于 GitHub Releases 的自动更新机制界面预览技术栈前端: Vue 3 + TypeScript + Tailwind CSS构建: Vite + electron-vite桌面: Electron已有插件目前内置了几个实用插件：JavaScript 格式化器 - 美化和压缩 JS 代码JWT 工具 - 解析和验证 JWT Token更多插件持续开发中…插件开发插件开发非常简单，只需要：创建一个包含 package.json 和 index.html 的目录在 package.json 中配置插件元数据打包成 zip 文件即可安装详细的插件开发文档可以在项目 README 中找到。参与贡献这是一个完全开源的项目，欢迎大家：Star 支持一下提交 Issue 反馈问题提交 PR 贡献代码开发自己的插件 为什么做这个项目？作为开发者，我们经常需要使用各种小工具，比如 JSON 格式化、Base64 编解码、正则测试等。虽然有很多在线工具，但我想做一个本地化的、可扩展的工具集，让开发者可以离线使用、数据不离开本地、通过插件自由扩展功能、一个应用解决所有需求未来计划更多内置插件、插件市场完善更好的插件开发工具链AI 支持最后代码可能还有很多不完善的地方，欢迎大家提出建议和意见！如果你觉得这个项目有用，欢迎 Star 支持一下，也欢迎分享给更多需要的朋友！项目地址：GitHub - t8y2/unihub: 🚀 UniHub - 现代化的跨平台工具集应用，支持强大的插件系统 | Modern cross-platform toolkit with powerful plugin system感谢大家！📌 转载信息来源： https://linux.do/t/topic/1407769原作者： skylertong转载时间： 2026/1/5 16:29:57

Claude-Code-Router 更新 2.0
type: item
date: 2026-01-04T17:13:42+08:00
description: 新版特性：支持预设，可以通过 ccr <preset-name> 命令快速切换 cc 配置，增加预设市场，更方便共享配置优化 cc statusline 适配，支持插件，可以自定义插件数据，比如获取供应商套餐余量，token 实时速率，可以将 statusline 插件一起打包成预设进行分发支持 docker 部署，镜像只有 200M + 的大小 (纯 Server 不支持 statusline/cli 插件)，但是仍然可以通过给 cc 设置 baseurl http://ip:port/preset/<preset-name> 快速切换预设配置支持 fallback，当供应商报错时支持回退到备用供应商完整文档在 Claude Code Router (还在建设中，文档速度跟不上特性开发速度)📌 转载信息来源： https://linux.do/t/topic/1403974原作者： musistudio转载时间： 2026/1/4 17:13:41

【2026 开源 AiBal】一站式追踪多个 AI 服务商的 API 用量、配额和余额
type: item
date: 2026-01-02T16:15:52+08:00
description: 功能特性多服务商支持 - 同时追踪 Claude、GPT、Gemini 等多个 AI 服务实时监控 - 一目了然查看配额消耗和剩余额度菜单栏集成 - 菜单栏快速访问插件系统 - 通过社区插件扩展功能插件市场 - 轻松发现和安装插件深色模式 - 原生深色主题 UI可打包 window，Linux，没来急的测试官网：AiBal - AI 监控助手GitHub：GitHub - DDG0808/aibal: AiBal 是一款 macOS 菜单栏应用，为 AI 重度用户提供统一的多服务用量监控平台。插件 GitHub：GitHub - DDG0808/aibal-plugins: aibal 插件库📌 转载信息来源： https://linux.do/t/topic/1397497原作者： d914954480转载时间： 2026/1/2 16:15:47

ProxyCast的变更日志（持续更新）
type: item
date: 2026-01-01T22:43:46+08:00
description: github.com GitHub - aiclientproxy/proxycast: 让 AI 编辑器之间自然流动，不仅仅可以其他工具使用，也可以转换成 api 为本地开发提供动力。让 AI 编辑器之间自然流动，不仅仅可以其他工具使用，也可以转换成 api 为本地开发提供动力。 作者：@wutongci本文件记录 ProxyCast 各版本的更新内容。[0.27.0] - 2026-01-01重构 Agent 架构并新增 API Key Provider 管理系统[0.26.0] - 2025-12-31消除所有 Rust 编译警告[0.25.0] - 2025-12-31Agent Tool Calling 前端集成移除未使用的 goose 依赖，优化 Windows CI 构建速度[0.24.0] - 2025-12-31重构应用布局，添加启动画面和全局图标侧边栏添加右键菜单系统[0.22.0] - 2025-12-30插件系统完整实现插件中心迁移到导航栏插件开发规范文档解耦 MachineIdTool 插件Anthropic Extended Thinking 类型支持[0.21.0] - 2025-12-29AI Agent 功能和 aster-server 按需下载Linux ARM64 平台支持安装 aster-server 后提示需要重启应用[0.20.5] - 2025-12-28添加 Linux ARM64 平台支持[0.20.4] - 2025-12-28优化 Kiro token 刷新机制，解决每次调用都刷新的性能问题修复凭证导入可能导致的崩溃问题 (#47)[0.20.3] - 2025-12-27添加 web_search 工具支持，修复 Claude Code 联网搜索返回结果为零的问题修复 Windows 平台编译错误[0.20.2] - 2025-12-27添加 live_sync 单元测试[0.20.1] - 2025-12-26修复配置检测和 Claude Code 配置问题修复跨平台编译错误[0.20.0] - 2025-12-26机器码管理工具 - 全新功能发布[0.19.0] - 2025-12-25全新品牌视觉设计 - 现代化 3D logo 更新浏览器拦截器 - macOS 默认浏览器接管功能修复日志清理和提供商显示问题 (#51)[0.18.0] - 2025-12-25配置管理优化 - 外部配置变更检测与一键导入修复 Kiro 请求 Token 显示为 0 的问题 (#44)修复 Flow Monitor 头部布局和清理所有日志功能[0.17.9] - 2025-12-25Gemini API Key 改为凭证池卡片式展示修复 SVG 类型声明问题[0.17.8] - 2025-12-24修复 Gemini API Key 和 Vertex AI 配置页面白屏问题[0.17.7] - 2025-12-24添加 Zhipu 图标自定义滚动条样式SVGR 支持Claude OAuth 添加 Cookie 自动授权功能[0.17.5] - 2025-12-24重大界面重构 - 删除仪表盘，重组导航结构修复默认路由端点 provider_type 硬编码为 kiro 的问题 (#41)[0.17.4] - 2025-12-24修复 Windows 最小化到托盘无效 (#30)端点 Provider 配置 + 凭证卡片 UI 优化[0.17.1] - 2025-12-22Flow Monitor 增强 - 窗口大小调整、搜索优化[0.17.0] - 2025-12-22新增 Codex Base URL 配置输入完善 Codex 凭证与健康检查[0.16.0] - 2025-12-21LLM Flow Monitor 功能支持 Yunyi 等代理的 API Key 认证和 responses API修复多个 P0/P1/P2 级安全漏洞实现自动下载更新功能添加备份与健康检查能力[0.15.1] - 2025-12-21server.rs 模块化重构（代码量减少 68%）限制 TLS 与远程管理开关兼容 YAML/JSON 保存与状态识别[0.15.0] - 2025-12-21Gemini OAuth 授权码流程健康检查自动刷新 Token[0.14.10] - 2025-12-20Kiro 凭证指纹展示模型列表更新[0.14.8] - 2025-12-20Antigravity OAuth 支持复制授权 URL 到指纹浏览器Codex 支持 API Key 凭证修复 Antigravity 凭证添加无反应问题 (#16)修复 Codex Token 刷新失败问题 (#17)[0.1…