夜雨聆风学习资料网

ARTICLE · 1158704

让codex实时展示用量的插件提示词

让codex实时展示用量的插件提示词
有时候,我会同时给 Codex 分配好几个任务。

开始之前想先看下剩余用量,再决定哪个任务先做、哪个任务晚一点做。但每次查看用量都要点三下。

我有点懒,于是让codex自己想办法解决一下。
它建议做一个插件,第一版是两个进度圈。
能用,但有点像系统监控工具,不够好玩,我就让它改一下。
基于设计图,我又增加了动态变化、自动收起和边缘吸附的功能。
最终动态就是下面这样,它会显示 Codex 的 5 小时额度和每周额度。额度变化时,两颗软糖的大小也会跟着变化。不用的时候它会缩到桌面边缘,尽量不遮挡工作区。
开发完还要测试样式及功能稳定性,如果不想自己折腾,也可以把以下完整提示词和截图一起丢给codex开发。提示词里已经考虑了更新频率、动态、颜色描述等细节。
请为 macOS 开发一个轻量的 Codex 用量悬浮应用,产品名为YoYo。可以根据实际 macOS 和 Codex 安装环境调整实现,但不得用示例数据代替真实数据。## 一、数据读取1. 读取当前已登录 Codex 账户的真实用量,展示:   - 5 小时剩余百分比   - 本周剩余百分比2. 使用 Codex 本地 app-server,通过换行分隔的 JSON 消息通信:   - 启动 `codex app-server --stdio`   - 发送 `initialize`   - 等待初始化成功   - 发送 `initialized`   - 调用 `account/rateLimits/read`3.`initialize.params.clientInfo` 至少包含:   - `name`: `yoyo`   - `title`: `YoYo`   - `version`: 当前应用版本4. app-server 返回的是 `usedPercent`,界面显示时必须换算为:`remainingPercent = max(0, 100 - usedPercent)`5. 不要把 Codex CLI 路径只写死为单一路径。按顺序检查至少以下位置:   - `/Applications/ChatGPT.app/Contents/Resources/codex-cli/bin/codex`   - `/Applications/Codex.app/Contents/Resources/codex-cli/bin/codex`   - 旧版本 ChatGPT/Codex 应用内的 `Contents/Resources/codex`   - `/opt/homebrew/bin/codex`   - `/usr/local/bin/codex`   优先采用动态发现和兼容回退,避免 Codex 更新后失效。6. 对每次数据请求设置约 20 秒超时。超时后终止本次 app-server 子进程,但不能删除或覆盖已有有效缓存。7. 禁止并发发起多个刷新请求。上一轮尚未结束时,跳过新的定时请求。## 二、缓存与无感同步1. 每次成功刷新后,将以下内容保存到本地缓存:   - 5 小时剩余百分比   - 本周剩余百分比   - 两个额度的重置时间   - 最近成功更新时间2. 应用启动后:   - 立即读取并展示最近一次成功缓存   - 同时在后台请求最新数据   - 不得等待用户展开、悬停或点击后才开始同步3. 应用在后台运行期间,每 60 秒自动同步一次,即使悬浮窗处于收起状态也要继续同步。4. 用户展开悬浮窗时,应立即显示最近一次成功数据,不能先出现加载页或用转圈遮挡旧数据。5. 后台同步期间继续展示旧数据,只在底部显示“同步中…”。6. 同步成功后,无感更新数值、重置时间和最近更新时间。7. 同步失败时:   - 如果存在缓存,继续显示缓存数据   - 底部显示“同步失败 · 上次更新 HH:mm”   - 如果从未获得过有效数据,才显示完整错误提示   - 错误信息应区分:找不到 Codex、启动失败、请求超时、返回格式无效8. 提供手动刷新按钮,但手动刷新同样不能清空或遮挡已有数据。## 三、界面设计1. 使用 SwiftUI 创建无标题栏、始终置顶、可拖动的透明磨砂悬浮卡片。2. 用两颗不规则软糖代替进度圈:   - 5 小时额度使用明亮樱花粉   - 本周额度使用柔和淡紫色3. 软糖的可见面积必须与剩余百分比成正比,因此直径按百分比平方根计算;中央显示准确百分比。4. 软糖边缘平滑但明显不规则,具备:   - 半透明果冻质感   - 粉紫色柔和外发光   - 向内部晕染的柔白边缘   - 左上和右下两处白色高光   - 边缘不能像清晰描边一样生硬5. 两颗软糖都要持续进行柔和的果冻形变,但必须使用不同的速度、相位、形变幅度和方向,不能同步运动。6. 整体卡片尽量紧凑,充分利用空间;底部的额度重置时间、同步状态和更新时间必须清晰可读。## 四、交互行为1. 默认收起成一条紧凑标题。2. 鼠标悬停时平滑展开;鼠标移开后自动收起,不需要点击。3. 收起和展开时,窗口尺寸、内容透明度及缩放应使用一次协调动画,避免重复动画、跳动和卡顿。4. 支持拖动后吸附到:   - Codex 窗口上方   - Codex 窗口左侧   - Codex 窗口右侧   - 屏幕最左边缘   - 屏幕最右边缘5. Codex 窗口关闭时自动隐藏;再次打开 Codex 时自动显示。隐藏期间后台定时同步仍应正常运行。6. 配置用户级自动启动,不要求管理员权限。用户登录 macOS 后应用在后台运行,但只有 Codex 打开时才显示悬浮窗。## 五、安装与交付1. 生成 Apple 芯片 Mac 可运行的 Release 版本 `YoYo.app`。2. 对应用执行签名并使用 `codesign --verify --deep --strict` 验证。3. 制作 ZIP 安装包,包含:   - `YoYo.app`   - `安装.command`   - 用户级 LaunchAgent 模板   - 中文安装说明4. 安装脚本负责:   - 将应用复制到 `~/Applications/YoYo.app`   - 将 LaunchAgent 安装到 `~/Library/LaunchAgents`   - 根据 `$HOME` 动态生成实际执行路径   - 重新加载用户级 LaunchAgent   - 启动应用5. 必须使用 Release 构建。6. LaunchAgent 模板只能包含占位符或通用路径,安装时再动态替换。## 六、完成验证交付前必须实际验证:1. 应用可以成功编译。2. app-server 握手成功。3.`account/rateLimits/read` 能读取真实数据。4.`usedPercent` 已正确换算为剩余百分比。5. 启动时能立即显示缓存。6. 不展开悬浮窗时,缓存更新时间仍会每分钟变化。7. 同步失败时旧数据不会消失。8. 请求超时后下一分钟仍能继续尝试同步。9. 手动刷新有效。10. LaunchAgent 正常运行。11. 重新登录 macOS 后应用能自动启动。12. Codex 打开和关闭时,悬浮窗能正确显示或隐藏。13.`.app` 签名验证通过。14. ZIP 完整性验证通过。完成后报告:- 实际数据读取结果- 自动刷新验证时间- LaunchAgent 状态- 签名验证结果- 隐私扫描结果- ZIP 文件位置及 SHA-256

相关学习资料