Codenotch Windows版Rust Tauri 2 移植方案全解析同一设计跨平台读取AI用量【免费下载链接】codenotchA macOS app that pins usage limits from Claude Code, Cursor, Codex, and Antigravity to a screen edge.项目地址: https://gitcode.com/gh_mirrors/co/codenotchCodenotch 是一款把 Claude Code、Cursor、Codex、Antigravity 等 AI 工具的用量额度钉在屏幕边缘的 macOS 小工具如今它已用 Rust Tauri 2 完整移植到 Windows。这个移植版不复制任何一行 Swift 代码而是按照官方设计文档和各家接口行为重新实现同样的屏幕边缘药丸 彩色进度环 悬停卡片设计语言在 Windows 上由 WebView2 渲染后台用 Rust 定时读取各家的本地凭证并请求用量接口。下面带你从原理到构建完整看懂这套跨平台方案。一、为什么需要边缘用量环写代码用 AI 助手时最让人抓狂的不是没额度而是突然没额度Claude 的 5 小时窗口、Codex 的周限额、Cursor 的计费周期各家各表只能挨个打开网页查。Codenotch 的思路是把答案焊在屏幕边上装了就显示某家没装/没登录它就不占格子一眼看百分比绿色健康、黄色过半、橙色告急、红色见底悬停看细节每个窗口当前会话 / 5小时 / 每周 / 每月单独一条进度条Claude 在干活时环里会转细弧等你确认时变琥珀色闪烁设计稿的参考图就在仓库里docs/specs/2026-08-28-usage-notch-design.md 里写明了纯黑、无阴影、反圆角药丸的视觉纪律Windows 版逐条执行。二、技术选型Rust Tauri 2 如何搭起这套跨平台底座1. Tauri 2 负责窗Windows 版的核心是一个无边框、透明、置顶、不占任务栏的小窗口配置写在 windows/codenotch/tauri.conf.jsontransparent: truedecorations: false药丸形状全靠 CSS 画没有原生窗口边框alwaysOnTop: true悬浮在所有窗口之上frontendDist: ui界面就是 windows/codenotch/ui/notch.html 一个本地 HTML 页由系统自带的 WebView2Win11 预装渲染这样同一设计跨平台就成立了macOS 用 SwiftUIWindows 用 HTMLCSS但两端的尺寸、圆角、配色、动效都来自同一份设计稿而不是互抄代码。2. Rust 负责读所有 provider 逻辑都是纯 Rust 模块Win32 特有的部分用cfg(windows)隔离其余代码天然可移植。工作区在 windows/Cargo.toml只有两个 crate模块作用codenotch/主程序药丸、卡片、设置、托盘、各 provider 读取codenotch-hook/一个几 KB 的小客户端Claude Code 的 hooks 回调它上报会话事件发布配置还开了lto、codegen-units 1、strip——一个后台常驻小工具体积和性能都尽量压到底。3. 跨平台读取的核心原则借登录态只读不写各家 provider 的读取路径是这套移植方案的精华详见 windows/README.md 的对照表Claude读~/.claude/.credentials.json里的 token → 请求官方用量接口token 快过期时自动跑一次独立claude -p续期永不过期就绝不发送usage.rsCodex只读~/.codex/auth.json的本地登录态HTTP 失败时可唤起本机原生codex.exe走官方 app-server 接口兜底再失败才读会话快照Cursor直接读编辑器自己的 SQLite 会话库state.vscdbcursor.rs零登录成本Antigravity优先跑官方agyCLI 的/usage在原生 ConPTY 伪终端 JobObject 里执行70 秒超时、自动清理进程树没装 CLI 才走本地桥接兜底antigravity.rs、agy_cli.rsGrok / Copilot / OpenCode / GLM同样借自家工具已登录的凭证只读、不刷新、不落日志一句话Codenotch 从不替你登录只读你已经在用的登录态失败时保留上次读数并标注过期而不是编一个百分比出来。三、把药丸搬上屏交互与细节Windows 版还原了 macOS 原版的标志性交互源码注释里还标注了对应的 Swift 实现出处拖到任意屏幕边缘按住六个圆点或 Alt 拖拽药丸会沿边框绕场跟手移动松手落定。实现在 carry.rs——拖拽时不动窗口而是在整个工作区上叠一层覆盖画布跟随指针的弹簧轨迹落定才真正移动窗口避免卡顿自适应药丸折叠态每 0.5 秒读一次药丸旁边一条细窄的屏幕像素带只保留平均亮度深色背景上药丸自动变亮backdrop.rs设置窗口 托盘菜单环的显示范围、尺寸、所在屏幕/边缘、开机自启、语言都在 settings_window.rs 与 traymenu.rs 里多语言托盘、卡片、设置三个界面各带语言表支持中、英、俄、日、韩、乌克兰语i18n.rs四、从源码运行构建与自诊断三步走构建前置RustMSVC 工具链WebView2 运行时Win11 自带Win10 需安装构建与运行在windows/目录下执行cargo build --release .\target\release\codenotch.exe # 药丸出现在主显示器右边缘 .\target\release\codenotch.exe doctor # 自诊断凭证、数据源、图标、hooksdoctor子命令是这套方案的贴心设计doctor.rs检查配置、端口占用、会话文件、解析结果并把报告写入%APPDATA%\codenotch\doctor.log——排查问题看证据而不是猜。顺带支持 Linux因为 Win32 部分都藏在cfg(windows)后面同一个 crate 在 Linux 上直接能编。装好libwebkit2gtk-4.1-dev等依赖后跑 scripts/run-linux.sh 即可它以 X11 方式运行Wayland 不允许客户端自己摆窗口并自动处理 snap 环境的库路径问题。拖拽、窗口聚焦等少数依赖 Win32 API 的功能会安静降级其余 provider 与 UI 行为与 Windows 一致。五、代码地图快速定位模块想看点什么去哪看窗口初始化、屏幕管理windows/codenotch/src/main.rsClaude 用量读取与 token 续期windows/codenotch/src/usage.rs各家 provider 适配器codex.rs、cursor.rs、grok.rs、copilot.rs、opencode.rs、antigravity.rs、glm.rs界面药丸/卡片/设置windows/codenotch/ui/ 下的 notch.html、settings.html、carry.html托盘与菜单tray.rs、traymenu.rsClaude hooks 事件上报windows/codenotch-hook/src/main.rs设计文档与计划docs/specs/、docs/plans/六、总结Codenotch Windows 版是同一设计跨平台的一个干净样本设计上macOS 与 Windows 共享同一份设计稿视觉纪律逐条还原而不是代码互抄架构上Tauri 2 WebView2 管窗纯 Rust 管读Win32 依赖全部cfg(windows)隔离Linux 顺手就能跑数据上坚持借登录态、只读不写、失败不编数的克制原则token 永不出日志体验上屏幕边缘药丸 拖拽绕场 悬停明细卡 doctor 自诊断覆盖从安装到排障的全流程如果你在多个 AI 工具之间切换又不想反复打开网页查额度这套 Rust Tauri 方案值得直接克隆仓库体验仓库地址https://gitcode.com/gh_mirrors/co/codenotch或者打开windows/README.md按上面的步骤从源码跑起来。【免费下载链接】codenotchA macOS app that pins usage limits from Claude Code, Cursor, Codex, and Antigravity to a screen edge.项目地址: https://gitcode.com/gh_mirrors/co/codenotch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考