|
|
|
|
- 🔐 多平台支持: 管理 Antigravity、Kiro、Claude、Codex 和 Gemini 等平台账号
- ⚡ 快速切换: 一键切换账号,自动刷新 Token
- 📊 配额监控: 实时追踪使用情况和配额管理
- 🔄 自动刷新: 智能 Token 刷新,自动检测过期
- 🏷️ 组织管理: 标签、分组和搜索,轻松管理账号
- 💾 本地存储: 所有数据本地存储,支持备份/恢复
- 可扩展平台系统: 用最少的代码添加新平台
- 模块化设计: 每个平台都是独立的、自包含的模块
- 类型安全: 全栈 TypeScript 和 Rust 类型安全
- 热重载: 开发模式下即时更新
- macOS 风格设计: 简洁、极简的界面,注重细节
- 深色/浅色主题: 无缝主题切换,支持系统偏好检测
- 流畅动画: 由 Framer Motion 驱动的流畅过渡效果
- 响应式布局: 针对所有屏幕尺寸和分辨率优化
- 无障碍访问: 符合 WCAG 标准的组件,支持键盘导航
- HTTP 客户端池化: 可复用连接减少延迟 50-67%
- 搜索防抖: 使用 React 19 的 useDeferredValue 实现流畅输入
- 存储优化: 防抖保存提升批量操作性能 80%+
- 日志轮转: 自动日志文件管理(10MB 限制)
- 代码复用: 共享工具减少重复代码 40%
graph TB
A[Nexus Core] --> B[Platform Registry]
B --> C[Antigravity]
B --> D[Kiro]
B --> E[Claude]
B --> F[Codex]
B --> G[Gemini]
C --> C1[OAuth Method]
C --> C2[Token Import]
C --> C3[Account List]
D --> D1[Device Auth]
D --> D2[SSO Import]
D --> D3[Account List]
E --> E1[JSON Method]
E --> E2[Provider Presets]
E --> E3[Account List]
style A fill:#667eea
style B fill:#764ba2
style C fill:#f093fb
style D fill:#4facfe
style E fill:#43e97b
style F fill:#fa709a
style G fill:#fee140
每个平台都是独立的插件模块,可以轻松扩展
架构优势:
- 🔌 用最少代码添加新平台
- 📦 模块化设计,易于维护
- 🔒 全栈类型安全
- ⚡ 热重载开发体验
- React 19 - 最新的 UI 框架,支持并发特性
- TypeScript - 类型安全和更好的开发体验
- Tailwind CSS 4 - 实用优先的样式,支持 JIT 编译
- Zustand - 轻量级状态管理
- React Router 7 - 客户端路由
- Radix UI - 无障碍组件原语
- Lucide React - 精美的图标库
- Framer Motion - 生产就绪的动画
- i18next - 国际化(英文和中文)
- Rust - 内存安全的系统编程语言
- Tauri 2 - 安全的桌面应用框架
- Tokio - 异步运行时
- Reqwest - 支持连接池的 HTTP 客户端
- Serde - 序列化/反序列化
- SQLite(计划中)- 本地数据库
- Vite 7 - 闪电般快速的构建工具
- TypeScript 5.8 - 最新的语言特性
- ESLint - 代码检查
- Prettier - 代码格式化
| 指标 | 传统方案 | Nexus | 提升 |
|---|---|---|---|
| 启动时间 | ~3s | ~1s | ⚡ 67% |
| 内存占用 | ~150MB | ~50MB | 📉 67% |
| 账号切换 | ~2s | <0.5s | 🚀 75% |
| Token 刷新 | 手动 | 自动 | ✨ 100% |
| 配额监控 | ❌ | ✅ | 🎯 新增 |
前往 Releases 页面 下载适合你系统的安装包:
| 平台 | 文件格式 | 说明 |
|---|---|---|
| 🪟 Windows | .msi / .exe |
支持 Windows 10/11 |
| 🍎 macOS | .dmg |
支持 Intel 和 Apple Silicon |
| 🐧 Linux | .deb / .AppImage |
支持 Ubuntu/Debian/Arch |
如果你想从源码构建或参与开发:
- Node.js 18+(推荐 LTS 版本)
- Rust 1.70+(最新稳定版)
- npm 或 yarn 或 pnpm
graph LR
A[📥 克隆仓库] --> B[📦 安装依赖]
B --> C[🚀 启动开发]
C --> D[🎨 开始开发]
style A fill:#667eea
style B fill:#764ba2
style C fill:#f093fb
style D fill:#4facfe
# 克隆仓库
git clone https://github.com/yourusername/nexus-account-manager.git
cd nexus-account-manager
# 安装依赖
npm install
# 启动开发服务器
npm run tauri:dev
# 构建生产版本
npm run tauri:build# 安装 Visual Studio Build Tools
# https://visualstudio.microsoft.com/downloads/
# 安装 WebView2(Windows 10/11 通常已预装)# 安装 Xcode 命令行工具
xcode-select --install# Debian/Ubuntu
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libayatana-appindicator3-dev librsvg2-dev
# Fedora
sudo dnf install webkit2gtk4.1-devel openssl-devel curl wget file libappindicator-gtk3-devel librsvg2-devel
# Arch
sudo pacman -S webkit2gtk-4.1 base-devel curl wget file openssl libappindicator-gtk3 librsvgnexus-account-manager/
├── src/ # React 前端
│ ├── components/
│ │ ├── ui/ # 基础 UI 组件(Radix UI)
│ │ ├── layout/ # 布局组件
│ │ ├── common/ # 共享组件
│ │ ├── accounts/ # 账号相关组件
│ │ └── dialogs/ # 对话框组件
│ │
│ ├── platforms/ # 平台模块(插件系统)
│ │ ├── antigravity/ # Antigravity 平台
│ │ ├── kiro/ # Kiro 平台
│ │ ├── claude/ # Claude 平台
│ │ ├── codex/ # Codex 平台
│ │ ├── gemini/ # Gemini 平台
│ │ └── registry.ts # 平台注册中心
│ │
│ ├── pages/ # 页面组件
│ ├── stores/ # Zustand 状态管理
│ ├── hooks/ # 自定义 React Hooks
│ ├── types/ # TypeScript 类型定义
│ ├── i18n/ # 国际化
│ └── lib/ # 工具函数
│
├── src-tauri/ # Rust 后端
│ └── src/
│ ├── core/ # 核心模块
│ │ ├── storage.rs # 数据存储(支持防抖)
│ │ ├── oauth.rs # OAuth 2.0 处理
│ │ ├── kiro.rs # Kiro 特定逻辑
│ │ └── quota.rs # 配额管理
│ │
│ ├── commands/ # Tauri 命令(前后端通信)
│ │ ├── antigravity.rs # Antigravity 命令
│ │ ├── kiro.rs # Kiro 命令
│ │ └── machine.rs # 机器 ID 命令
│ │
│ ├── utils/ # 工具模块
│ │ ├── logger.rs # 统一日志系统
│ │ ├── http.rs # HTTP 客户端(支持连接池)
│ │ ├── common.rs # 共享工具
│ │ └── config.rs # 配置管理
│ │
│ └── lib.rs # 主入口点
│
├── docs/ # 文档
│ ├── PROJECT_RULES.md # AI 编程指南
│ ├── ARCHITECTURE.md # 架构文档
│ ├── API_PLATFORMS_GUIDE.md # 平台开发指南
│ └── OPTIMIZATION_COMPLETED.md # 性能优化报告
│
└── test/ # 测试数据
我们的插件架构使添加新平台变得简单。以下是完整示例:
// src/platforms/myplatform/index.ts
import { PlatformConfig } from '@/types/platform'
import { Rocket } from 'lucide-react'
import { MyPlatformAccountList } from './components/AccountList'
export const myPlatformConfig: PlatformConfig = {
id: 'myplatform',
name: 'My Platform',
icon: Rocket,
color: '#FF6B6B',
description: '管理你的 My Platform 账号',
// 必需:账号列表组件
AccountList: MyPlatformAccountList,
// 可选:功能标志
features: {
oauth: true,
tokenImport: false,
quota: true,
switching: true,
},
}// src/platforms/myplatform/components/AccountList.tsx
import { usePlatformStore } from '@/stores/usePlatformStore'
export function MyPlatformAccountList() {
const accounts = usePlatformStore(state =>
state.getAccountsByPlatform('myplatform')
)
return (
<div>
{accounts.map(account => (
<AccountCard key={account.id} account={account} />
))}
</div>
)
}// src/platforms/myplatform/methods/OAuthMethod.tsx
export function MyPlatformOAuthMethod() {
const handleOAuth = async () => {
// 你的 OAuth 逻辑
const account = await invoke('myplatform_oauth')
await addAccount(account)
}
return <Button onClick={handleOAuth}>使用 OAuth 连接</Button>
}// src/platforms/registry.ts
import { myPlatformConfig } from './myplatform'
export const platforms: PlatformConfig[] = [
antigravityConfig,
kiroConfig,
myPlatformConfig, // ✅ 在这里添加
]// src-tauri/src/commands/myplatform.rs
use tauri::command;
#[command]
pub async fn myplatform_oauth() -> Result<Account, String> {
// 你的后端逻辑
Ok(account)
}就这样!你的新平台现在已完全集成。🎉
详细指南请参阅 docs/API_PLATFORMS_GUIDE.md
本项目遵循严格的 AI 编程规则以保持代码质量和一致性。
在使用任何 AI 助手(Claude、ChatGPT、Copilot 等)之前,请包含此声明:
请在开发过程中严格遵守 #[[file:docs/PROJECT_RULES.md]] 中定义的所有规则。- ✅ 使用
src/components/ui/中的现有 UI 组件 - ✅ 使用 Zustand 进行状态管理
- ✅ 在 Rust 中使用统一日志系统(
log_info、log_warn等) - ✅ 遵循既定的项目结构
- ❌ 未经批准不要引入新依赖
- ❌ 不要修改核心架构
- ❌ 不要在 Rust 代码中使用
println!或eprintln!
完整指南请参阅:docs/PROJECT_RULES.md
# 前端开发
npm run dev # 启动 Vite 开发服务器
npm run build # 构建生产版本前端
# Tauri 开发
npm run tauri:dev # 以开发模式启动 Tauri
npm run tauri:build # 构建生产版本 Tauri 应用
npm run tauri:build:debug # 构建带调试符号的版本
# 代码质量
npm run lint # 运行 ESLint
npm run format # 使用 Prettier 格式化代码
npm run type-check # 运行 TypeScript 类型检查-
启动开发服务器
npm run tauri:dev
这会同时启动 Vite 开发服务器和 Tauri 应用,支持热重载。
-
进行更改
- 前端:编辑
src/中的文件,更改立即反映 - 后端:编辑
src-tauri/src/中的文件,应用自动重启
- 前端:编辑
-
测试更改
- 使用应用测试功能
- 检查浏览器控制台查看前端日志
- 检查终端查看后端日志
-
构建生产版本
npm run tauri:build
输出在
src-tauri/target/release/bundle/
- 打开开发工具:
Ctrl+Shift+I(Windows/Linux)或Cmd+Option+I(macOS) - React DevTools:安装浏览器扩展
- Zustand DevTools:内置状态检查
- 日志位于
~/.local/share/com.nexus.account-manager/logs/app.log - 使用
log_info!()、log_warn!()、log_error!()进行调试 - 附加调试器:
rust-lldb或rust-gdb
我们欢迎贡献!以下是你可以帮助的方式:
- 🐛 报告 Bug:提交包含详细复现步骤的 issue
- 💡 建议功能:在讨论区分享你的想法
- 📝 改进文档:修复错别字、添加示例、澄清说明
- 🔧 提交 Pull Request:修复 bug 或实现功能
-
Fork 仓库
git clone https://github.com/yourusername/nexus-account-manager.git cd nexus-account-manager git checkout -b feature/your-feature-name -
遵循项目规则
- 阅读 docs/PROJECT_RULES.md
- 使用现有的模式和约定
- 编写清晰、有文档的代码
-
测试你的更改
- 确保应用无错误构建
- 测试所有受影响的功能
- 如适用,添加测试
-
提交 Pull Request
- 编写清晰的更改描述
- 引用相关 issue
- 等待审查并处理反馈
- 尊重和包容
- 提供建设性反馈
- 关注代码,而非个人
- 帮助他人学习和成长
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
MIT License
Copyright (c) 2026 adnaan
特此免费授予任何获得本软件及相关文档文件("软件")副本的人
不受限制地处理本软件的权利,包括但不限于使用、复制、修改、
合并、发布、分发、再许可和/或销售本软件副本的权利,
以及允许获得本软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或
主要部分中。
本项目站在巨人的肩膀上:
- Antigravity Manager - 多账号管理的原始灵感
- Kiro Account Manager - Kiro 平台集成模式
- Tauri - 安全的桌面应用框架
- React - UI 库
- Rust - 系统编程语言
- Radix UI - 无障碍组件
- Tailwind CSS - 实用优先的 CSS
- 所有我们的贡献者
- Tauri Discord 社区
- Rust 社区
- 📖 文档:查看 docs/ 文件夹
- 💬 讨论:在 GitHub Discussions 中提问
- 🐛 Issues:在 GitHub Issues 中报告 bug
- 📧 邮件:直接联系维护者




