workbuddy自定义皮肤技能

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

WorkBuddy 深度换肤工具:用一句话或一张参考图生成专属皮肤并注入界面。WorkBuddy 组件不吃 --vscode-* 变量而用自有语义类(.wb-home-header / .chat-container / .conversation-sidebar),本 skill 直接覆盖这些真实语义类实现深度换肤。由于运行时注入(CDP / V8 inspector)已被硬化拦截,本 skill 通过对 app.asar 做最小字节手术注入皮肤 CSS(自动备份 app.asar.bak、可一键还原),无需调试端口。支持人物 / 电影画面 / 意境 / 艺术风格 / 参考图多种意图。触发词:换肤 / 皮肤 / 主题 / 生成皮肤 / 自定义皮肤 / 改外观 / 以这张图为准 / skin / theme / customize appearance。

一句话选型结论

按资料字段整理

workbuddy自定义皮肤技能是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_f6758951/workbuddy-new
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_f6758951仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791737359
正文体量16.7 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
workbuddy自定义皮肤技能当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

16.7 KB
模型实际读到的说明书原文,来自技能仓库

WorkBuddy Dream Skin

给 WorkBuddy(基于 VS Code 内核的 Electron 应用)做深度换肤。关键认知:WorkBuddy 大量组件
(首页 header、对话容器、侧边栏列表)不吃 --vscode-* 变量,而是用自己的语义类
(.wb-home-header、.chat-container、.conversation-sidebar …)。所以本 skill 不靠泛变量覆盖,
而是直接覆盖这些真实语义类——这才是「界面真的会变」的保证。

重要前提(已实测验证):WorkBuddy 的运行时注入全部被硬化拦截——
--remote-debugging-port 被 Node 启动器拒绝、--inspect 被单实例锁拦截、主进程 V8 inspector 上下文
无 require、渲染进程不可调试。因此本 skill 不依赖 CDP / 调试端口,唯一可行的注入面是
改写安装目录里的 app.asar(对其中渲染样式做最小字节手术)。这是有意的、可逆的、且会自动备份。

范式对齐开源项目 CodeDrobe/skills:皮肤以主题包形式组织(theme.json + workbuddy.css + 图片),
背景图通过 CSS 变量 --dream-hero / --dream-texture 注入,支持 generate → preview → apply → restore 闭环。


第 0 步:理解意图(最重要,先理解,再执行)

收到换肤请求后,先不要动手,把用户的话拆成下面几个维度来判断。一句请求往往同时命中多个维度。

维度 含义 例子 该怎么做
人物 (character) 点名了某个角色/人物 「紫霞仙子」「原神雷电将军」 用 ImageGen 生成该角色的原创同人立绘(prompt 明确规避版权/肖像),作头像/装饰
电影画面 / 场景 (scene) 指定某电影/游戏/动漫的具体名场面 「大话西游经典界面」「功夫女足名场面」 生成该场景的原创同人图作全屏背景,面板改半透明毛玻璃
意境 / 氛围 (mood) 抽象的氛围描述 「禅意」「莫兰迪高级灰」「赛博朋克霓虹」 走配色+渐变光晕路线,不必生成具体人物/场景图
艺术风格 (art style) 指定画风 「水墨」「像素风」「油画」「国潮」 影响 ImageGen 的 style 参数
参考图 (reference) 用户给了一张图并说「以这张图为准」 用户附件/路径 + 「照这个来」 见下方「参考图驱动」
深浅 明/暗偏好 「明亮清新」「深夜模式」 --mode light/dark

规则:
- 命中「电影画面/场景」或「人物」→ 优先生成原创同人图(不要偷懒用真实剧照或演员照片,有版权/肖像权风险)。
- 纯抽象意境词(「星空」「薄荷绿」「赛博朋克」)→ 走纯配色路线,不一定要出图。
- 参考图优先于一切调色板推断。
- 多维度可叠加:「大话西游经典界面,紫霞仙子,水墨风」= 场景 + 人物 + 艺术风格,三个都要做。
- 一句话没说清时,先按最合理的默认(意境/配色)做一版预览,再让用户微调,不要反复追问。

参考图驱动(用户给了一张图时)

  1. 把图取到本地绝对路径 IMG(附件可先保存到技能 assets/)。
  2. generate-skin.js --ref IMG:程序化解码取主色,并把该图作为全屏背景。
  3. 预览:make-preview.js --skin <out>.css --hero IMG。
    > 仅支持 8-bit 非隔行 PNG;JPG 自动降级为「当背景 + 用 --accent/--mode 配色」(不报错)。

第 1 步:生成 / 选取皮肤

