dsh-lobsterai-daddy
Turns the LobsterDaddy multi-account console into a floating ball in the DSH window: drag it anywhere and the position persists, and the panel can be set to follow the ball. Clicking it slides out a drawer that renders the console as native DOM (no iframe) from the loopback-only same-origin proxy, s
Install
dsh plugin --profile web add dsh-lobsterai-daddy
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
dsh-lobsterai-daddy · LobsterAIDaddy
[!WARNING]
LobsterAIDaddy 已于 2026-10-21 停止维护(End of Life)。
出于作者个人精力与优先级调整,dsh-lobsterai-daddy 不再继续开发与维护:不再新增功能、不再适配 DSH 新版本、不保证修复缺陷。
仓库与 npm 上的包继续保留,已安装的用户可以照常使用,但不会再收到任何更新。
感谢一路以来的使用与反馈。
[!WARNING]
LobsterAIDaddy is no longer maintained (End of Life, 2026-10-21).
Due to a shift in the author's personal priorities, dsh-lobsterai-daddy is discontinued: no new features, no DSH compatibility updates, and no guaranteed bug fixes.
The repository and the npm package remain available; existing installs keep working, but no further updates will be published.
Thanks to everyone who used it and sent feedback.
把 LobsterAI 多账号管理变成 DSH 界面上的悬浮球:可自由拖拽摆放、位置自动记忆;面板可跟随悬浮球一起移动;点开即查看当前登录账号与账号列表,并直接签到、刷新额度、切号——这些能力由插件宿主内置实现,不需要 LobsterDaddy 控制台常驻。
A draggable floating ball that renders a native-DOM LobsterAI multi-account panel inside DSH: the account LobsterAI is currently signed in as, the full account list with balances and per-account check-in state, check-in-all / refresh-quota / switch-account actions backed by a built-in data layer (reads LobsterAI's SQLite directly), plus a self-hosted board page. Drag it anywhere, let the panel follow it. Only "log in a new account" and "sync gateway into DSH" still need the LobsterDaddy console.
效果图
悬浮球抽屉(完整界面)
⚠️ 截图为旧版本(≤ v0.9.5),仅作界面布局参考,按钮与指示器以正文为准:图中按钮区有 5 个按钮(含已删除的「抓取当前登录账号」),悬浮球右下角还有已被删除的状态圆点。当前实际为 4 个按钮、球上无圆点。
内容自上而下:操作按钮区 → 当前登录账号 → 账号列表(余额 / 套餐 / 今日已用 / 奖励明细 / 签到状态 / token 到期)→ 运行信息(数据目录 / LobsterAI 进程 / 定时自动签到 / 转接 DSH)。
抽屉顶部状态行的圆点为绿色 = LobsterAI 正在运行(该圆点在抽屉内,悬浮球上已不再有圆点);右侧标注「内置 · 账号 N 个」= 数据由插件宿主直读,不依赖任何外部控制台进程。
功能
速览
能力 · 说明
🟠 悬浮球 · 常驻 DSH 界面,可拖到任意位置,坐标自动持久化(重启后原地出现)
🧲 面板跟随悬浮球 · 拖动悬浮球时面板一起走(相对位置不变);面板头部也可单独拖动;「跟随 / 固定」一键切换并记忆
📥 原生渲染面板 · 点球展开/收起。抽屉内容自上而下:操作按钮 → 当前登录账号 → 账号列表 → 运行信息(数据目录 / LobsterAI 进程 / 定时自动签到 / 转接 DSH)
👤 当前登录账号 · 自动读取 LobsterAI 的登录状态并显示昵称;切号后自动更新,无需手动抓取
✅ 签到状态与时间 · 每个账号显示 已签到 / 今日已签到 / 今日未签到,并附最近签到时间
⏱ 定时自动签到 · 宿主内建调度器:启动后 8 秒首跑,之后每 60 分钟一轮(CHECKIN_INTERVAL_MS),状态见抽屉「定时自动签到」行与 GET /health 的 checkinScheduler
💰 积分额度 · 余额、套餐、今日已用、奖励明细(含到期日)
🦞 免退出并行登录 · 「+ 免退出登录新账号」扫码加入(仍需 LobsterDaddy 控制台提供登录流程;控制台未运行时按钮会给出明确提示)
🔁 一键操作 · 立即全部签到 / + 免退出登录新账号 / 刷新额度 / 同步网关到 DSH / 切号(签到、刷新额度为内置直调上游;登录新账号与同步网关仍走控制台)
↔️ 自由调整大小 · 拖动抽屉左下角调整宽高,尺寸自动记忆
🔢 账号数徽标 · 球左上角显示当前账号库数量(读宿主 /local/status,不依赖任何外部进程)
🌐 浏览器打开 / 网页看板 · 头部「浏览器打开」由宿主进程真正拉起系统浏览器,打开插件自建的看板页 /dsh-lobsterai-daddy/board(带签到/刷新额度/抓取/登录/切号按钮)
⭐ Star 直达 · 头部与看板均有「★ Star」,一键打开 GitHub 仓库
🧩 完全自包含 · 账号/额度/签到/切号全部由插件宿主直接实现(读 SQLite + 直调官方接口),不需要 LobsterDaddy 控制台常驻
悬浮球与抽屉
- 自由摆放:按住球拖到屏幕任意位置,松手即记住坐标(存
localStorage),重启 DSH 后原地出现。 - 永不越界:拖拽与窗口缩放都会被夹回可视区内,不会把球拖丢。
- 点击展开:单击球展开/收起抽屉;拖拽不会误触发展开(位移超过 3px 即判定为拖拽)。
- 状态一眼可见:抽屉状态行显示「LobsterAI:运行中 / 已关闭」+ 数据来源与账号数;球左上角徽标显示账号库数量。(悬浮球上已无状态圆点——原「守护进程在线」指示灯随控制台退场已删除,它恒为灰、只是视觉上的空洞。)
- 自由缩放:拖抽屉左下角调整宽高,尺寸独立持久化。
面板跟随悬浮球
- 跟随模式:拖动悬浮球时,已展开的面板按相同位移一起移动,相对位置保持不变——球和面板始终保持在你能看到的同一区域。
- 固定模式:面板钉在原地不动,只移动悬浮球。
- 一键切换:面板头部「● 跟随 / ○ 固定」按钮,选择被记住,下次打开保持上次的模式。
- 面板可独立拖动:拖面板标题栏(避开按钮)即可单独挪动面板。
- 位置独立记忆:面板坐标与悬浮球坐标分开存储,互不干扰;窗口缩放时自动夹回可见区。
当前登录账号
- 自动显示:抽屉里有一行蓝色横幅显示 LobsterAI 当前登录的账号昵称。
- 无需手动抓取:插件每次刷新都会重新读取 LobsterAI 自己的登录记录,所以切号后自动更新,不用点任何按钮。
- 未登录有提示:LobsterAI 未登录时显示「LobsterAI 未登录」。
- 安全降级:读取失败时该行自动隐藏,不影响账号列表等其它内容。
实现说明:渲染进程无法打开 SQLite,因此由宿主半边只读访问%APPDATA%\LobsterAI\lobsterai.sqlite的kv表(auth_tokens/auth_user)并通过GET /dsh-lobsterai-daddy/current提供。
签到状态与最近签到时间
每个账号都会显示今天的状态,并且带最近一次签到的日期与时间:
状态 · 含义
已签到 + 09-28 16:21 · 今天签到成功,显示签到时刻
今日已签到 + 时间 · 今天早些时候已经签过(本次是重复调用,幂等)
今日未签到(灰) · 今天还没有签到记录
失败文案(红) · 今天签到时出错,显示面板返回的原因
日期按面板的跨天判断给出,过零点自动归为「今日未签到」,不需要手动清理缓存。
账号与积分额度
每个账号卡片显示:
- 账号标识:昵称/手机号(脱敏)+ uid 短号
- 积分余额:当前余额(大字突出)
- 套餐信息:套餐名(如「免费」「会员」)与今日已用
- 奖励明细:最多 3 条奖励条目,含剩余量与到期日
- 更新时刻:余额缓存的刷新时间
- Token 有效期:到期日期,24 小时内到期会显示 ⚠ 提醒
一键操作
抽屉顶部提供 4 个操作按钮,另外每个账号行有一个「切换」按钮:
按钮 · 作用
立即全部签到 · 用账号库里每个账号的 token 逐个签到,直调 LobsterAI 上游活动接口(内置实现,不需要控制台,也不需要任何"预先同意"开关)
+ 免退出登录新账号 · 打开无痕窗口扫码登录,登录后自动入库,账号数无上限;不动 LobsterAI App 当前登录状态。此功能仍需 LobsterDaddy 控制台提供登录流程;控制台未运行时会明确提示,而不是静默失败
刷新额度 · 重新拉取所有账号的余额/套餐/今日已用(内置实现,绕过缓存强制重拉)
同步网关到 DSH · 把当前网关端口与 token 同步进 DSH 配置。仍需 LobsterDaddy 控制台;控制台未运行时按钮会给出提示(切号链路本身不依赖它)
切换(每个账号行) · 把该账号凭据写回 LobsterAI 的 SQLite 并重启 App,切完立即可用
- 切换账号会关闭并重启 LobsterAI,因此保留二次确认。
- 操作进行中按钮自动置灰,完成后自动刷新列表。
- 登录按钮在面板忙或登录流程进行中被禁用。
- 已移除的按钮(v0.7.2 / v0.9.5):~~复位登录流程~~、~~自动签到开关(同意)~~、~~守护进程开关~~、~~抓取当前登录账号~~——它们都是 LobsterDaddy 控制台时代的产物。其中「抓取当前登录账号」被删是因为它与「当前登录账号」自动显示完全冗余(
/local/capture与/current读的是同一份数据)。旧缓存若还残留这些按钮,点击会看到「该按钮已移除」的提示而不会静默失败。 - 抽屉里点「浏览器打开」后的网页看板(
/board)是独立页面,按钮集合与抽屉不同:立即全部签到/刷新额度/抓取当前登录账号/重新读取/+ 免退出登录新账号/ 每账号切换/★ Star。注意看板上保留了「抓取当前登录账号」(它走内置/local/capture,只是重读一次当前账号信息),抽屉里那个按钮则已按冗余理由删除。
实时刷新
- 抽屉打开时每 15 秒自动刷新一次(
REFRESH_MS = 15000,定时器在setOpen(true)里startRefresh()建立)。 - 抽屉关闭时这条 15 秒轮询确实会停(
setOpen(false)→stopRefresh()→clearInterval)。 - 但「不占用任何资源」是错的:悬浮球上的账号数徽标由一个独立的、无条件的 30 秒定时器维护 ——
lib/client.js:1786 setInterval(probe, 30000),它每次拉一遍/local/status?quota=0(只取accountsCount)。这条与抽屉开关无关,从挂载起就一直跑。 - 头部
⟳按钮可随时手动刷新。
ℹ️ 代码里还留着BACKGROUND_REFRESH_MS = 60000(lib/client.js:265)与startRefresh()中「关闭态降频到 60 秒」的分支(:485-490),但那是遗留死代码:startRefresh()的唯一调用点在open === true分支(:455),而setOpen(false)会立刻stopRefresh()(:463),所以定时器回调执行时open恒为true,那个 else 分支永远不会进入。文档按真实可达路径描述,不按注释描述。
兜底
- 浏览器打开:由宿主进
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::11,最后更新 2026-10-21