workbuddy-auto-signin README

The project's README from github.com/88lin/workbuddy-auto-signin. As one markdown file: README.md.

workbuddy-auto-signin — WorkBuddy 自动签到脚本

🤖 workbuddy-auto-signin

自动领取 WorkBuddy 每日签到积分的小脚本

Release License: MIT Python 3 Dependencies Platform Stars

一个自包含的 Python 脚本,每天自动帮你领取 WorkBuddy(腾讯 AI 编程助手)的每日签到积分。只读取你自己机器上的登录态,零内置密钥,可安全分享。

💖 赞助商

Agent Router Agent Router 是免费公益大模型API平台,支持GPT-5.6、claude-opus-5、glm-5.3、deepseek-v4-flash等主流模型,国内直连。注册送$175(每日签到得$25,被邀得$50),支持GitHub/LinuxDo登录。
Any Router Any Router 是免费公益大模型API平台,可用GPT-6-astra、claude-fable-5.1等顶级模型。被邀得$50,每日签到随机额度。
SheApi SheApi 是一家可靠高效的 API 中转服务提供商,主要提供 Claude Code、Codex 等主流模型的高稳定中转能力,Codex 倍率补贴低至 0.08,GPT-Image-2生图每张0.04。受邀注册送$1 体验金,每日签到还可领取专属免费额度。
WorkBuddy WorkBuddy 是腾讯出品的全能 AI 工作台,是中国最受欢迎的效率 AI 智能体服务,说出要求、开始执行任务、交付完整成果。其中Hy4模型限时免费使用,注册即可获取2000积分,每月再赠送500积分,可用Kimi-K3、GLM-5.3等模型。
JustDoWork JustDoWork 是免费公益大模型API平台,可用Claude Opus 5 模型。注册送$100(每日签到得$30左右),支持GitHub登录。

✨ 特性

特性
🧩 零依赖 — 纯 Python 标准库,不用 pip install,任意 Python 3 即可
📦 单文件 — 完全自包含
🔁 幂等安全 — 先查状态,未签才领;重复运行不会多领
🐱 成长中心 — 自动领旅行礼物、派 Buddy、领取新任务、领任务奖、断登自动补登、连登奖励兑换、开盲盒抽奖、能量开 Buddy 盲盒
🐾 成长中心轮询 — 一键安装自带:Buddy 一回来就领礼物并补派,把每日名额用满,不让礼物压到第二天
⏰ 双定时模式 — AI 自动化(跨平台)或系统级静默(Win,零 token)
🧠 智能汇报 — 一行 JSON,如 成功领取 100 积分(连续 7 天,累计 700 积分)
🛡️ 健壮 — 兼容"已签"两种返回形态、识别 401/403 登录态过期、识别非签到季
🌐 跨平台 — 自动探测 Windows / macOS / Linux 凭据文件
🔒 无密钥 — 仓库不含任何密钥,只读取运行者本机登录凭据

📋 前置条件


⏰ 每日定时自动化

本脚本依赖本机桌面端登录态,云端 CI(如 GitHub Actions)跑不了。提供两种定时模式,按需选择:

模式对比

对比项 模式 A:AI 自动化 模式 B:系统级静默 ⭐
平台 🌐 Win / macOS / Linux 🪟 仅 Windows
原理 WorkBuddy 自动化触发 → AI 模型跑脚本 → 模型汇报 Windows 任务计划程序 → pythonw.exe 直接跑脚本 → 写日志文件
Token 消耗 每次一次模型调用 零
聊天记录 每次一条 零
弹窗 无 无
可靠性 依赖模型可用性 纯系统级,更可靠
日志 在聊天记录里 独立日志文件 signin.log
关机错过 错过就错过 可设"错过后下次启动时补跑"
设置难度 中(clone + 填绝对路径 + 建自动化) 低(一条命令,全自动)

模式 A:AI 自动化(跨平台)

适合 macOS / Linux,或不想碰任务计划程序的人。由 WorkBuddy 的自动化定时触发,AI 模型跑一次脚本再汇报——每次会消耗一次模型调用。

第 1 步 · 拿到脚本

git clone https://github.com/88lin/workbuddy-auto-signin.git
cd workbuddy-auto-signin

记下 signin.py 的绝对路径,第 2 步要用,例如:

第 2 步 · 新建自动化

