只读的本机 DSH 会话监视器:实时任务看板、会话事件尾随、阻塞等待回复、Markdown 导出,可选配合 dsh-im 推送 IM。需要 Python 3 与 zstandard 库;IM 推送需另装 dsh-im。
安装
# Release 预构建包
dsh plugin --profile web add "https://github.com/Rukawa15/dsh-session-monitor/releases/latest/download/dsh-session-monitor.tgz"
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Rukawa15/dsh-session-monitor
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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
实时掌握本机所有 DeepSeek Harness (DSH) 会话动态的只读工具——谁在跑、 跑什么、进展如何;配合 dsh-im 插件还能把结果推送到微信/QQ/飞书等 IM。
当前版本 0.6.0 · 任何时刻运行
python scripts/monitor.py help可获取 完整的固定格式使用指南(help <指令名>看单指令详情)。全部操作只读, 不会修改或干扰任何会话。
功能总览
| 功能 | 指令 | 说明 |
|---|---|---|
| 会话状态总览 | status |
全部会话的 RUNNING/STALLED/IDLE/ABORTED、轮次/步骤、最新动作 |
| 任务看板 | board |
固定格式三段式:▶ 活跃中 / ⏸ 疑似中断 / ✔ 已完成 TopN(IM 查询首选) |
| 深入某任务 | tail <短ID> |
某会话最近 N 条事件(用户消息/AI 消息/工具调用) |
| 等待回复 | wait <短ID> |
阻塞等到该会话本轮结束并打印 AI 回复;--notify 自动推送到 IM |
| 主动推送 | notify --text "..." |
经 dsh-im 把消息发到微信/QQ/飞书等(--to 选目标) |
| 导出对话 | dump <短ID> -o 文件.md |
某会话完整对话导出为 Markdown |
| 使用指南 | help [指令名] |
本指南的命令行版,输出格式完全固定 |
所有指令支持 --cwd 路径 只看某个工作区;status/board/wait 支持
--json 机器可读输出。会话短 ID 取会话 ID 前 8 位左右即可。
安装
依赖:核心功能仅需 Python 3 与 zstandard(缺失时 pip install zstandard);
IM 推送需另装 dsh-im 插件(可选,缺失时
相关命令会给出安装/配置引导,其余功能不受影响)。
三种安装方式任选其一,装完重启 DSH 生效:
- 插件市场:安装 dsh-market
后在「插件市场」标签页搜索
dsh-session-monitor一键安装; - 命令行(npm,推荐):
dsh plugin --profile <你的profile> add dsh-session-monitor(普通dsh web用户 profile 名就是web); - 命令行(GitHub):
dsh plugin --profile <你的profile> add https://github.com/Rukawa15/dsh-session-monitor.git; - 本地路径:克隆本仓库后
dsh plugin --profile <你的profile> add <仓库路径>(开发模式,改代码重启即生效)。
不装插件包也可以:把本仓库加入
~/.agents/skills/(或作为技能目录), AI 助手同样能调用scripts/monitor.py的全部指令,只是没有设置页。
快速上手
# 现在在跑什么任务?
python scripts\monitor.py board
# 某个任务进展如何?(短ID看板里有)
python scripts\monitor.py tail 0a29d310 -n 20
# 等某会话出结果,出来后推送到飞书
python scripts\monitor.py wait 0a29d310 --timeout 600 --notify
# 主动发一条消息到 IM
python scripts\monitor.py notify --text "构建完成" --to feishu
# 导出某会话完整对话
python scripts\monitor.py dump 0a29d310 -o 会话导出.md
# 完整使用指南(固定格式,可直接转发给任何提问的用户)
python scripts\monitor.py help
两个技能(AI 助手自动调用,无需手敲命令)
- dsh-session-monitor:当您问「其他会话在干什么 / 任务进度如何 / 现在在跑什么」时,AI 助手自动调用 board/tail/status 并把 board 的固定 输出原样回复给您。
- dsh-session-relay(跨会话信使):当您说「去XX会话发句话 / 帮我问一下
并带回回复 / 让XX任务继续」时使用——AI 经 GUI 代为发送,
wait阻塞等待 对方回复,再以固定格式转发给您。
当您(尤其经 IM 接入时)问「这个插件怎么用 / 有什么功能」时,AI 助手会
运行 help 并把指南原样发送——与看板相同的固定输出约定。
设置页
DSH 设置 → 「DSH 会话监视器」:
- 调整轮询间隔 / 活跃判定阈值 / 僵尸隐藏阈值 / 看板条数;
- 顶部「依赖插件检测」状态卡实时显示 dsh-im 连接情况(未安装 → 引导到 插件市场;已连接无目标 → 引导到 设置→IM机器人 新建目标;正常 → 显示 机器人与目标数量),支持一键「重新检测」。
配置(优先级:命令行参数 > 配置文件 > 默认值)
三种入口,设置页与配置文件是同一份数据:
- 设置页图形界面(最省心)
- 直接编辑
~/.dsh/dsh-session-monitor.json(手改后对之后运行的命令立即生效) - 命令行参数临时覆盖(如
board --top 10、wait --poll 5,只对当次生效)
可调项:poll_interval_sec(默认 10)、running_threshold_sec(900)、
zombie_hours(24)、board_top(5)、board_max_running(10)、
delivery(IM 投递回退配置;正式目标由 dsh-im 统一管理)。
状态与看板解读
[RUNNING]正在运行(15 分钟内有写入且本轮未结束)[STALLED]疑似中断(本轮未结束但超 15 分钟无写入)[IDLE]空闲(本轮已正常结束)·[ABORTED]最后一次轮次被手动中止- 看板「活跃中/疑似中断」各最多显示
board_max_running条,超过 24 小时 无更新的僵尸会话不再显示;「已完成」按更新时间取前board_top条
数据与隐私
数据源为本机当前用户的 ~/.dsh/sessions/<工作区分组>/<会话ID>/session.v4.jsonl.zstd
(多帧 zstd 压缩的 JSONL 事件流,DSH 按事件实时落盘,因此能以秒级新鲜度
反映各会话状态)。只读本机当前用户数据;不修改、不上传、不干预任何会话。
链接
同类插件
Minglink/dsh-infinite-gen-4★ 3781
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
ranxianglei/billion-context★ 3598
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
liangmianya/dsh-synapse★ 641
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
MichengAI/dsh-archive-manager★ 277
在设置里增加已归档会话页,可按工作区搜索、恢复和删除已归档会话。
Nwflower/dsh-chat-import★ 275
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
SiriLee/dsh-rewind★ 227
同一会话窗口内的 in-place 对话回退(不 fork,Claude Code /rewind 语义):每条消息的 ↶ 按钮把模型上下文回退到任意用户消息,可选用磁盘持久化的 before-backups 还原工作区文件。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。