
人工智能AI Agent交互助手工具调用MCP Clients本地部署Agent 工作流RAG【免费下载链接】zeroclawFast, small, and fully autonomous AI personal assistant infrastructure, any OS, any platform — deploy anywhere, swap anything 项目地址https://gitcode.com/gh_mirrors/ze/zeroclaw点击查看免费下载导读本文围绕 ZeroClaw 桌面端 TUI 客户端 zerocode 的主题体系展开讲解三件核心能力如何在 Config 面板中一键切换 40 套命名配色、如何让每个 Agent 在 Code/Chat 面板中携带自己的主题以便一眼识别、以及 zerocode 如何自动检测终端色深24-bit / 256 / 16 色并降级渲染。读完本文你将能熟练配置[theme]与[theme.agent_override.alias]配置段、用ZEROCODE_COLOR强制色深并解决 tmux 远程会话中配色发灰的问题。所有主题设置都保存在 zerocode 自己的配置文件里与 zerocode 连接的是哪个 daemon 无关——换 daemon、换后端你的主题照常生效。一、主题架构单一事实来源themes.jsonzerocode 的主题体系遵循单一事实来源原则注册表web/src/contexts/themes.json 是唯一权威数据源同时供 zerocode TUI、React 仪表盘和本文档三类消费者读取TUI 侧生成物apps/zerocode/src/generated_themes.rs 由cargo generate installers在构建期从注册表生成文件头部注释即声明了这一点其中每个主题被翻译为 9 个调色板角色的 RGB 值kebab-case的注册表 id 会被映射为snake_case的主题名如icy-blue→icy_blue文档侧生成物cargo xtask mdbook themes会把主题名列表渲染进 docs/book/src/zerocode/zerocode-theme-list.md再被本文档在构建期{{#include}}进来因此这份列表永远不会被手工提交见 xtask/src/cmd/mdbook/themes.rs一致性护栏apps/zerocode/src/theme.rs 中的registry_themes_are_present测试对注册表主题做了抽样断言保证生成的表与仪表盘注册表对齐。1.1 主题的 9 个角色每个主题由 Theme 结构体 定义共 9 个颜色角色角色用途title标题、Agent 标签、面板标题heading小节标题、You: 标签、代码字符串body正文、输入区、代码块dim弱化文字、注释、边框、状态栏accent强调、错误提示、弹窗边框warn警告、行内代码、存储类型关键字selection_bg选中行背景tool工具调用标签[tool: name]、关键字background画布/全屏背景色例如默认主题icy_blue的完整调色板在 theme.rs 测试 中被锁定为常量title: Rgb(100, 200, 255) // 亮蓝 heading: Rgb(140, 230, 255) // 浅蓝 body: Rgb(220, 240, 255) // 近白蓝 dim: Rgb(80, 130, 170) // 灰蓝 accent: Rgb(255, 100, 80) // 橙红 warn: Rgb(255, 220, 80) // 亮黄 selection_bg: Rgb(30, 60, 100) // 深蓝 tool: Rgb(180, 140, 255) // 紫 background: Rgb(8, 14, 24) // 深底语法高亮同样跟随主题SyntaxScope枚举把 tree-sitter 的高亮名折叠为 14 种作用域关键字、字符串、注释、diff 增删等每种作用域映射到上述 9 个角色之一从而避免第二套硬编码颜色见 theme.rs。二、选择主题Config 面板操作打开Config面板 → 切换到zerocode区段 → 选择Theme标签页用↑/k与↓/j在列表中移动按Enter应用选中主题选择立即生效并持久化到 zerocode 配置高亮行会内联预览该主题的调色板——一行色块依次展示 canvas背景、title、heading、body、warn、tool 六个角色应用前即可看到效果。2.1 主题清单terminal主题是唯一由 zerocode 直接手写而非从注册表生成的主题因为它没有注册表条目terminal完全继承终端自身配色。9 个角色全部是Color::Reset且当background Reset时应用层会跳过背景绘制见 theme.rs 的 backdrop_style让用户精心调过的 shell 调色板原样透出。其余全部真实调色板按亮暗分组如下构建期由注册表生成名称均为 snake_caseDark27 套operator_dark、ayu_dark、catppuccin_mocha、cobalt2、code_red、default_dark、icy_blue、dracula、everforest_dark、flexoki_dark、gruvbox_dark、hacker_green、hazard、high_contrast_dark、kanagawa_dragon、kanagawa_wave、material_dark、monokai、night_owl、nord_dark、oled_black、one_dark、rose_pine、rose_pine_moon、solarized_dark、tokyo_night等Light13 套operator_light、catppuccin_latte、default_light、everforest_light、flexoki_light、gruvbox_light、high_contrast_white、kanagawa_lotus、material_light、nord_light、one_light、rose_pine_dawn、solarized_light、tokyo_night_day。完整列表由cargo xtask mdbook themes构建期生成并内嵌仓库中不提交成品文件以你当前构建实际包含的注册表为准。默认主题macOS 上是terminal其他平台一律是icy_blue对应源码常量 DEFAULT_THEME_NAME。2.2 兜底机制未知主题名永不拒绝启动如果[theme].name或某个 Agent 的覆盖项指向当前构建不存在的主题——可能是拼写错误也可能是更新版本写下的配置——zerocode不会拒绝启动而是回退到terminal主题。这一点由 resolve_theme 与resolve_agent_theme实现并有专门测试resolve_unknown_theme_falls_back_to_terminal佐证。三、逐 Agent 主题Code 与 Chat 面板主题可以跟随 Agent。当Code或Chat面板聚焦到某个配置了覆盖项的 Agent 时该 Agent 的主题会临时替换基础主题仅在该面板显示期间其他面板仍保持基础主题。这样你无需抬头看状态栏一眼就能从配色认出正在和哪个 Agent 协作。覆盖项配置在[theme.agent_override.alias]下与基础[theme]同构都是{ name }解析路径完全一致见 config/mod.rs 的 ThemeSection 与 AgentThemeOverride[theme] name icy_blue [theme.agent_override.coder] name dracula [theme.agent_override.planner] name nord_dark3.1 从 UI 设置覆盖项在 Config 面板的 zerocode 区段打开Agent Themes标签页列出 daemon 已启用的全部 Agent右侧显示每个 Agent 当前的覆盖主题无覆盖显示—底部页脚显示可用按键在某个 Agent 上按Enter打开标题为Theme → agent的赋值模式主题列表选中即赋给该 Agent按d清除高亮 Agent 的覆盖项。赋值与清除都是热生效的Code/Chat 面板在下一帧就完成重绘无需重启 zerocode且结果立即持久化到配置。覆盖项指向未知主题时同样回退到terminal与全局设置行为一致。3.2 持久化实现配置写入是外科手术式的persist_theme只改[theme].name一个键persist_agent_theme只写[theme.agent_override.alias].namepersist_agent_theme_clear则整段删除该 alias 条目若agent_override表变空则连表一起删除。未建模的配置段如[future]在写主题时会原样保留——相关行为由 config/mod.rs 的持久化测试 覆盖。3.3 运行时热切换机制进程内维护一个全局AGENT_OVERRIDES表theme.rsConfig 面板调用set_agent_override/clear_agent_override写入主循环每帧读取agent_override(alias)若聚焦的 Agent 有覆盖则保存基础主题active_raw避免把降级后的颜色存回去并换上该 Agent 的主题面板离开后再恢复。四、终端色深检测与降级zerocode 会在首次绘制时检测一次终端能渲染多少种颜色并据此调整输出。检测结果缓存于OnceLock见 color_depth.rs一次检测、全进程生效。色深触发条件Truecolor24-bit几乎所有终端的默认值。直接输出 24 位色现代终端及正确配置的终端复用器可原样渲染xterm-256macOS Terminal.app——它确实缺少 24-bit 色通过TERM_PROGRAMApple_Terminal精确识别。iTerm2、kitty、WezTerm、Ghostty 等支持 truecolor 的终端不受影响ANSI-16真正的低色终端TERM未设置或为dumb、ansi、任何*-16color值在低于 truecolor 的色深下每一个主题色包括预览色块都会被吸附到最近的可渲染值降到 256 色时RGB 会被映射到 xterm 的 6×6×6 色彩立方体索引 16–231与 24 阶灰度斜坡232–255中较近者——这样中性色能落在干净的灰度而非浑浊的立方体条目上rgb_to_xterm256并有grey_maps_to_grey_ramp_not_cube测试降到 16 色时映射到 16 个 ANSI 命名的最近颜色rgb_to_ansi16。降级只作用于 RGB 值Reset、命名色和Indexed色会原样透传。检测的纯函数核心detect_from_env被拆分出来便于测试覆盖了 Apple Terminal 封顶、dumb/空TERM、SSHtmux 等真实场景。4.1 强制指定色深ZEROCODE_COLOR设置ZEROCODE_COLOR环境变量可跳过自动检测未识别的值会被忽略继续走正常检测流程值色深truecolor、24bit、2424-bit truecolor256xterm-25616、ansi16 ANSI 色ZEROCODE_COLOR256 zerocode4.2 疑难排查tmux 里颜色发灰/近似单色症状在 tmux 中运行 zerocode常见于 SSH 到树莓派或远程主机调色板渲染得平淡甚至接近单色。根因zerocode 输出的是 24-bit 颜色但 tmux只在确认外层终端支持 RGB 时才会把 24-bit 色转发过去。如果 tmux 没有向上层终端通告 truecolor 支持颜色就被压扁了。修复在远程机器的~/.tmux.conf中告诉 tmux 客户端支持 RGBset -as terminal-features ,*:RGB然后重启 tmux 服务器使配置生效tmux kill-server重新附着后zerocode 的 truecolor 输出即可正确渲染。不想动 tmux 配置的替代方案强制使用不依赖 truecolor 透传的低色深ZEROCODE_COLOR256 zerocode五、配置示例速查一份完整的主题配置zerocode 配置文件[theme] name icy_blue # 基础主题macOS 默认 terminal其他平台默认 icy_blue [theme.agent_override.coder] name dracula # Code/Chat 面板聚焦 coder 时替换基础主题 [theme.agent_override.planner] name nord_dark要点回顾未知主题名不会导致启动失败一律回退terminalAgent 覆盖项为稀疏结构未列出的 Agent 使用基础主题全局色深可用ZEROCODE_COLOR强制truecolor/24bit/24、256、16/ansitmux 中颜色异常先检查terminal-features ,*:RGB是否已设置。六、延伸阅读主题引擎与全部样式助手apps/zerocode/src/theme.rs色深检测与降级算法apps/zerocode/src/color_depth.rs构建期生成的调色板表apps/zerocode/src/generated_themes.rs主题注册表单一事实来源web/src/contexts/themes.json配置解析与持久化apps/zerocode/src/config/mod.rs文档/仪表盘主题生成器xtask/src/cmd/mdbook/themes.rs、xtask/src/generate/zerocode_themes.rs赞分享人工智能AI Agent交互助手工具调用MCP Clients本地部署Agent 工作流RAG【免费下载链接】zeroclawFast, small, and fully autonomous AI personal assistant infrastructure, any OS, any platform — deploy anywhere, swap anything 项目地址https://gitcode.com/gh_mirrors/ze/zeroclaw点击查看免费下载相关推荐ZeroClaw 终端客户端 zerocode 完全指南配置管理、Agent 会话、远程 WSS 与主题体系ZeroClaw 终端客户端 zerocode 完全指南配置管理、Agent 会话、远程 WSS 与主题体系 zerocode 是 ZeroClaw 的终端界人工智能AI Agent交互助手工具调用MCP Clients本地部署Agent 工作流RAGalgorithm-stone数据库设计与实现LeetCode与Codeforces题目管理algorithm stone数据库设计与实现LeetCode与Codeforces题目管理 algorithm stone是一个专注于ACM/LeetCod开发工具TranslucentTB主题适配深色/浅色模式与系统主题同步方案TranslucentTB主题适配深色/浅色模式与系统主题同步方案 主题同步机制概述 TranslucentTB通过配置系统实现任务栏外观与系统主题的动态同步桌面应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考