[!NOTE] <python> 填你机器上的 Python 3 命令名:macOS / Linux 通常是 python3,Windows 通常是 python。拿不准就各跑一次 python3 --version、python --version,哪个有输出用哪个。

[!TIP] 懒人一键:上面两步都能省——直接把仓库链接丢给 WorkBuddy: 帮我把这个仓库跑起来并设置每天 00:05 自动签到:https://github.com/88lin/workbuddy-auto-signin 它会自己 clone、建好自动化、把绝对路径和 Python 命令名一并填好。(这条是一次性的设置指令,和上面那条「每次触发时执行」的提示词不是一回事。)

[!TIP] 还想要成长中心轮询?再建一条自动化即可:计划设为「每 4 小时」,提示词照抄上面那句,只把末尾的 auto 换成 growth(只跑成长中心,不重复签到)。

[!NOTE] 模式 A 每次运行会消耗一次 AI 模型调用并产生一条聊天记录。签到逻辑本身是确定性代码,模型仅负责"跑命令 + 汇报"。


模式 B:系统级静默(Windows,推荐)

用 Windows 自带的任务计划程序 + pythonw.exe(无窗口 Python)直接运行脚本,完全不经过 AI 模型。

第 1 步 · 拿到脚本(本地已有仓库就跳过)

git clone https://github.com/88lin/workbuddy-auto-signin.git
cd workbuddy-auto-signin

第 2 步 · 一键设置(在仓库目录下运行,pythonw.exe、signin.py 全都自动探测):

powershell -ExecutionPolicy Bypass -File .\install-windows.ps1

它会自动建好两个任务:

任务 频率 干什么
WorkBuddyAutoSignin 每天 00:05 签到 + 成长中心,静默写 signin.log
WorkBuddyGrowthPoll 每 4 小时 只跑成长中心:领礼物、派 Buddy、兑换、抽奖等全套

两个任务都零 Token、无窗口、关机错过后下次开机自动补跑。装完终端会打印结果和下次运行时间。

[!NOTE] 为什么要两个任务:签到一天一次就够了,成长中心却不是——Buddy 出去旅行 1~4 小时就带着礼物回来,礼物得手动领。只靠 00:05 那一次,礼物会压到第二天才到账;万一某天没跑成(关机),当天唯一的派出名额还会整个浪费掉。

[!TIP] 探测不到 Python 时脚本会提示你手动填:编辑 install-windows.ps1,把顶部的 $ManualPythonw 改成 pythonw.exe 的完整路径即可($ManualSignin 同理,一般不用动)。任意 Python 3 自带的 pythonw.exe 都行,不限于系统 Python。

卸载:

Unregister-ScheduledTask -TaskName "WorkBuddyAutoSignin" -Confirm:$false
Unregister-ScheduledTask -TaskName "WorkBuddyGrowthPoll" -Confirm:$false

只要签到、不想要成长中心轮询的话,只删第二个就行。

查看日志:

Get-Content signin.log -Tail 5   # 或用记事本打开

日志格式(每行一条 JSON):

[2026-08-30 10:34:04] {"result": "ALREADY", "report": "今日已签过(今日 +100,连续 16 天,累计 1600 积分)", ...}

[!TIP] 懒人一键:直接把仓库链接发给 WorkBuddy,让它帮你装好—— 帮我 clone 这个仓库并运行 install-windows.ps1 完成自动签到设置:https://github.com/88lin/workbuddy-auto-signin

[!NOTE] 模式 B 的 silent 参数让脚本把结果写入 signin.log 而非 stdout,配合 pythonw.exe(无控制台窗口)实现完全静默。日志文件路径可用环境变量 WORKBUDDY_SIGNIN_LOG 覆盖。

[!IMPORTANT] Buddy 旅行有每日名额限制(服务端返回 daily_limit_reached),实测一天只能派出一次。轮询任务的作用是「及时把礼物领回来 + 补上当天错过的那次派出」,不是让你一天刷好几趟——脚本读到名额已用完会直接收手,不会去撞那堵墙。

[!NOTE] 轮询一天要跑好几轮,所以只有真领到东西或出错时才写日志;「Buddy 还在路上」「今日名额已用完」这类空跑不落盘,免得有价值的记录被淹没。想逐轮查看就设 WORKBUDDY_GROWTH_LOG_EMPTY=1。