$skill = "$env:USERPROFILE\.workbuddy\skills\workbuddy-dream-skin"
$node  = "$env:USERPROFILE\.workbuddy\binaries\node\versions\22.22.2\node.exe"

情况 A:用户给了一张参考图(配色 + 背景)

& $node "$skill\scripts\generate-skin.js" --desc "<用户的原话>" --name <英文id> --ref "C:\path\to\ref.png"

情况 B:纯意境 / 配色(一句话)

& $node "$skill\scripts\generate-skin.js" --desc "<用户的原话>" --name <英文id>
  • 自动识别关键词/主色/深浅;--accent "#ff5500" 强制强调色;--mode light/dark 切深浅。
  • 自定义文字(皮肤签名 / 标语):任意情况可加 --text "文字内容",浮层显示不挡操作。
  • 位置 --text-pos:bottom-right(默认) / bottom-left / top-right / top-left / center / watermark
  • 颜色 --text-color;字号 --text-size(默认 22)
  • 例:--text "我爱易烊千玺" --text-pos bottom-right

情况 C:经典电影 / 场景主题(已有主题包)

预设主题包在 skins/<id>/(含 theme.json + workbuddy.css + assets),直接用,无需重新生成:

主题 触发词 主题包目录
功夫女足 功夫女足 / 功夫足球 / 女足 / 少林女足 skins/kungfu-soccer(含完整 theme.json + 原创场景图)
大话西游 大话西游 / 紫霞 / 至尊宝 / 月光宝盒 skins/dahua-xiyou(大漠星夜 + 紫霞/至尊宝同人场景)
赛博朋克 赛博都市 / 霓虹夜景 / cyberpunk city skins/cyberpunk(霓虹都市 + Runner/Net 同人场景)
千与千寻 千与千寻 / 油屋 / 无脸男 / 白龙 skins/spirited-away(油屋夜景 + 千寻/无脸男同人场景)
英雄本色 英雄本色 / 小马哥 / 双枪 / Mark哥 / 浩南 / 我话事 skins/ying-xiong-ben-se(雨夜香港 + 英雄同人场景,红黑金港风)

> 上表主题包均可直接 --theme-dir 应用;命中风车场景词时 generate-skin.js 也能自动复制对应主题包。

# 直接应用已有主题包(见第 3 步),--theme-dir 指向 skins/kungfu-soccer

新建一个电影主题包(复用模板)

  1. 复制 skins/theme-starter/ → skins/<id>/,改名 theme.json 的 id/displayName。
  2. 用 ImageGen 生成原创场景图 assets/<id>_scene.png(人物/场景,规避版权)。
  3. 在 workbuddy.css 里把 --dream-hero 用到的图换成你的图(apply 时按 theme.json 的 images.hero 注入)。
  4. 改 :root.dream-host-workbuddy 的配色变量与组件样式。
  5. 扩充 theme.json 的 targets.workbuddy.verification.contexts(声明要验证的 landmark 节点)。

第 2 步:预览,让用户先看到样子

# 主题包预览(全屏背景 + 双头像,用 make-preview 时需手动指定图)
& $node "$skill\scripts\make-preview.js" --skin "$skill\skins\kungfu-soccer\workbuddy.css" `
  --hero "$skill\skins\kungfu-soccer\assets\kungfu_soccer_scene.png" --name "功夫女足经典" `
  --out "$skill\preview-kungfu-soccer.html"

预览是独立 HTML(自包含 base64 图),不影响真实 WorkBuddy。用 present_files 呈现预览 + 皮肤 CSS,
说明配色、深浅、是否含背景图/角色,并询问是否调整。


第 3 步:应用(让界面真正变化)

本步对安装目录的 app.asar 做最小字节手术:把皮肤 CSS 作为一个标记块追加进渲染样式文件,
其余文件(含原生模块、unpacked 外部文件)字节级不动。会自动备份 app.asar → app.asar.bak。

方式一:一步生成并改写(推荐)

# 1) 生成自包含静态 CSS + 对真实 app.asar 做字节手术,产出改包到 %TEMP%/wb-dream-skin/_patched.asar
#    (自动定位 WorkBuddy 安装、自动选目标 CSS、无需手填路径)
& $node "$skill\scripts\asar-patch.js" --theme-dir "$skill\skins\kungfu-soccer" --marker kungfu-soccer

# 2) 应用:备份 + 覆盖 + 重启(路径全部自动定位,可直接无参运行)
& $node "$skill\scripts\apply.js"

> apply.js 会先写 app.asar.bak(仅首次),再用改包覆盖 app.asar,然后重启 WorkBuddy。
> 如果调用方是 WorkBuddy 自身子进程,apply.js 会在覆盖后自动注册一次性计划任务完成重启,避免杀掉调用方。重启后界面即换肤。

