一个面向 macOS 的本地优先菜单栏应用,用来统一管理 AI 账号、代理入口和本地开发工作流工具。
AI Usage 是一个基于 Tauri + React + Rust 构建的本地优先 macOS 菜单栏应用,面向同时管理多个 AI 账号、代理入口和开发工作流数据的个人开发者。
当前代码里的产品形态已经是“三层合一”:
- 账号中心:统一管理额度快照、授权状态、低额度提醒和账号顺序
- 工具中心:本地代理、周报洞察、Codex 注入、SKILL 管理、MCP 管理
- 分析中心:Token 用量、Git 提交、PR KPI、默认分支管理
应用常驻菜单栏运行,桌面窗口默认隐藏,所有设置、缓存和分析结果都保存在本机。
- 菜单栏优先:常驻托盘应用,桌面主窗口默认隐藏,可从托盘直接打开总览或工具页
- 多种账号接入:当前 UI 已实现 OpenAI、Anthropic、Kimi、GLM、MiniMax、Sub2API、Copilot 的接入与重授权流程
- 额度与状态追踪:刷新额度快照、展示缓存状态、设置低额度阈值,并支持电池供电时暂停自动扫描
- 本地代理聚合:内置本地代理服务,可配置监听地址、端口、默认推理强度、账号 profile 和模型路由
- 反向代理桥接:把 ChatGPT(Codex OAuth)和 GitHub Copilot 授权目标暴露为可路由后端
- Codex 注入:把 AI Usage 本地代理写入 Codex 配置,迁移会话前自动备份,并支持按账号启停模型
- 本地分析工具:查看 Token 用量、Git 提交行数、PR KPI、默认分支管理,并支持 OpenRouter 价格映射
- 周报洞察:按周或自定义时间范围生成本地对话审计 HTML 报告
- CLI 工作流工具:内置 SKILL 管理与 MCP 管理,支持扫描技能仓库、发现本地 MCP 并写入客户端配置
- macOS 集成:开机启动、原生通知、自动更新、签名打包
- 在总览页查看所有已接入账号的额度窗口与状态
- 拖拽调整账号顺序,并在设置页做删除、重授权和补录配置
- 同时覆盖 OAuth、CLI 登录态、API Key、GitHub Token 等接入方式
- 管理刷新频率、低额度阈值、开机启动和自动扫描策略
- 打开统计页查看 Token、Git、PR KPI 和 Default Branch 四类分析
- 打开本地代理页管理反向代理、本地代理、模型 profile 和路由规则
- 生成、打开和删除周度对话洞察报告
- 管理 Codex 注入状态和可注入模型清单
- 管理 SKILL 与 MCP 客户端配置,并扫描本地可安装 MCP
- Token 用量趋势、模型排行、工具来源拆分和成本估算
- OpenRouter 模型 ID 拉取与本地价格映射 override
- Git 提交量、代码行数趋势和仓库排行
- PR KPI 雷达、Token 产出比和默认分支探测
- 本地代理的服务地址、默认 reasoning、账号 profile 和模型路由
macOS 菜单栏应用
├─ React 前端
│ ├─ 总览页(账号额度与状态)
│ ├─ 设置页(账号、启动、通知、更新)
│ ├─ 工具页(统计、代理、审计、SKILL、MCP、Codex)
│ └─ 各类授权 / 导入面板
└─ Rust 核心
├─ 设置、密钥与本地存储
├─ OAuth / API / CLI 账号接入
├─ 本地代理与反向代理运行时
├─ Token / Git / PR / Branch 缓存与统计
├─ 周报分析、HTML 报告生成
├─ Codex 注入与 CLI 工具配置
└─ 托盘、通知、开机启动、更新与打包
当前仓库里与这些能力直接对应的入口文件:
- 前端主入口:
src/App.tsx - Tauri 启动入口:
src-tauri/src/main.rs - 桌面命令与缓存逻辑:
src-tauri/src/commands.rs - 设置持久化:
src-tauri/src/settings.rs - 代理运行时:
src-tauri/src/local_proxy.rs - 周报分析与报告:
src-tauri/src/review_llm.rs、src-tauri/src/review_html.rs - CLI / MCP 工具:
src-tauri/src/cli_tools.rs - Codex 注入:
src-tauri/src/codex_injection.rs
- macOS
- Node.js
22 - Rust stable toolchain
- Tauri 在 macOS 下的标准构建依赖
npm cinpm run tauri -- dev说明:
npm run dev只启动 Vite 前端npm run tauri -- dev才会同时启动前端和 Tauri 桌面壳- 主窗口默认隐藏,运行后需要从菜单栏托盘打开主界面或工具页
- 默认开发地址来自
src-tauri/tauri.conf.json,即http://localhost:1420
当前仓库 CI 使用的校验命令如下:
npm run test:node
npm run test:rust
npm run build对应脚本定义在 package.json,CI 工作流位于 .github/workflows/ci.yml。
构建本地 macOS .app 和 .dmg:
npm run package:mac打包脚本会额外做这些校验:
- 执行
npm run tauri -- build - 校验生成的
.app签名 - 校验应用图标资源
- 校验
.dmg - 挂载 DMG 并检查内部应用结构
具体流程见 scripts/package-app.sh。
仓库内置了一个手动触发的发布工作流:.github/workflows/release.yml。
当前发布行为包括:
- 仅支持从
main手动触发patch、minor、major发布 - 预检阶段会同步 bump 仓库版本号,并重新跑 Node、Rust、前端构建校验
- release commit 会回推到
main - 发布阶段会生成 GitHub Release 和 Tauri updater 元数据
- 当前工作流会构建 macOS 发布产物,并带上自动更新所需签名信息
.
├─ src/ # React UI
├─ src-tauri/ # Rust 后端与 Tauri 配置
├─ tests/ # 基于 Node 的 UI / 工作流校验测试
├─ scripts/ # 打包、发布、审计辅助脚本
├─ icons/ # 应用品牌资源
└─ docs/ # 补充文档与声明
- 设置、缓存、分析结果和报告都由桌面应用在本地管理
- 密钥与 OAuth 相关数据由 Rust 侧 secret 层统一处理
- 本地代理监听地址、端口、认证字段和模型路由均可配置
- Codex 注入前会备份本地会话数据库
- 当前产品形态明确偏向单用户、本机运行的桌面工作流
从现有代码形态看,这个项目已经是一个本地 AI 工作台,后续比较自然的方向包括:
- 更完整的审计历史与趋势分析
- 更强的账号接入和代理兼容层
- 更细的工具链集成,例如更多 CLI / MCP / IDE 注入
- 更完善的账号诊断、授权恢复和模型治理体验
README.en.md查看英文版README.zh-CN.md查看中文别名页docs/THIRD_PARTY_NOTICES.md查看第三方声明