🛠️ 手动运行(调试用)

如需手动跑一次确认脚本可用:

git clone https://github.com/88lin/workbuddy-auto-signin.git
cd workbuddy-auto-signin
python signin.py auto

看到 今日已签过 或 成功领取 N 积分 就说明通了。

[!NOTE] 下文所有命令都以 python 为例。macOS / Linux 上若提示 command not found,把 python 换成 python3 即可。

📖 全部命令
python signin.py auto           # 签到 + 成长中心(礼物 / 任务 / 补登 / 连登兑换 / 抽奖 / Buddy)
python signin.py silent         # 同 auto,但输出写入日志文件而非 stdout(配合定时任务静默运行)
python signin.py growth         # 仅成长中心(不签到)
python signin.py silent-growth  # 仅成长中心 + 写日志文件(配合模式 B 的成长中心轮询任务)
python signin.py status         # 仅查签到状态(调试)
python signin.py claim          # 仅领取签到(调试,幂等)
python signin.py all            # 查签到状态 + 领取(调试)

⚙️ 工作原理

登录后,WorkBuddy 桌面端写出明文 JSON 会话文件 workbuddy-desktop.info(含 accessToken)。脚本流程:

  1. 📂 定位凭据文件(自动探测,或用 WORKBUDDY_AUTH_FILE 覆盖)
  2. 🔍 查询 POST /v2/billing/meter/checkin-activity-status — 今天是否已领?
  3. 🎁 领取 若未领,POST /v2/billing/meter/daily-checkin
  4. 🐱 成长中心 领旅行礼物 → 派 Buddy → 领取新任务(进度从领取才开始计)→ 领任务奖 → 断登自动补登(有补登卡时,每轮最多补一天)→ 连登奖励兑换 → 开盲盒 → 能量开 Buddy 盲盒
  5. 📤 输出 一行 JSON,report 字段是人话汇报

[!NOTE] 网络失败(GET 请求)自动重试 1 次;抽奖、领奖等写操作不重试,避免超时发生在服务端处理完成之后造成重复提交。两个签到接口例外——状态查询是只读的,领取接口本身幂等(见上文响应契约),故允许重试。整个运行受时间预算约束,详见「配置」。