方式二:分步(想先看改写产物时)

# 先只生成静态 CSS(自包含,hero 内联为 base64)
& $node "$skill\scripts\gen-static-css.js" --theme-dir "$skill\skins\kungfu-soccer" --out "$env:TEMP\wb-dream-skin\workbuddy.static.css"
# 再显式改写 app.asar(--asar 可省略,会自动定位安装目录;下面仅演示显式写法)
& $node "$skill\scripts\asar-patch.js" `
  --asar "$env:LOCALAPPDATA\Programs\WorkBuddy\resources\app.asar" `
  --target "renderer/assets/index-.*\.css" `
  --inject "$env:TEMP\wb-dream-skin\workbuddy.static.css" `
  --marker kungfu-soccer --out "$env:TEMP\wb-dream-skin\_patched.asar"
# 再应用(同上方式一的 apply.js)

方式三:调用方是 WorkBuddy 自身子进程时(如 agent 直接执行)

apply.js 默认已处理此情况:它会先覆盖 app.asar,再注册一个一次性计划任务来
完成「杀主进程 + 重启」,这样当前 agent 会话被结束时,重启动作已在独立任务里继续。

& $node "$skill\scripts\apply.js"

> 计划任务大约 1 分钟后触发。期间 agent 可能被重启断开,可稍后手动检查界面是否生效,
> 或查看 %USERPROFILE%\.workbuddy\skills\workbuddy-dream-skin\applied-asar-log.txt。

还原(一键恢复官方默认外观)

换肤前 apply.js 已自动把原版 app.asar 备份成 app.asar.bak。一条命令即还原:

& $node "$skill\scripts\apply.js" --restore

它会自动:① 结束 WorkBuddy 进程(解锁文件)→ ② 把 app.asar.bak 复制回 app.asar → ③ 重启 WorkBuddy。
约 1 分钟后生效(由一次性计划任务执行,避免杀掉当前 agent 会话)。重启后界面即回到官方原样,
官方自动更新也恢复正常(改写 app.asar 会使官方签名失效,更新前请先还原)。

> 提示:apply.js --restore 找不到 app.asar.bak 时会直接报错并停下,不会破坏任何文件。

手动还原(兜底,无需脚本):直接把备份复制回去再重开 WorkBuddy 即可。

