快给macOS 上的Grok Bot换一套皮肤

给 macOS 上的 Grok Bot 换一套皮肤

Grok Bot App最近在用,感觉挺不错。但窗口却一直是黑/白界面,界面略显单调;而且订阅用量在二级入口,有次意外出现循环任务导致超量。。

基于以上,整了个皮肤工具:Grok Bot Skin 。

菜单栏切换皮肤,皮肤工作室里预览和导出分享,侧栏保持显示本周期订阅已用 / 剩余百分比。

仓库:github.com/Yellow5A5/G...

全部在用户本机完成。基于CDP完成CSS覆盖皮肤,不修改官方文件Grok Bot.app,不上传对话、账号或凭据。

效果

水墨夜、青玉林(Appearance 选 Dark):

木叶暖、复联霓(木叶暖用 Light,复联霓用 Dark):

草帽海(Light):

菜单栏:

皮肤工作室:

也可以自己做包,导出 .grokskin.zip 分享。

安装

本机需要:

  • macOS 13+
  • Node 22+
  • Xcode Command Line Tools(第一次会用 swiftc 编菜单栏)
  • /Applications 里已装 Grok Bot

脚本不会代装这些。环境齐了之后:

bash 复制代码
curl -fsSL https://raw.githubusercontent.com/Yellow5A5/Grok-Bot-Skin/main/scripts/install.sh | bash

它把工具复制到 ~/Library/Application Support/grok-bot-skin/app,编译菜单栏,打开 Grok Bot,并套上上次用的皮肤。已经有仓库目录时,执行 ./scripts/install.sh 效果相同。

装好后菜单栏会出现调色盘。点皮肤名切换;语言可切 English / 中文。

技术原理

Grok Bot 是带 Developer ID 签名和公证的 Electron 应用,包里还有 ElectronAsarIntegrity。改 /Applications/Grok Bot.app 里的 asar 或资源,会破校验,下一次官方更新也会冲掉。所以这个工具是旁边的配套程序 ,不碰那个 .app。

换肤分三步。

1. 带着本机调试口启动

菜单栏用官方应用自己的入口打开 Grok Bot,只多传一个参数:

text 复制代码
--remote-debugging-port=19222

这是 Chromium / Electron 的 Chrome DevTools Protocol(CDP)。端口绑在 127.0.0.1,不是 0.0.0.0,局域网访问不到。工具通过 http://127.0.0.1:19222/json/list 找到窗口,再经 WebSocket 发 Runtime.evaluate。

从官方 Dock 打开、且开了「跟随」时,如果这次没有带端口,菜单栏会先退出再带端口打开。关掉跟随、或菜单栏没开,就是原装窗口,没有皮肤。

2. 把皮肤编译成 CSS,注入到当前页

一份皮肤是文件夹:skin.json + 壁纸 / 封面。颜色写成 token(前景、窗口底、侧栏、对话面、强调色),编译成覆盖层 CSS。壁纸画在窗口真正的不透明层 .sand-shell 上,聊天区保持透明,图才能透出来。

注入时只插一条 <style>,再用 JSON.stringify 把 CSS 放进 textContent,不拼用户字符串进 JS。当前会话里可以用 Page.addScriptToEvaluateOnNewDocument 让新打开的页也带上同一套样式。进程退出后样式就没了;下次仍由菜单栏带着端口启动再注入。

3. 菜单栏是 Swift,干活的是本机 Node

菜单栏 Extra(LSUIElement)只负责菜单和登录项。点皮肤、开工作室、读状态,都是在本机执行 node bin/cli.mjs。皮肤工作室监听 http://127.0.0.1:4177/,同样不对外网开放。

上次用的皮肤、语言、是否显示用量,写在:

text 复制代码
~/Library/Application Support/grok-bot-skin/

导入的包也在这里的 packs/ 下。官方 Grok Bot 的数据目录不会被改。

订阅用量

侧栏那张卡片读的是 Grok Bot 窗口里已经有的接口,例如 window.desktop.main.getCursorUsageSummary、getCursorUsageBreakdown、getCursorWeeklyUsage、getCursorAuthStatus。接口只给订阅百分比时,就显示本周期已用 / 剩余。

这些数字只用来画在本机侧栏,不会发到任何服务器。

隐私

这套工具没有账号系统,没有远程后台,也没有统计上报。

数据 会不会离开这台 Mac
对话、侧栏里的会话名、输入框 不会。工具不读、不存、不传
Grok / Cursor 登录态、Cookie 不会。不读官方数据目录,不转发请求
订阅用量、token 只在本机渲染进程里读,画在侧栏
当前皮肤、语言、是否显示用量 只写本机 Application Support/grok-bot-skin/
壁纸和封面 只以 file:// 出现在本机窗口

调试口只听 127.0.0.1。皮肤工作室只听 127.0.0.1。仓库和安装脚本都不包含 Grok Bot.app,也不要求你把官方应用放进 git。

别人给的 .grokskin.zip 里可以带 CSS。只导入你信任的包。

说明

欢迎试用,也欢迎自己分享一套皮肤或者看看是否还有痛点需要拓展:github.com/Yellow5A5/G...

相关推荐
flash俊杰1 小时前
双引擎 OCR 编排:逐页判定、视觉优先、partial 语义与三层超时
前端
计算机魔术师1 小时前
Reddit 每周被 Google 偷走 100 万次点击,CEO 摊牌了
前端
前端繁华如梦1 小时前
用 React Three Fiber 做一栋能编辑的教学楼数字孪生
前端
前端繁华如梦1 小时前
用 React Three Fiber 做一套智慧医院数字孪生:编辑器、大屏和 BIM 浏览器
前端
俊昭喜喜里2 小时前
理解全局跨域CORS配置
前端
锋行天下5 小时前
DeepSeek写Langgraph就是个大傻逼,一本正经胡说八道
前端·人工智能·后端
jktantan5 小时前
每个节点 41 字节:把一棵百万节点树拆进 14 个 typed array
前端·javascript·vue.js·算法·typescript
计算机魔术师6 小时前
Anthropic官方插件被「寄生」,背后是同一类攻击又来了
前端
我命由我123456 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理