dsh-pomodoro-pet
Pomodoro timer with four-quadrant tasks: bind focus rounds to a task, grow a desktop pet with EXP and achievements, and let the agent start rounds or propose tasks.
Install
dsh plugin --profile web add dsh-pomodoro-pet
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
🍅 番茄精灵(Pomodoro Pet)
DSH Web / Desktop 的专注小搭档:一个番茄钟、一套四象限任务,和一只跟着你专注一起长大的桌宠。
版本 0.10.0 · 需要 DSH Web / Desktop 0.2.1-rc.2 及以上 · 零 npm 依赖 · 数据只存本机
[English](README.md) | 中文
一句话说清
点开 DSH 侧边栏的 🍅,开始一轮专注。专注结束,桌宠涨经验、数据进统计;任务用四象限排好优先级,Agent 也能帮你开钟、记任务——但改任务前一定会先问你。
装好之后你会看到:
- 侧边栏多一个 🍅 番茄精灵 入口
- 聊天页右下角多一只桌宠胶囊,抬头就能看到剩余时间
- 专注、统计、设置三个标签页,主题和语言自动跟随 DSH
功能
⏱ 专注计时
- 三种节奏:标准 25 分钟 / 深度 50 分钟 / 冲刺 15 分钟
- 单轮时长也可以自定义,5–120 分钟随意调
- 开始、暂停、继续、停止;专注结束自动进入短休,几轮后进入长休
- DSH 重启后按截止时间恢复当前轮次,漏掉的结算会补上
- 提示音 + 桌面通知,页面切到后台也能收到提醒
模式 · 默认时长 · 适合
标准 · 25 分钟 · 日常任务、例行工作
深度 · 50 分钟 · 写代码、写文档这类需要沉浸的事
冲刺 · 15 分钟 · 进入状态,或处理零碎事项
✅ 四象限任务
- 任务按 A 紧急重要 / B 重要不紧急 / C 紧急不重要 / D 其他 分类
- 给任务预估番茄数,开钟时直接绑定任务,经验按所属象限结算
- 支持拖拽换象限、完成 / 重新打开、按象限筛选
- 可以建分组,把同一类任务收在一起
🐣 会成长的桌宠
- 每完成一轮专注获得经验,青芽 → 红果 → 发光果 → 彩虹王 一路进化
- 心情会随专注、休息、放弃和升级变化;可以喂食、打招呼
- 18 个成就,达成后奖励装扮碎片;10 个碎片换一件装扮,共 4 件
- 桌宠大小可调、位置可拖;收起后就是一枚小胶囊
忙碌时把桌宠收进聊天页右下角的胶囊:倒计时、暂停、停止都在手边。
📊 看得见的专注数据
- 近半年 / 全年专注热力图,每天专注了多久一眼可见
- 每周专注时长、时段分布(上午 / 下午 / 晚上 / 深夜)、象限分布
- 按会话与工作区归属,能看出时间花在了哪个项目上
- 周报 / 月报、竖版 / 横版分享卡片(PNG)、JSON 备份
- Agent 动态:DSH 是否运行、今天用了多少工具、跑了多少步
🤖 和 Agent 一起专注
插件给 Agent 提供了一个 pomodoro_pet 工具:
- 让 Agent 开始 / 暂停 / 停止番茄钟,或查询当前专注状态
- 读取最近统计、列出任务
- 让 Agent 提议新建或修改任务——只有你在界面上确认后才会真正写入
- 结合当前会话、任务和可用技能,生成一份只读的专注计划
桌宠同时也是 DSH 会话的只读状态板:
- 当其他会话正在等待你确认或输入时,番茄精灵头顶会弹出闪烁气泡(桌宠会摇一摇并显示 ❗),同时有面板 chip、"需要你"卡片,并可选发桌面通知
- 点击气泡 / chip / 卡片 / 通知,直接跳转到对应会话
- 纯观察:不会替你回答、不改变 Agent 的 prompt / 工具 / 流程,也不会写入任何会话
在 DSH 对话里直接说就行:
- “开始一轮 25 分钟专注”
- “帮我看看今天的专注统计”
- “把「写周报」加进 B 象限,预估 2 个番茄”
🔒 数据只在你自己的机器上
- 不上传、无遥测、不发起远程请求
- 会话名、工作区路径、任务标题只在本机展示,任务标题默认隐藏
- Agent 上下文不会进入导出文件
- 等待提醒只在本机从 DSH 会话 / 审批事件读取并渲染,不会发送给模型,也不会改变 Agent 行为
- 数据保存在
$DSH_HOME/storages/pomodoro_pet/(每条记录一个 JSON 文档),拷走这个目录即可迁移;从 0.9.4 及更早版本升级时,旧的单文件pomodoro_pet.json会在首次启动自动迁移,并保留为备份
安装
安装前需要:DSH Web 或 DSH Desktop(0.2.1-rc.2 及以上)。插件本身零 npm 依赖,不需要构建。
Web 和桌面端是两个独立的 profile:Web 用~/.dsh/profiles/web,桌面端独占~/.dsh/profiles/desktop。在一边装了,另一边不会自动出现;两边的专注数据($DSH_HOME/storages/pomodoro_pet/)是同一份。
方式一:从插件页安装(推荐,Web / Desktop 通用)
插件已发布到 npm,包名 dsh-pomodoro-pet。
Web:打开 插件 → 已安装 → 添加插件,输入 dsh-pomodoro-pet,点 安装;装好后重启 dsh web 并刷新浏览器。这条路径不受插件市场索引缓存影响。
Desktop:打开桌面端左侧 Plugins → Add plugin,输入 dsh-pomodoro-pet → Install → Enable now。正常情况热生效,不用重启;若提示需要重启,完全退出桌面端再打开。
也可以在终端执行(注意两者不能混用):
# Web profile(npm 安装的 dsh 即可) dsh plugin add dsh-pomodoro-pet # Desktop profile:需使用桌面端自带的 dsh 命令(应用菜单 → Manage dsh Command… → Install), # 并在执行前完全退出桌面端 dsh plugin --profile desktop add dsh-pomodoro-pet
npm 全局安装的dsh不能修改桌面端 profile;桌面端也不要把插件装进profiles/web。
方式二:从插件市场安装
1. 打开 DSH 的 插件 页,启用实验性的 自定义插件索引,进入 发现(Discover)
2. 点 添加索引源,粘贴:
https://cdn.jsdelivr.net/gh/gitByteFree/dsh-pomodoro-pet@main/market/index.json
3. 找到 番茄精灵 / Pomodoro Pet,点击安装
4. 重启 dsh web 并刷新浏览器(桌面端:启用实验性插件市场后在 Discover 添加同一索引,安装后点 Enable now)
索引走 jsDelivr 分发(插件市场要求直接返回200且不重定向)。新版本发布后可能有最多 12 小时的缓存,稍等即可。网络可直连 GitHub 时,也可以用https://raw.githubusercontent.com/gitByteFree/dsh-pomodoro-pet/main/market/index.json。
方式三:一键脚本
tar -xzf dsh-pomodoro-pet-0.10.0.tar.gz cd dsh-pomodoro-pet ./install.sh # 默认装到 ~/dsh-plugins,profile 为 web
脚本只用于 Web profile:会自动完成「拷贝目录 → 注册到 profile → 建软链」;插件自带的 cordis.patch.yml 由 DSH 自动应用,脚本不再改 profile patch。重复执行也安全,并会拒绝保留给桌面端的 desktop profile。桌面端请用方式一。装完重启 DSH:
# 在运行 dsh web 的终端按 Ctrl+C,再重新启动 dsh web
需要自定义位置或 profile:
./install.sh --dest ~/my-plugins --profile web ./install.sh --home /path/to/.dsh --profile web
方式四:手动安装
<details>
<summary>展开手动步骤(适合想弄清每一步在做什么的人)</summary>
1. 把插件目录放到固定位置,例如 ~/dsh-plugins/dsh-pomodoro-pet
2. 编辑 ~/.dsh/profiles/web/package.json:
dependencies增加"dsh-pomodoro-pet": "link:/home/<你的用户名>/dsh-plugins/dsh-pomodoro-pet"dsh.profile.bundles末尾增加"dsh-pomodoro-pet"
3. 建立软链:
mkdir -p ~/.dsh/profiles/web/node_modules ln -sfn ~/dsh-plugins/dsh-pomodoro-pet ~/.dsh/profiles/web/node_modules/dsh-pomodoro-pet
4. 重启 dsh web,刷新浏览器
DSH0.2.1-rc.2起会自动应用插件自带的cordis.patch.yml(dsh.bundle.patch),不再需要手写insert行。旧教程里加过的 4 行可以删掉;重复的 row id 会被 Loader 按最后一条去重,留着不会崩,但没必要。
更详细的逐步说明见 INSTALL.md。
</details>
验证装好了没
Web:
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:3080/dsh-pomodoro/state
返回 200 说明 Host 端加载成功。3080 是 dsh web 的默认端口;如果你用 --port 启动过(例如 8080),换成实际端口。
Desktop:桌面端 Host 端口由系统分配,且请求需要应用注入的 Cookie,直接 curl 会返回 401——这是插件的信任围栏在正常工作,不是装坏了。直接在界面里确认即可。
界面上应该看到:
- 侧边栏出现 🍅 番茄精灵
- 右下角出现可拖动的桌宠胶囊
- 设置 → 关于显示版本
0.10.0
使用速览
快捷键
面板打开时可用:
按键 · 作用
Space · 开始 / 暂停 / 继续
S · 停止当前一轮(休息中则跳过休息)
1 / 2 / 3 · 切换 标准 / 深度 / 冲刺
? · 打开或关闭快捷键说明
Esc · 关闭弹窗 / 退出输入框
快捷键只在番茄精灵面板打开时生效;光标在输入框或弹窗里时只响应 Esc。停止一轮专注算放弃:没有经验、心情 −1、连续轮次清零;停止休息没有惩罚。
三个标签页
- 专注:计时器、当前任务、今日进度、桌宠状态、任务分布
- 统计:热力图、趋势、时段 / 象限分布、报告、分享卡片
- 设置:时长、提醒、桌宠大小、统计时区、数据导出
设置页:番茄钟、声音与提醒、外观、Agent 联动、桌宠、统计、数据,一页调完。
常见问题
<details>
<summary>展开排查清单</summary>
- 侧边栏没有图标 / 面板空白:先看启动日志里有没有
pomodoro-pet报错;再确认 bundle 已加入dsh.profile.bundles、cordis.patch.yml没写坏 - 桌面端插件列表里看不到:Web 和桌面端是两个 profile,需要按「方式一」在桌面端再装一次
/dsh-pomodoro/state返回 404(仅 Web):Host 端没加载。检查软链、bundle 列表,并确认重启过dsh webCannot find module 'dsh-pomodoro-pet':软链或link:路径不对,检查~/.dsh/profiles/web/node_modules/- 改了
client.js不生效:客户端 bundle 有缓存,强制刷新;Host
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::7,最后更新 2026-10-25