Copy-Item "$env:LOCALAPPDATA\Programs\WorkBuddy\resources\app.asar.bak" `
  "$env:LOCALAPPDATA\Programs\WorkBuddy\resources\app.asar" -Force
# 重启 WorkBuddy 即恢复官方外观(或删掉 app.asar 后重装/更新)

排错小贴士(小白向)
- 报 找不到 WorkBuddy 安装目录:把 WorkBuddy 装到默认位置,或设置环境变量
WORKBUDDY_ROOT 指向安装目录(含 resources/app.asar 的那一层)。
- 报 找不到改包:先跑 asar-patch.js 生成 _patched.asar 再 apply.js。
- 报 找不到 app.asar.bak:说明从没成功换肤过,无需还原;或备份被手动删了,可重装 WorkBuddy 恢复。
- 报 覆盖 app.asar 失败 / 文件被占用:确认 WorkBuddy 已关闭,或由计划任务自动处理(推荐)。
- 想看详细日志:%TEMP%/wb-dream-skin/apply.log(不会写进技能目录)。
- 不确定参数:node scripts/apply.js --help 打印全部用法。


Guardrails(必须遵守)

  • 改写 app.asar 是预期行为,但属于修改宿主程序文件:操作前自动备份 app.asar.bak;
    改写会使官方代码签名失效,官方自动更新可能拒绝,直到还原。务必保留备份。
  • 会重启 WorkBuddy(关闭当前所有窗口)。非交互/agent 场景直接运行 apply.js,它会自动注册计划任务完成重启,避免杀掉调用方。
  • 不开启任何网络监听、不上传用户参考图、不连外部图床;仅本地文件读写。
  • 主题包当不可信输入:不执行主题内 JS,不加载外部 CSS 资源(图片仅限本地 file:///)。
  • 经典电影 / 角色主题以 AI 生成的原创同人致敬图呈现(大话西游、功夫女足、千与千寻、英雄本色等),
    属二次创作致敬,不直接搬运剧照或演员照片,规避版权与肖像权风险。
  • 装饰层 pointer-events: none,保留原生导航、输入、菜单、无障碍行为。
  • 不把皮肤发布到 improvised 端点;上架走官方市场并如实声明「本技能会修改宿主 app.asar」。

原理与文件

  • scripts/asar-patch.js — 最小字节手术:asar = [uint32 size][chromium-pickle(header JSON)][body]。
    只把皮肤块追加进目标渲染 CSS,并把其后所有文件偏移 +blockLen,unpacked/原生文件零改动。
    自动定位 app.asar 与「最大的 renderer/assets/index-*.css」;改写后自检(标记块 + base64 hero 存在、
    公共 asar.getRawHeader 能重解析)。子命令式 CLI:--theme-dir(一步生成并改写)或 --asar/--target/--inject/--out(显式)。
  • scripts/gen-static-css.js — 把主题包变成自包含静态 CSS(去作用域前缀、hero PNG 内联为 base64)。
    标记块由 asar-patch.js 独占,这里只输出裸 CSS。
  • scripts/apply.js — 备份 app.asar→app.asar.bak(仅一次)、用改包覆盖、重启。
    支持子命令:--restore 一键还原官方外观(从 app.asar.bak 恢复并重启);--help 打印用法。
    路径全部可省略,自动定位;若调用方是 WorkBuddy 子进程,则注册一次性计划任务完成重启,
    避免杀掉调用方。纯 Node 实现, skill 包里不再包含 .bat/.ps1 文件,以便通过市场文件类型检查。
  • scripts/generate-skin.js — 一句话/参考图 → 配色背景 CSS(含 --text 自定义文字、经典主题复制);依赖 lib/png-palette.js。
  • scripts/make-preview.js — 界面仿真预览(自包含 HTML)。
  • scripts/lib/png-palette.js — 零依赖 PNG 主色调提取(Node 内置 zlib)。
  • skins/<id>/ — 主题包(theme.json + workbuddy.css + assets/ 原创图,相对路径引用,可移植)。已有:
    kungfu-soccer(功夫女足)、dahua-xiyou(大话西游)、cyberpunk(赛博朋克)、
    spirited-away(千与千寻)、ying-xiong-ben-se(英雄本色)、theme-starter(中性起点模板)。

已知限制(务必告知用户)

  1. 版本敏感:渲染 CSS 文件名是按版本哈希的(如 index-B1I-AkRx.css),随 WorkBuddy 大版本变化;
    asar-patch.js 自动选「最大的 renderer/assets/index-*.css」,但个别组件类名若随之调整,皮肤可能需微调 CSS。
  2. 改写 app.asar:部分杀软/EDR 可能告警该写入;公司管控机可能禁止写 Program Files。遇阻用 app.asar.bak 还原。
  3. 重启才生效:注入在文件里,重启即加载;当前窗口会关闭。
  4. 参考图只支持 8-bit 非隔行 PNG(JPG 自动降级为当背景 + 手动配色)。
  5. 市场审核风险:因改写宿主程序文件,公共市场安全扫描可能拦截或要求人工审核(见发布/上架)。

发布 / 上架

  • 本机私用:整目录放 ~/.workbuddy/skills/workbuddy-dream-skin/,WorkBuddy 自动加载。
  • 打包:用 skill-creator/scripts/package_skill.py <skill目录>,本地只校验 frontmatter(name 须 hyphen-case、
    description 无尖括号);真实体积上限 50MB 由市场在上传时执行。务必保持目录精简:
    改包 _patched.asar(~256MB)和生成的静态 CSS 都在 %TEMP% 下、由 apply 时现生成,不要提交进技能目录。
  • 公共市场:ClawHub(clawhub.ai)或 SkillHub(skillhub.cn / cnb.cool/skills),需实名/审核。
    本技能会改写宿主 app.asar,上架时须如实声明此行为,可能面临安全扫描拦截或人工审核;
    若被拒,可改为私有/团队市场分发。

上架前自查

  • [ ] 真机跑一次第 3 步(方式一),确认界面真的换肤、重启后生效。
  • [ ] generate-skin.js 三种路径(参考图 / 配色 / 经典场景)均产出合法 CSS。
  • [ ] skins/<id>/assets/ 图均为 AI 生成的原创同人致敬图(非直接搬运剧照/演员照片),规避版权与肖像权。
  • [ ] 技能目录 ≤ 50MB(不含 _patched.asar 等生成物)。
  • [ ] app.asar.bak 机制可用,能一键还原。

常见问题

5 问
答案由本站依据条目字段整理
workbuddy自定义皮肤技能怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_f6758951/workbuddy-new。安装方式为未标注。装完刷新技能列表或重开客户端。

workbuddy自定义皮肤技能支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

workbuddy自定义皮肤技能权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

workbuddy自定义皮肤技能收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

workbuddy自定义皮肤技能用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。