你的 agent,
穿上自己的颜色

air-acp-enhancer 是挂在 JetBrains Air 上的一个轻量 JavaAgent: 自定义 ACP agent(Kimi、GLM、Mistral、OpenCode、Pi……)在下拉框、chip、选中态 显示真正的品牌图标,而不是灰色机器人。不改 Air 一行代码,失败即回退原状。

安装

幂等脚本:只在 vmoptions 尾部增量追加自己的两行(已注入则跳过),不动文件里的任何其他内容。安装、升级、修复都是同一条命令——重复执行永远安全。

windows · powershell
Win irm https://air.icen.ai/install.ps1 | iex
linux / macos · shell
Lin curl -fsSL https://air.icen.ai/install.sh | bash

脚本会: 下载 jar 到 Air 配置目录(%APPDATA%\JetBrains\Air\ / ~/.config/JetBrains/Air/), 在安装目录的 Air.vmoptions / Air64.exe.vmoptions 尾部追加 -javaagent-Xshare:off(已存在则跳过)。完成后完全退出 Air 再启动(托盘 Quit,确认 Air.exe 结束)。 卸载:Windows 先 $env:AIR_ACP_UNINSTALL='1'、Linux 先 AIR_ACP_UNINSTALL=1 再执行同一命令。 手动下载:air-acp-enhancer.jar(升级 = 再跑一次同一条命令)

它做了什么

四处微创字节码手术 + 一处资源供给,全部失败即放行(fail-open),Air 本体不受影响。

品牌图标

13 个品牌:9 个内置 LobeHub 图标(Kimi、GLM、Mistral、OpenCode、Pi、Qwen、DeepSeek、Grok、Copilot)+ Air 原生 4 套(Claude Code、Codex、Gemini、Junie),按 agent 名关键词自动匹配。

Chip 不再灰染

折叠 chip 原本把自定义 agent 的图标强制染成主题灰;增强后保留品牌原色,和内置 agent 一致。

内置 Agent

启动时幂等合并 My Claude 与 My Codex 到 acp.json(npx 拉最新适配器,用户已有配置永不覆盖)。

版本韧性

方法名用「基础名+可选后缀」正则匹配,全部适配点集中在 AirContract.kt,附启动自检报告与无头验证脚本。

支持的品牌

agent 名字或 acp.json 的 "icon" 字段含关键词即命中;未命中保留 Air 原图标。

Kimikimi / moonshot
GLMglm / zhipu / zai
Mistralmistral
OpenCodeopencode
Pipi
Qwenqwen
DeepSeekdeepseek
Grokgrok / xai
Copilotcopilot / github
claude · codex · gemini · junie(原生)

怎么做到的

整条链路都挂在 Air 已有的机制上,渲染、深浅色、SVG 解析全部复用原生管线。

agentId ─▶ ThemeKey("icons.agents.air-acp.kimi")   # 出口拦截,4 个图标函数
        ─▶ resolveIcon ─▶ "air-acp/kimi.svg"        # 虚拟路径,冷路径 + 原生缓存
        ─▶ FrontendResourceReader.read               # skipOn:直接返回字节
        ─▶ skia 解析渲染                                    # Air 自己的画笔