Claude Skins 终端皮肤
为 Claude Code CLI 一键切换终端配色、ASCII 横幅、状态栏主题、语音人格和工具提示音的皮肤系统。
脚本仅操作本地文件(~/.claude/skins、output-styles 符号链接、/tmp 标记),无网络访问、无凭据读取、无隐蔽行为;激活/重置均有回滚路径(OSC 110-112 重置、删除符号链接、恢复 default)。扣分点:激活脚本与 deactivate 均写入 /tmp/claude-skin-restore 供状态恢复,共享 /tmp 路径存在被干扰的理论风险;安装要求用户手动修改 settings. 挂载多个 hook(影响面超出纯外观),且 SKILL.md 本身未向用户说明 hook 已介入会话生命周期;未确认目标终端行为即写入 /dev/tty。整体风险可见、可控。
脚本整体自洽:参数缺省、皮肤不存在时列出可选皮肤并以 exit 1 反馈、set -euo pipefail、缓存带 TTL。扣分点:无任何测试与 CI 证据覆盖关键路径;SKILL.md 指示依赖 jq、parse-yaml.sh 等仓库内其他文件,但 SKILL.md 未声明这些依赖与安装前置;skin-command-hook.sh 用 echo "$input" 传 JSON,若输入含反斜杠序列可能损坏;statusline.sh 将 ANSI 转义存入缓存再拼接输出,echo -e printf 语义混合,跨终端兼容性未验证;异常输入(如皮肤名带空格)缺少诊断性失败提示。
触发条件明确(/skin、change skin、switch theme 等 USE WHEN 描述),四种子命令行为清晰,非目标环境(无 OSC 支持终端)在 README 有说明。扣分点:能力边界与不适用范围仅部分披露(如需手动安装 hook、依赖 Claude Code CLI);无中文界面或中文文档;核心功能完全依赖 Claude Code 生态,对 FollowSkills 中文用户需额外说明;personality 激活逻辑在 SKILL.md 与 hook 脚本间路径一致但仅在文件存在时静默生效,触发精度依赖用户已正确完成安装。
README 结构清晰(快速开始、手动安装、皮肤画廊、hook 配置、自定义指南),MIT 许可证齐全,注明了 banner 改编来源(hermes-skins)。扣分点:无版本号与 changelog;SKILL.md 要求用户手动复制到 ~/.claude/skills/skin/,无版本同步机制;维护者责任与更新路径仅在 README 隐含(Discussion),未明确声明;SCHEMA.md、CONTRIBUTING.md、install.sh 被引用但不在本次证据范围内,关键假设(安装脚本行为)不可静态核实。
核心任务(切换终端配色、横幅、状态栏、声音)在脚本层面可自洽完成,切换即时无需重启,回滚明确,价值清晰且与替代方案(手动改终端主题)相比有边际价值。扣分点:静态审查无法验证实际渲染效果,demo.gif 为仓库自证;statusline 的转义输出与各终端兼容性未验证;声音功能在多数 Linux 环境可能静默降级为无声,实际体验完整性存疑。
证据以可审计的一手源码为主:SKILL.md、引擎脚本、README 交叉一致(命令名、路径、hook 名称互相印证),来源归属(hermes-skins 改编)明确。扣分点:无测试套件、无 CI 工作流、无第三方执行证据;demo.gif 与画廊页面不可在静态审查中核实;README 引用的 COMPATIBILITY.md、SCHEMA.md 未提供,兼容性主张无法交叉验证。静态上限 5 分,扣除覆盖不足后给 4 分。
- 安装需手动修改 ~/.claude/settings. 挂载 SessionStart/SessionEnd/PostToolUse hook 与状态栏,改变 Claude Code 会话行为面,请确认后再启用。
- 脚本依赖 jq 与仓库内其他未在此评估路径中的文件(install.sh、SCHEMA.md、COMPATIBILITY.md),完整性未验证。
- 无测试与 CI 证据,终端转义序列在特定终端上的兼容性与 /tmp 状态文件的安全性未经独立验证。
- 发布者未经 FollowSkills 企业注册表验证,身份未知;无版本号与变更记录,升级需自行跟踪仓库。
- 声音与状态栏功能可能静默降级;核心功能完全依赖 Claude Code CLI 生态,中文用户请注意文档仅英文。
这个 Skill 能做什么,适合哪些场景?
claude-skins 是一个为 Claude Code CLI 打造的视觉主题(皮肤)管理技能,通过 /skin 命令即可列出、切换、重置或设置默认皮肤。每个皮肤可同时改变终端颜色、盲文/ASCII 横幅、状态栏样式、Claude 的语气人格以及工具调用提示音。项目内置九款皮肤(如 Nebula、Mythos、Netrunner、Noir 等),并提供模板和 SCHEMA.md 供用户自制皮肤。皮肤只影响观感和声音,不改变核心行为。
运行 ~/.claude/skins/engine/ 下的 shell 脚本完成切换:/skin 无参数时调用 skin-command-hook.sh 列出皮肤并高亮当前项;/skin <name> 调用 activate.sh 应用 OSC 颜色序列、横幅、状态栏主题和提示音,并读取 personalities/<name>.md 让 Claude 采用对应语气;/skin reset 调用 deactivate.sh 恢复终端默认;/skin default 读取 engine/current 后写入 config.yaml 的 default_skin 字段。激活即时生效,无需重启。
- 喜欢在深色终端里换主题、给开发环境增加仪式感的开发者
- 希望 Claude 在不同场景用不同语气(如 Noir 侦探旁白、Grimoire 巫师口吻)的用户
- 想要终端提示音反馈文件写入、命令执行和错误结果的 macOS/Linux 用户
- 习惯把终端环境纳入 dotfiles 管理、追求可复现配置的运维或极客
- 想按 SCHEMA.md 和 template.yaml 设计自有品牌主题的终端主题爱好者
这个 Skill 有哪些优点和局限?
- 一条 /skin 命令完成切换,即时生效无需重启
- 同时覆盖颜色、横幅、状态栏、人格和提示音五个层面
- 内置九款风格迥异的现成皮肤,并提供模板和完整 SCHEMA 便于自制
- 缺少的字段自动继承默认皮肤,自定义只需定义差异项
- MIT 许可,兼容 iTerm2、Kitty、WezTerm、Ghostty 等主流终端
- 工具提示音在 Linux 上依赖 PulseAudio/ALSA,Windows 下需 WSL
- 需要手动编辑 settings. 配置多个钩子和 statusLine,安装环节偏繁琐
- 人格语气只在当前会话生效,需另行设为默认皮肤才持久
- 仓库未展示测试套件,未见跨终端的自动化验证证据
如何安装这个 Skill?
克隆仓库并运行安装器:git clone https://github.com/basicScandal/claude-skins.git && cd claude-skins && ./install.sh。也可手动安装:把 skins/ 和 personalities/ 复制到 ~/.claude/skins/,把 engine/ 复制到 ~/.claude/skins/engine/,chmod +x ~/.claude/skins/engine/*.sh,然后在 ~/.claude/settings. 中添加 SessionStart、SessionEnd、PostToolUse 钩子和 statusLine 配置,并按 engine/SKILL.md 创建 ~/.claude/skills/skin/SKILL.md。
如何使用这个 Skill?
在 Claude Code 会话中输入:/skin 列出可用皮肤;/skin nebula 立即切换到指定皮肤;/skin reset 恢复终端默认;/skin default 把当前皮肤设为永久默认。切换即时生效,无需重启会话。
这个 Skill 与同类方案有什么区别?
README 明确说明本项目受 joeynyc/hermes-skins 启发,Mythos 与 Netrunner 的横幅画即改编自该项目(MIT 许可)。