跨平台 CS2 饰品资产管理与盈亏追踪桌面应用 —— 帮助多平台、多账号的 CS2 饰品持有者回答:我到底赚了多少钱。
不替代 csqaq/steamdt(行情看板),不做中心化服务。所有数据只存本地 SQLite,不上传任何数据。
Alpha 阶段提醒: 本项目目前仍处于 Alpha 开发阶段,功能可能随时变动。
安全警告: CS2Ledger 为纯本地桌面应用,所有数据(资产、交易记录)仅存储在本地 SQLite,不做任何上传。请务必保管好自己的 Token / Cookie / API Key 等平台凭据,切勿上传至任何第三方平台或交付给他人。任何因凭据泄露或自行上传数据导致的账号风险与财产损失,本项目概不负责。
| 平台 | 标识 | 凭据类型 | 说明 |
|---|---|---|---|
| BUFF | buff |
Cookie | 网页版登录后的 Cookie |
| 悠悠有品 | youpin |
Token | 网页版登录后的 Authorization Bearer Token |
| C5 | c5 |
API Key | 商户后台 Open API 的 app-key |
| ECO | eco |
Partner ID + RSA私钥 | |
| CSQAQ | csqaq |
API Token | 行情数据源,用于获取市场价(csqaq.com) |
- 打开浏览器并登录 buff.163.com
- 按
F12打开开发者工具,切换到 Network(网络) 标签 - 刷新页面,点击任意发往
buff.163.com的请求 - 在 Request Headers 中找到
Cookie字段,复制完整的 Cookie 字符串
注意: Cookie 会过期。如果数据同步失败,大概率是 Cookie 失效,重新获取即可。
- 打开浏览器并登录 youpin898.com
- 按
F12打开开发者工具,切换到 Network(网络) 标签 - 刷新页面,点击任意发往
api.youpin898.com的请求 - 在 Request Headers 中找到
Authorization字段,复制Bearer后面的 Token 字符串
ECO 使用开放平台 API,凭据格式为 PartnerId:私钥PEM。
- 手机登录 ECO, 在我的 -> 开放平台中, 申请入驻
- 生成RSA公钥私钥: 请妥善保管RSA私钥
openssl genrsa -out private_key.pem 2048 openssl rsa -in private_key.pem -pubout -out public_key.pem
- 在ECO 开放平台设置中, 开启签名验证, 并上传RSA公钥
- 找到 Partner ID 和 RSA 私钥(通常为 PEM 格式),添加到ECO账号
私钥中的换行可以用
\n表示,直接写在一行或多行粘贴均可。
- 前往 csqaq.com 注册账号
- 在个人中心获取 API Token
- 在 CS2Ledger 中添加 csqaq 账户,输入 Token 即可
- 账户管理: 连接多平台、多账号,统一管理
- 库存管理: 库存快照、对比、详情查看、导出(按物品名称 + 磨损程度分组,点击物品名称上的 CSQAQ 图标可在浏览器中快速跳转查看饰品详情)
- 交易记录: 买入/卖出历史自动拉取,成本基准追踪
- 行情接入: 接入 CSQAQ 行情,BUFF/悠悠有品/Steam 售价与成交量
- 盈亏计算: 已实现盈亏、浮动盈亏(持仓成本 vs 市场价)、综合 P&L
- 仪表盘: 钱包余额、已实现盈亏、持仓市值、未实现盈亏
更多详情见 ROADMAP.md。
- 桌面壳: Wails v2 (Go + React/TypeScript)
- 前端: React 19 + TypeScript + Vite + MUI v5 + TanStack Query + Zustand
- 后端: Go + GORM + SQLite (WAL) + Uber Fx
- 平台对接: 模拟 HTTP 请求,无官方 API(C5/IGXE/ECO 除外)
- Go 1.25+
- Node.js 22+
- Wails CLI(可选,
make install-wails自动安装)
make setup # 安装依赖 + git hooks
make dev # 启动 Wails 开发服务器(热重载)make build # 生产构建 → build/bin/
make build-dev # 调试构建make test # 运行所有测试
make lint # golangci-lint 检查
make fmt # 格式化代码
make vet # go vet 检查cs2-ledger/
├── main.go # Wails 入口
├── app.go # Wails Bind 方法(前端调用的 Go 函数)
├── cmd/platform-cli/ # 命令行工具(平台调试验证)
├── pkg/
│ ├── model/ # 数据模型
│ ├── orm/ # 数据访问层 (GORM)
│ ├── platform/ # 外部平台客户端 (BUFF/悠悠/C5/IGXE/ECO/csqaq)
│ ├── service/ # 业务逻辑层
│ └── utils/ # 基础设施 (数据库、日志)
├── frontend/ # React 前端
├── migrations/ # 数据库迁移
└── design/ # 架构设计文档
- Fork 本仓库
- 创建功能分支:
git checkout -b feat/your-feature - 运行
make setup安装开发依赖 - 开发并确保
make lint test通过 - 提交代码并创建 PR
- Go 代码遵循标准 Go 风格,使用
gofmt格式化 - TypeScript/React 代码使用 Vite 默认配置
- 提交信息使用 Conventional Commits 格式:
feat:新功能fix:修复refactor:重构chore:杂项
如需对接新的交易平台,实现 platform.Client 接口即可:
参考 pkg/platform/buff/ 或 pkg/platform/c5/ 的实现,并在 pkg/platform/factory/ 中注册新平台。
make db-new NAME=add_xxx_table # 创建新迁移文件迁移文件放在 migrations/ 目录,按时间戳排序,在应用启动时自动执行。