Cyber Lightband · Ambient Programming
氛围灯编程
赛博灯带
Vibe Light 是一个运行在 uTools 中的桌面氛围灯插件。它监听 Codex、Claude Code、OpenCode 等 AI 工作流的 Hook 事件,把空闲、思考、等待输入、报错这些状态,映射成屏幕四周的漫散射灯带, 再用顶部胶囊做最轻量的状态提醒。
Cyber Lightband · Ambient Programming
Vibe Light 是一个运行在 uTools 中的桌面氛围灯插件。它监听 Codex、Claude Code、OpenCode 等 AI 工作流的 Hook 事件,把空闲、思考、等待输入、报错这些状态,映射成屏幕四周的漫散射灯带, 再用顶部胶囊做最轻量的状态提醒。
当前版本的灯带已经从硬边色条,调整到更柔和的漫散射形式。尤其“环绕高光”模式, 不再是大块激进移动,而是整圈持续呼吸,中间最亮的光团沿四边巡航。
整圈灯带用柔和节奏起伏,适合长时间编码时维持轻量状态感知,不打断视线。
保持最稳定的状态表达,没有额外运动,适合你希望灯带只承担“当前状态”而不是节奏提示时。
整圈都亮着,但最亮的高光沿四边绕行,像呼吸灯里有一颗更亮的流光头在画圈。
在 uTools 开发者工具里接入本地 vibe_light 目录,打开主设置面板。
设置 Hook 的 IP、端口、路径,选择当前使用的 Provider,并保存配色方案。
点击“启动监听”,四边灯带和顶部胶囊会被创建,桌面开始进入可视化状态。
通过真实 Hook 或 Python 测试脚本发送事件,桌面边缘立即切换成对应的光效与颜色。
当前产品已经支持三套独立 Provider 配置。你可以分别保存 Hook 地址、灯带厚度、模式与四状态颜色, 在不同 AI 编程环境中快速切换,而不用重配整套桌面光效。
hooks.json 放到 ~/.codex/ 目录下。
/hook,按提示开启 hook 权限即可。
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"thinking\",\"event\":\"UserPromptSubmit\"}'"
}
]
}
],
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"thinking\",\"event\":\"PreToolUse\"}'"
}
]
}
],
"PermissionRequest": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"approval\",\"event\":\"PermissionRequest\"}'"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"idle\",\"event\":\"Stop\"}'"
}
]
}
]
}
}
hooks.json 放到 ~/.codex/ 目录下。
/hook,按提示开启 hook 权限即可。
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"thinking\",\"event\":\"UserPromptSubmit\"}'"
}
]
}
],
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"thinking\",\"event\":\"PreToolUse\"}'"
}
]
}
],
"PermissionRequest": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"approval\",\"event\":\"PermissionRequest\"}'"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"idle\",\"event\":\"Stop\"}'"
}
]
}
]
}
}
hooks.json 放到 ~/.codex/ 目录下。
/hook,按提示开启 hook 权限即可。
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"thinking\",\"event\":\"UserPromptSubmit\"}'"
}
]
}
],
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"thinking\",\"event\":\"PreToolUse\"}'"
}
]
}
],
"PermissionRequest": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"approval\",\"event\":\"PermissionRequest\"}'"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST http://127.0.0.1:3030/hook -H 'Content-Type: application/json' -d '{\"provider\":\"codex\",\"status\":\"idle\",\"event\":\"Stop\"}'"
}
]
}
]
}
}
当你长时间和 Codex、Claude Code 或 OpenCode 协作时,最消耗注意力的不是代码本身, 而是你总要回头确认“现在在思考、还是等待输入、还是已经报错”。Vibe Light 把这件事从终端里拿出来,放回桌面边缘。
当前版本已经具备完整的本地联调能力:uTools 面板、配置持久化、顶部胶囊、四边灯带、Hook 服务、 Python 测试脚本、Provider 独立配色,以及三种桌面灯效模式。