What's up · 在忙啥——零维护的会话动态看板:host 端扫描全部会话,为每个会话提取「目标 + 一句话现状」(多 provider LLM、按指纹缓存),自动发现做到一半、问了没回、近期在推进的事,点卡片一键跳回会话。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-whats-up
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:delock/dsh-whats-up
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
你有没有面对着密密麻麻一堆 session tab,不知道哪个才是你刚才干到一半的任务? 如果小绿点已经无法满足你了,那么 What's up · 在忙啥 能帮你抓住正在进行的核心任务。 无需手动添加任务:插件通过分析对话,提取每个对话想达到的目标和跟进状态,并提醒你别忘了可能遗漏的任务。 你只管按需开新 tab,后面的事就交给我吧。
Ever stared at a wall of session tabs, unsure which one was the task you left half-done? When the little green dot isn't enough anymore, What's up keeps hold of what you're really working on. No manual task entry: it reads your conversations, extracts each one's goal and current status, and nudges you about the ones you might have dropped. Just open new tabs as you need — leave the rest to me.
DSH What's up · 会话动态面板:host 端扫描 ~/.dsh/sessions 的会话事件流,把每个会话分类为
近期工作 / 做到一半 / 问了没回 / 进行中 / 自动会话 / 已完成 / 空白,并为每个
会话生成 LLM 一行摘要、为每个 tab 生成总述;侧栏小组件显示数量,全屏面板点卡片
直接跳回那个被遗忘的会话。
判断规则(分类纯规则)
| 分类 | 依据 |
|---|---|
| ⚡ 进行中 | 15 分钟内仍有事件 |
| 🔴 做到一半 | 最后一次 todo/write 仍有 pending/in_progress;或最后一个 turn 被中断 / 有 start 无 end |
| 🟡 问了没回 | 最后一条真实用户消息晚于最后一条 assistant 回复 |
| 🔵 自动会话 | 首条消息以 This session is for working on 开头(pr-board 派生) |
| 🟢 已完成 | 最后一条是完整回复 |
| ⚪ 空白 | 从未有过真实用户消息 |
| 📌 近期工作 | 7 天内活跃 + 有实质工作量(≥3 轮或 ≥10 次工具),不限分类——连续推进的项目(比如连做了几天的 kernel 开发)即使每轮都答完了也会 surfaced |
LLM 摘要(host 端,glm)
- 每个值得看的会话(近期/半途/没回/进行中,上限 40 个)提取两个结构化字段:
- goal(卡片标题):用户想达到的目标,祈使句式待办(≤25 字)
- status(状态行):当前大致状态一句话,含关键进展/下一步/阻塞(≤50 字)
- 原 LLM 会话标题降级为卡片上的小字注释(
💬 原题),跳转搜索兜底仍用它 - 每个 tab(近期/半途/没回/进行中)生成 1–2 句总述
- 模型选择机制(多 provider):候选链 =
DSH_SA_MODEL(支持provider/model或裸模型名)→ settings.yaml 的agent-default-model(GUI 默认模型)→ settings 里其他凭据可解析的 provider(按声明顺序)。 endpoint 从 dsh 安装内的 pi-ai provider 注册表运行时解析(46 家,GUI 同源不硬编码);凭据解析 env(apiKeyEnv/注册表 env 名)→~/.dsh/.credentials.yaml。运行时探活:401/403/网络错误 → 当前候选 阵亡 30 分钟自动切换;glm 系模型自动附thinking: disabled - 摘要按文件指纹缓存到
~/.dsh/whats-up.summaries.json(v2 格式),会话没变不重算 - LLM 不可用时降级为规则拼出的兜底文案(todo/最后一条消息),面板照常可用
更新策略
每次请求只 stat 文件指纹(mtime + size);指纹不变完全不重算,变了才重新解压
分析对应文件。全量首扫约 4.5s(123 个会话),之后增量近乎零成本。摘要生成期间
面板每 12s 自动重拉直到补齐。
安装(web profile)
cd ~/.dsh/profiles/web
# 1. 克隆本仓库到任意位置,例如 ~/dsh-whats-up
git clone https://github.com/delock/dsh-whats-up.git ~/dsh-whats-up
# 2. package.json 的 dsh.profile.bundles 加 "dsh-whats-up",
# dependencies 加 "dsh-whats-up": "link:<克隆路径>"
# (link: 协议是符号链接,改代码只需重启,无需重新 install)
# 3. 安装并重启
pnpm install
# 重启 dsh web
使用
- 侧栏"会话清点"小组件:🔴 半途 N / 🟡 没回 M,点击开面板
- 面板内点任意卡片 → 直接跳回该会话(
ctx.sessions.open) Alt+J开关面板,Esc关闭- host 端数据接口:
GET /api/whats-up/data(?fresh=1强制全量重扫)
开发
index.js— host 端:多帧 zstd 解码 + 会话事件流分析 + 增量缓存client/client.js— 浏览器端:侧栏组件 + 全屏面板tools/test-host.mjs— 用真实会话数据验证 host 分类(node tools/test-host.mjs)tools/audit.py— 项目起点的独立 Python 审计脚本(一次性清点报告)(node tools/test-host.mjs)
链接
同类插件
Minglink/dsh-infinite-gen-4★ 3277
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
ranxianglei/billion-context★ 2276
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
liangmianya/dsh-synapse★ 557
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
Nwflower/dsh-chat-import★ 246
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
MichengAI/dsh-archive-manager★ 198
在设置里增加已归档会话页,可按工作区搜索、恢复和删除已归档会话。
SiriLee/dsh-rewind★ 170
同一会话窗口内的 in-place 对话回退(不 fork,Claude Code /rewind 语义):每条消息的 ↶ 按钮把模型上下文回退到任意用户消息,可选用磁盘持久化的 before-backups 还原工作区文件。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。