shiningsprk-arch/dsh-context-viewer
DeepSeek Harness (DSH) 上下文查看器 — 浏览思考链、shell 命令、工具调用与原始事件日志(Electron + React)
Project Overview项目介绍
This is a desktop context viewer for DeepSeek Harness (DSH), available as a portable Windows x64 app. It lets you view full context of DSH's historical and real-time sessions, including thinking chains, tool calls, token stats and raw logs. Use it to debug or review DSH runs, and it only works with DSH v0.1.5+.
这是DeepSeek Harness(DSH)的桌面上下文查看器,仅提供免安装的Windows x64便携版。可浏览历史和实时会话的完整上下文,包括思考链、工具调用、Token统计和原始日志。需要调试或复盘DSH运行时可使用,仅兼容DSH 0.1.5及以上版本。
请帮我了解并安装插件:【dsh-context-viewer】【https://github.com/shiningsprk-arch/dsh-context-viewer】
Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:shiningsprk-arch/dsh-context-viewer
把 shiningsprk-arch/dsh-context-viewer 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
🕵️ DSH上下文查看器
DeepSeek Harness 桌面上下文查看器(Electron + React)。浏览历史与实时会话的完整信息: 思考链、shell 命令(pwsh/bash)、工具调用参数与结果、错误、token 统计、原始事件日志。

下载使用
- 从 Releases 下载
dsh-context-viewer-win32-x64.zip - 解压后直接运行
DSHContextViewer.exe(Windows x64 便携版,免安装)
前提:本机 DSH 正在运行(Web UI 默认
http://127.0.0.1:3080)。 查看器会自动读取 DSH 启动日志中的 token 完成认证,无需任何手工配置。
功能
- 会话列表:按 workspace 分组,标题/时间/轮次/步骤/token 统计,运行状态实时标记
- 事件时间线:用户消息、助手消息/助手尝试(V3,含可折叠思考链)、工具调用卡片(shell 命令高亮)、 工具结果(含错误)、轮次/步骤边界、流式增量(默认折叠)
- 过滤:按事件类别(用户/助手/思考/调用/结果/边界/流式/其他)过滤
- 实时视图:通过 WebSocket 连接运行中的 DSH(
/api/remote.mux→session/follow),新事件实时追加; 生成中的助手输出显示为"实时生成中"卡片 - 统计面板:token 用量、上下文压力、工具调用分布、事件类型分布
- 原始日志:逐事件原始 JSON(可搜索、可全部展开)
- 导出:Markdown / JSONL / JSON
- 全局搜索:调用 DSH 的
session/search服务搜索所有会话内容 - 中文界面,暗色主题
兼容性
| DSH 版本 | 查看器版本 |
|---|---|
| 0.1.5 及以上(Typert 协议 + 浏览器认证) | v0.2.0+(当前) |
| 0.1.0 ~ 0.1.2(旧版协议) | v0.1.0 |
运行前提
- 本机 DSH 正在运行,且版本 ≥ 0.1.5
- Windows x64(便携版);源码运行需要 Node.js ≥ 22
- 查看器自动从以下日志读取最近一次启动的地址与 token:
%LOCALAPPDATA%\dsh\dsh-web.out.log(默认位置)%USERPROFILE%\Desktop\dsh\dsh-service.out.log(旧版启动脚本位置)- 日志里打印的端口会被自动识别,不需要手动配置
- 全局搜索依赖服务端会话索引:profile 的
session-query-sqlite.openAt不能为never(建议设为first-search,见下方常见问题)
常见问题
Q:显示"未连接 DSH"或认证失败?
查看器从 %LOCALAPPDATA%\dsh\dsh-web.out.log 最后一行读取启动 token。如果你的 DSH 启动方式不同、
日志不在上述位置,可以提 issue;也可用环境变量 DSH_CV_BASE_URL 覆盖服务地址(默认 http://127.0.0.1:3080)。
Q:全局搜索报"session search is disabled"?
服务端默认关闭了会话索引。在 profile 的 cordis.patch.yml 中加入(注意该 patch 是整段替换配置,必须带上 path):
- id: session-query-sqlite
config:
path: ':memory:'
openAt: first-search
Q:DSH 重启后 127.0.0.1 打不开、提示需要认证?
这是 DSH Web 本身的浏览器认证机制(token 每次启动都会变),与查看器无关。用日志里最新一行带 ?token= 的地址在浏览器打开一次即可重新建立信任。
开发
# 安装依赖(首次需下载 Electron;国内可用 npmmirror 镜像:
# $env:ELECTRON_MIRROR='https://npmmirror.com/mirrors/electron/'
# npm install --registry=https://registry.npmmirror.com)
npm install
# 开发模式(Vite HMR + Electron)
npm run dev
# 构建并启动
npm start
# 打包为 Windows 便携版(输出到 release/)
npm run pack
若 electron-packager 因网络失败,可用本地脚本手工组装便携版:
powershell -ExecutionPolicy Bypass -File pack-manual.ps1(复制 Electron 运行时 + dist 产物 + ws 依赖到 release/DSHContextViewer-win32-x64/)
自动化验证
设置 DSH_CV_SHOT=<png路径> 启动应用,主进程会自动检查 DOM 状态、选择会话、
遍历主要视图并截图退出(验证钩子,日常使用不触发)。可用 DSH_CV_SESSION=<会话ID> 指定要打开的会话。
$env:DSH_CV_SHOT='C:\shot.png'
$env:DSH_CV_SESSION='session-xxxxxxxx-...'
& '.\release\DSHContextViewer-win32-x64\DSHContextViewer.exe'
数据来源
- 认证:GET
/?token=<启动 token>兑换dsh-auth-*cookie,HTTP 与 WebSocket 均携带 - HTTP unary:POST
/api/<endpoint>(session/list/session/page/session/search),payload 为{ args } - 实时流:WebSocket
/api/remote.muxworkspace/follow:workspace 基线 + 增量(upsert/remove/order/archived)session/follow:会话快照(记录+投影)+ 实时事件 +assistant-stream帧
- 会话历史分页:
session/page(address+throughSeq(snapshot cursor) +beforeSeq)
目录结构
electron/ 主进程(窗口、DSH API 客户端、IPC、实时推送)
shared/ 共享类型与标签(main/renderer 共用)
src/ React 渲染层
components/ 组件(时间线、卡片、统计、原始日志、侧边栏…)
store.tsx 全局状态(会话/事件/过滤/推送归并)
docs/ 截图等文档资源
CI / Releases
推送到 main 自动构建产物;推送 v* tag 会构建并自动发布 GitHub Release(含便携版 zip):
git tag v0.2.0
git push origin v0.2.0
robiteame/dsh-session-tree-extension
chiro2001/dsh-oc
Julyves/dsh-git-ui
orriduck/dsh-tui
kevenxz/dsh-desktop
ccch1mneyyy/dsh-TUI