Skip to content

Repository files navigation

OpenCode Go Manager

OpenCode Go Manager 是一个用于管理多个 OpenCode Go 账号的 Tauri 桌面工具。它可以保存账号凭据、查看额度状态、切换当前使用的 auth.json 凭据,并管理可用的邀请奖励。

当前项目只支持 Tauri 桌面运行。前端页面会通过 Tauri invoke 调用 Rust 后端命令,不作为独立 Web 应用发布。

主要功能

  • 多账号管理:保存名称、Workspace ID、默认模型、备注、API Key 和 Auth Cookie。
  • 额度刷新:读取 5 小时、周、月三个窗口的 OpenCode Go 用量状态。
  • 凭据切换:把选中的账号写入目标 auth.json,并自动备份原文件。
  • 邀请奖励:读取奖励列表,预览使用后的额度变化,并应用可用奖励。
  • 本地加密存储:账号敏感字段写入本地 SQLite 前会使用 AES-GCM 加密。

项目架构

.
├─ src/                     React + TypeScript 前端界面
│  ├─ main.tsx              页面状态、Tauri 命令适配、账号/额度/奖励交互
│  └─ styles.css            桌面端界面样式
├─ shared/
│  └─ types.ts              前后端共享的数据结构定义
├─ src-tauri/               Tauri 2 + Rust 桌面后端
│  ├─ src/main.rs           Tauri 入口
│  ├─ src/lib.rs            命令、数据库、加密、OpenCode 请求与解析逻辑
│  ├─ tauri.conf.json       窗口、构建和打包配置
│  ├─ Cargo.toml            Rust 依赖
│  └─ icons/                应用图标
├─ index.html               Vite 入口 HTML
├─ vite.config.ts           Vite 配置
└─ package.json             npm 脚本和前端依赖

前端

前端使用 React、TypeScript、Vite 和 lucide-react。src/main.tsx 中的 api() 不是普通 HTTP 客户端,而是把原来的 /api/... 调用映射成 Tauri invoke() 命令。应用会检查 Tauri 运行时;如果只在浏览器里打开,会提示此应用只能在 Tauri 桌面环境中运行。

后端

后端位于 src-tauri/src/lib.rs,主要职责包括:

  • 维护本地 SQLite 数据库和表结构。
  • 使用 key.bin 对 API Key、Auth Cookie 等敏感字段加密/解密。
  • 读取和写入 OpenCode 的 auth.json,切换前生成备份。
  • 请求 OpenCode Go 页面,解析额度、邀请码和奖励信息。
  • 暴露 Tauri commands 给前端调用。
  • Windows 下提供一个原生启动加载窗口。

本地数据

运行时数据默认保存在可执行文件所在目录下的 data/

data/
├─ opencode-go-manager.sqlite
├─ key.bin
└─ backups/

这些文件包含账号数据、加密密钥或凭据备份,不应该提交到 Git。公开仓库已通过 .gitignore 忽略 release/src-tauri/target/node_modules/.env*、AI 工作流目录等本地文件。

开发环境

需要准备:

  • Node.js 和 npm
  • Rust stable toolchain
  • Tauri 2 所需的系统依赖
  • Windows 打包时需要 WebView2 Runtime 和 Microsoft C++ Build Tools

安装依赖:

npm install

开发运行:

npm run dev

这会启动 Vite 开发服务器,并由 Tauri 打开桌面窗口。

编译和打包

类型检查:

npm run typecheck

构建前端静态资源:

npm run build:web

运行 Rust 测试:

npm test

打包 Windows exe:

npm run dist:exe

脚本会先执行 Tauri release 构建,然后把生成的可执行文件复制到:

release/tauri/OpenCode Go Manager.exe

原始 release 二进制通常位于:

src-tauri/target/release/opencode-go-manager.exe

GitHub Releases

仓库内置了 GitHub Actions 工作流:.github/workflows/release.yml

发布新版本时,推送一个 v* 标签即可让 GitHub 在 Windows runner 上自动编译 exe,并创建 Release:

git tag v0.1.0
git push origin v0.1.0

也可以在 GitHub Actions 页面手动运行 Release Windows EXE 工作流,并填写要发布的标签名。

工作流会执行:

  • npm ci
  • npm run typecheck
  • npm test
  • npm run dist:exe

成功后,Release 附件中会包含:

OpenCode.Go.Manager.exe

使用提示

  1. 新增账号时填写 Workspace ID、API Key 和 Auth Cookie。
  2. 在“凭据设置”里选择或填写目标 auth.json 路径。
  3. 点击“切换”会把当前账号的 OpenCode Go API Key 写入目标 auth.json
  4. 切换前会在 data/backups/ 中保存备份,可通过“恢复”找回最近一次备份。
  5. 额度和奖励信息来自 OpenCode 页面结构解析;如果 OpenCode 页面或服务端响应结构变化,可能需要更新解析逻辑。

致谢

感谢 LINUX DO 社区、OpenCode 社区,以及 Tauri、Rust、React 等开源生态对开源项目的支持与启发。

许可证

OpenCode Go Manager 采用双授权模式:

  • 开源授权AGPL-3.0-or-later。个人和组织均可在遵守 AGPL 条款的前提下使用、研究、修改、分发或通过网络提供本项目。
  • 商业授权:如果需要闭源集成、闭源改造、内部产品化平台、商业分发,或以专有条款提供托管/服务化能力,请参见 COMMERCIAL-LICENSE.md

Copyright (c) 2026 a417707897 and contributors. 详见 NOTICE

正常下载和使用未经修改的官方 Release 不需要商业授权;遵守 AGPL-3.0-or-later 的开源使用也不需要商业授权。

隐私说明

源码仓库不包含数据库、密钥、账号凭据或构建产物。应用运行后产生的 data/ 目录请自行保管,不要上传到公开仓库或分享给他人。

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages