Cyber Lightband · Ambient Programming

氛围灯编程

赛博灯带

Vibe Light 是一个运行在 uTools 中的桌面氛围灯插件。它监听 Codex、Claude Code、OpenCode 等 AI 工作流的 Hook 事件,把空闲、思考、等待输入、报错这些状态,映射成屏幕四周的漫散射灯带, 再用顶部胶囊做最轻量的状态提醒。

Provider Codex / Claude Code / OpenCode
Light Modes 呼吸灯 / 常亮 / 巡航高光
Desktop Layer 四边鼠标穿透 + 顶部可拖拽胶囊
思考中

三种灯效,现在都更像真正的桌面光

当前版本的灯带已经从硬边色条,调整到更柔和的漫散射形式。尤其“环绕高光”模式, 不再是大块激进移动,而是整圈持续呼吸,中间最亮的光团沿四边巡航。

Breathe

氛围呼吸灯

整圈灯带用柔和节奏起伏,适合长时间编码时维持轻量状态感知,不打断视线。

空闲 思考
Solid

纯色常亮

保持最稳定的状态表达,没有额外运动,适合你希望灯带只承担“当前状态”而不是节奏提示时。

等待输入 报错
Orbit

巡航高光

整圈都亮着,但最亮的高光沿四边绕行,像呼吸灯里有一颗更亮的流光头在画圈。

高光头 漫散射底光

从打开插件到桌面亮起,只需要四步

01

加载插件

在 uTools 开发者工具里接入本地 vibe_light 目录,打开主设置面板。

02

配置监听

设置 Hook 的 IP、端口、路径,选择当前使用的 Provider,并保存配色方案。

03

启动桌面层

点击“启动监听”,四边灯带和顶部胶囊会被创建,桌面开始进入可视化状态。

04

发送 Hook

通过真实 Hook 或 Python 测试脚本发送事件,桌面边缘立即切换成对应的光效与颜色。

选择 Provider,直接进入对应配置

当前产品已经支持三套独立 Provider 配置。你可以分别保存 Hook 地址、灯带厚度、模式与四状态颜色, 在不同 AI 编程环境中快速切换,而不用重配整套桌面光效。

Codex

OpenAI Codex 配置页

Start 01 hooks.json 放到 ~/.codex/ 目录下。
Start 02 在 Codex 中输入 /hook,按提示开启 hook 权限即可。
展开查看 hooks.json
{
  "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\"}'"
          }
        ]
      }
    ]
  }
}
Claude Code

Claude Code 配置页

Start 01 hooks.json 放到 ~/.codex/ 目录下。
Start 02 在 Codex 中输入 /hook,按提示开启 hook 权限即可。
展开查看 hooks.json
{
  "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\"}'"
          }
        ]
      }
    ]
  }
}
OpenCode

OpenCode 配置页

Start 01 hooks.json 放到 ~/.codex/ 目录下。
Start 02 在 Codex 中输入 /hook,按提示开启 hook 权限即可。
展开查看 hooks.json
{
  "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\"}'"
          }
        ]
      }
    ]
  }
}

它不是替代终端,而是给 AI 编程增加“桌面感知层”

为什么做这个产品

当你长时间和 Codex、Claude Code 或 OpenCode 协作时,最消耗注意力的不是代码本身, 而是你总要回头确认“现在在思考、还是等待输入、还是已经报错”。Vibe Light 把这件事从终端里拿出来,放回桌面边缘。

现在的产品形态

当前版本已经具备完整的本地联调能力:uTools 面板、配置持久化、顶部胶囊、四边灯带、Hook 服务、 Python 测试脚本、Provider 独立配色,以及三种桌面灯效模式。