# checkin
**Repository Path**: edrin/checkin
## Basic Information
- **Project Name**: checkin
- **Description**: WorkBuddy / Trae 多账号自动签到:自动续期、余额同步、邮件汇总、一键切号 | multi-account auto check-in: token refresh, balance sync, email report, one-click account switch
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: https://edrin09.github.io/edrin/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-11-03
- **Last Updated**: 2026-11-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# WorkBuddy & Trae 自动签到
每天自动领积分、同步余额、发汇总邮件,还能一键切换本机客户端账号。
**Windows · Python 3.9+ · 纯本地运行 · 账号数据不上传**
[GitHub](https://github.com/edrin09/checkin) · [Gitee](https://gitee.com/edrin/checkin) · [MIT](LICENSE)
## 这是什么
每天不用再手动点签到。脚本直接调用 WorkBuddy / Trae CN 的官方 Web 接口,把本机已经登录的
账号挨个签一遍,再把结果汇总成一封邮件——领了多少积分、余额怎么变,一眼看完。
- **多账号签到**:一次全部领完,已领过的自动跳过(下午再跑一次就是补签)
- **登录态自动续期**:Trae 剩余不足 6 天自动换新 token,不用反复登录,也不用开着客户端
- **余额日报**:签到前 / 签到后对比,HTML + 纯文本两版邮件
- **一键切号**:把任意账号写回客户端,切完自动启动客户端
- **无人值守**:Windows 计划任务每天两次,随机延时避开高峰,不怕限流
支持 WorkBuddy、Trae CN,仅 Windows。
## 快速开始
需要 Windows 10/11、Python 3.9+,以及已装好并登录过的客户端。
```powershell
pip install requests pycryptodome
git clone https://gitee.com/edrin/checkin.git # 或上方 GitHub 地址
cd checkin
```
**1. 添加账号**
```powershell
.\workbuddy\workbuddy.bat --watch 30 # 开着他,然后去登录 WorkBuddy 客户端
.\trae\trae.bat --login # 浏览器登录,不用开客户端
```
登录完成会写进对应的 `accounts.json`,之后就不用再管了。
**2. 先手动跑一次**
```powershell
.\workbuddy\workbuddy.bat --no-delay
.\trae\trae.bat --no-delay
```
**3. 交给计划任务**(管理员 PowerShell)
```powershell
$root = "D:\path\to\checkin"
$pyw = (Get-Command pythonw.exe -ErrorAction SilentlyContinue).Source
if (-not $pyw) { $pyw = (Get-Command python.exe).Source }
function New-CheckinTask($name, $time, $script) {
$action = New-ScheduledTaskAction -Execute $pyw -Argument "`"$root\$script`""
$trigger = New-ScheduledTaskTrigger -Daily -At $time
Register-ScheduledTask -TaskName $name -Action $action -Trigger $trigger -Force
}
New-CheckinTask 'WorkBuddy签到' '10:00' 'workbuddy\checkin_workbuddy.py'
New-CheckinTask 'Trae签到' '10:30' 'trae\checkin_trae.py'
New-CheckinTask 'WorkBuddy补签' '15:00' 'workbuddy\checkin_workbuddy.py'
New-CheckinTask 'Trae补签' '15:30' 'trae\checkin_trae.py'
```
两个产品错开 30 分钟,日志按时间段就能分清来源;启动自带 1~15 分钟随机延时。
**4. 汇总邮件(可选)**
```powershell
Copy-Item .env.example .env
notepad .env # 填 SMTP 与收件人
python send_mail.py --dry-run # 预览到 mail_preview.html
python send_mail.py --mail-only # 立刻发一封
```
想每天自动收信,在计划任务里追加一个动作:`pythonw.exe send_mail.py --mail-only`。
## 常用命令
| 场景 | 命令 |
| --- | --- |
| WorkBuddy 签到 | `.\workbuddy\workbuddy.bat` |
| Trae 签到 | `.\trae\trae.bat` |
| Trae 续期 / 看续期计划 | `.\trae\trae.bat --refresh` / `--refresh --dry-run` |
| 签到 + 发邮件 | `python send_mail.py` |
| 切号菜单 | `.\main.bat` |
| 看账号与余额 | `.\main.bat w --list` / `.\main.bat t --list` |
| 直接切某个账号 | `.\main.bat w <账号名>` / `.\main.bat t <账号名>` |
| 校验切号结果 | `.\main.bat w --verify` / `.\main.bat t --verify` |
切号支持 `--wait`(等客户端退出)、`--no-launch`(只切不启动)、`--dry-run`(只演练)、
`--json`(机器可读)、`--quiet`(只报错)。退出码:`0` 成功、`1` 一般错误、`2` 找不到账号、
`3` token 失效、`4` 写入校验失败、`5` 客户端正在运行。
## 配置
复制 `.env.example` 为 `.env`:`MAIL_HOST` / `MAIL_PORT` / `MAIL_SECURE` / `MAIL_USER` /
`MAIL_PASS`(邮箱授权码,不是登录密码)/ `MAIL_TO`(多人用英文逗号分隔)。
同名系统环境变量优先于 `.env`。
## 数据在哪
账号、token、余额快照、日志全部留在本机对应目录(`workbuddy\`、`trae\`、`checkin.log`),
已加入 `.gitignore`,不会被提交,也不会上传任何服务器。
## 常见问题
**日志里没有当天记录?** 计划任务没触发。查 `Get-ScheduledTaskInfo` 的 `LastRunTime`,
并确认当时电脑开着且已登录。
**Trae 报 9074?** 服务端限流。脚本会自动换设备号重试,仍失败就等下午补签。
**余额显示旧值?** token 可能失效。先跑 `.\trae\trae.bat --refresh`,不行再 `--login` 重新登录。
**支持 macOS / Linux?** 暂不支持,登录态路径、计划任务和切号都依赖 Windows 客户端。
**接口变了?** 这类工具跟着客户端接口走,产品更新后可能需要调整,欢迎提 Issue。
## 免责声明
仅供个人学习与效率实践。请遵守 WorkBuddy / Trae 的服务条款,不要用于账号买卖、商业代签等滥用场景,
使用风险自负。
## License
[MIT](LICENSE)