[!NOTE] 所有请求都打到官方客户端用的同一个 endpoint(https://copilot.tencent.com)。签到接口系从桌面端 app.asar 逆向得到,仅供个人自动化使用。


🔧 配置

环境变量 作用
WORKBUDDY_AUTH_FILE 自动探测失败时,手动指定凭据文件路径
WORKBUDDY_SIGNIN_LOG silent 模式下日志文件路径(默认 signin.log)
WORKBUDDY_BUDGET_SECONDS 单次运行的网络请求时间预算。签到类命令默认 420(7 分钟)、上限 540;silent-growth 轮询默认 120、上限 240。须为正数且小于对应定时任务的 ExecutionTimeLimit。非法值、≤0 或超上限都会夹到安全值,并在输出里附 config_warning
WORKBUDDY_GROWTH_LOG_EMPTY 设为 1(或 true/yes/on)时,silent-growth 连空跑也写日志;默认只在领到东西或出错时记录

[!NOTE] 时间预算须小于计划任务的 ExecutionTimeLimit。两个任务的时限不同,所以上限也分开算:签到任务 PT10M → 上限 540,轮询任务 PT5M → 上限 240,各留 60 秒给解释器启动和收尾。网络异常时单个请求最坏要耗 30 秒,若不设上限,接口逐个超时会把任务跑穿被系统强杀——而结果是在最后才写日志的,当天记录会整条丢失。预算耗尽时脚本主动收尾并如实记录,剩余项留到下次。

若你要调整某个任务的 ExecutionTimeLimit,须同步改 signin.py 顶部对应的 MAX_BUDGET_SECONDS / POLL_MAX_BUDGET_SECONDS(分别对应签到任务与轮询任务)。


🧪 排错

现象 处理
NO_AUTH / 未找到登录凭据 先登录一次 WorkBuddy 桌面端;或设置 WORKBUDDY_AUTH_FILE
NO_AUTH / WORKBUDDY_AUTH_FILE 指向的文件不存在 环境变量路径写错了——核对 looked_in 字段里的实际路径
NO_SESSION / HTTP 401|403 登录态过期——重新登录桌面端,自动化自动恢复
INACTIVE / 签到活动未开启 非签到季,属正常,无需处理
NETWORK / 网络不可达 断网或服务端不可用,非登录问题。GET 请求会自动重试 1 次;下次运行自动重试
TIMEOUT / 已达本次运行时间预算 网络严重超时导致预算耗尽,已领到的部分照常记录,剩余项下次再领
ERROR / 登录凭据文件不是合法 JSON 本地凭据文件损坏——重新登录一次 WorkBuddy 桌面端即可重建
ERROR / 脚本运行异常(...) 异常不会静默丢失:silent 模式会写进 signin.log;可重跑 python signin.py status 看原始返回
signin.log 里查不到轮询记录 正常——空跑(Buddy 还在路上 / 今日名额已用完)默认不落盘。想逐轮查看就设 WORKBUDDY_GROWTH_LOG_EMPTY=1
轮询任务一直显示"今日旅行名额已用完" 服务端每日只放行一次派出,当天已派过就会这样,属正常。第二天自动恢复
调试原始返回 python signin.py status 或 python signin.py all

[!IMPORTANT] 登录态失效时脚本会明确返回 NO_SESSION 并提醒重新登录桌面端;重新登录后自动化无需任何改动即自动恢复。


🔐 安全与隐私


⚠️ 免责声明

[!WARNING] 本项目为非官方工具,与腾讯或 WorkBuddy 无任何隶属关系。签到接口系从桌面端 app.asar 逆向得到。使用风险自负;接口可能随时变动且不另行通知。请遵守相关服务条款。


📊 Star History

Star History

📄 协议

MIT © 2026 88lin

workbuddy-auto-signin (88lin/workbuddy-auto-signin)

Searching Database…

这是什么?这是一个独立的 Python 脚本,只用你自己的本地登录凭据,就能自动领取 WorkBuddy(腾讯的 AI 编程助手)的每日签到积分和成长中心的全部奖励——旅行礼包、Buddy 派遣、盲盒、任务奖励、补签等。
这是我要运行的脚本,还是带图形界面的应用?它是一个由你运行或定时调度的独立 Python 脚本,不是带界面的应用,也不是导入到其他代码里用的库。
怎么让它定时运行?拿到脚本(git clone 或下载 ZIP),然后要么让 WorkBuddy 自带的自动化功能每天运行它(跨平台),要么在 Windows 上运行一条命令的 install-windows.ps1,配置静默的计划任务作业。
需要先装 Python 或配置 API 密钥吗?你只需要本地装有 Python 3(任意版本,无需 pip 包),并且 WorkBuddy 桌面应用至少登录过一次,因为脚本就是从这里读取凭据的。
能在 GitHub Actions 这类云端 CI 上运行吗?不能——它依赖你本地桌面的登录会话,云端 CI 跑不了;另外无论你轮询多少次,服务器每天也只允许一次 Buddy 旅行派遣。
它支持哪些操作系统?AI 自动化调度模式会自动检测凭据文件,在 Windows、macOS 和 Linux 上都能用;零 token 的静默计划任务模式仅支持 Windows。
两种调度模式有什么区别?模式 A 利用 WorkBuddy 自带的 AI 自动化跨平台触发脚本,但每次运行要消耗一次模型调用和一条聊天消息;模式 B 用 Windows 计划任务配合 pythonw.exe 完全静默运行,零 token 消耗,日志改为写入 signin.log。
为什么需要一个单独的成长中心轮询任务?Buddy 的旅行礼包要 1-4 小时才能返回且必须手动领取,漏掉一次派遣就白白浪费当天的名额;每 4 小时轮询一次的任务能及时收取礼物并重新派遣 Buddy,不让任何名额被浪费。
作者是怎么找到要调用的 API 端点的?脚本调用的是官方 WorkBuddy 桌面客户端所用的同一批端点,通过逆向它的 app.asar 包获得,因此这是一个与腾讯没有任何隶属关系的非官方工具。
失败的请求会重试吗?只读的状态查询在网络失败时会自动重试一次,但领取奖励、开盲盒这类写操作绝不重试,以免超时后重复提交。
Creator
88lin
Size
0.4 MB
Stars
1.4K
Age
2mo
Commits · 90 Days