dsh-statusbar:为 DSH Web 提供可配置底部状态栏

前言

在 DSH Web 里,会话 token、轮次、工具耗时、主机 CPU/内存和实时生成速率常散落在不同位置。dsh-statusbar 把这些信息集中到底部状态栏,让开发者在不频繁切页面的情况下查看当前会话和宿主机状态。

这是什么

dsh-statusbar 是 Small-Miao 维护的 DSH 插件,许可证为 MIT。它为 DeepSeek Harness Web 提供一个 VSCode 风格的底部状态栏,用于展示当前会话用量、宿主 CPU/内存和实时生成速率;每个显示项都可在设置中配置。

核心功能

底部状态栏布局

dsh-statusbar 通过 shell.overlay seat 渲染一个 24px 底部栏。应用框架会预留底部空间,避免覆盖页面内容,例如侧边设置区和 composer 输入区。

内置状态项

内置项目包括:

  • DSH 品牌项
  • 当前会话估算 token
  • 会话轮次 / 步数
  • 累计 LLM / 工具 wall time
  • 首 token 平均与 decode 吞吐
  • prompt 侧缓存命中率
  • 计费输入 / 输出 token
  • 实时 TPS
  • CPU 字符条
  • MEM 字符条
  • 宿主时钟

这些项目都可以单独配置显示与否、左右位置和顺序。

原有状态行处理

dsh-statusbar 会隐藏 composer 输入框下方原有的 stats 行和 TPS 行,避免状态信息重复出现。

配置入口

打开 Settings → 状态栏,可以:

  • 开关每个项目的显示
  • 选择左侧或右侧对齐
  • 调整顺序
  • 使用 reset-all 选项恢复默认

配置保存在宿主侧,并持久化到 dsh-statusbar-config.json

轮询接口

状态栏每 2 秒轮询快照接口。HTTP 接口为:

  • GET /dsh-statusbar/snapshot?session=<id>:返回 itemscatalogconfig
  • POST /dsh-statusbar/config:接受 id patch 或 resetAll

安装与启用

前提是一个带 web profile 的 DSH 安装,例如由 dsh web 创建的默认 web profile。

从 GitHub 安装:

dsh plugin --profile web add https://github.com/Small-Miao/dsh-statusbar

安装完成后重启 DSH。插件在启动时挂载,刷新页面后底部状态栏出现。

典型用法

调整状态项

安装并重启后,进入 Settings → 状态栏。可以按显示需要关闭不需要的项,把常用项放在左侧或右侧,并按数值顺序调整位置。如果改乱了,使用 reset-all 选项。

在其他插件中注册状态项

dsh-statusbar 暴露 statusbar Cordis service。其他宿主插件可以注册自己的项目:

export function apply(ctx) {
  const statusbar = ctx.get('statusbar')
  if (statusbar === undefined) return

  ctx.effect(() => statusbar.registerItem({
    id: 'my.item',
    order: 15,
    align: 'right',
    label: () => 'value',
    style: 'bar',
    progress: () => 62,
    barChar: '|',
    barTotal: 10,
    color: '#4fc1ff',
    tooltip: 'hint',
  }))
}

示例中的字段包括 idorderalignlabelstyleprogressbarCharbarTotalcolortooltip

注册实时数据源

如果插件需要展示自己维护的实时值,可以注册 data source:

export function apply(ctx) {
  const statusbar = ctx.get('statusbar')
  if (statusbar === undefined) return

  ctx.effect(() => statusbar.registerDataSource({
    id: 'disk.usage',
    order: 55,
    align: 'right',
    style: 'bar',
    barChar: '|',
    barTotal: 10,
    refreshMs: 5000,
    tooltip: '磁盘用量',
    provide: async () => ({
      text: '磁盘 62%',
      progress: 62,
      color: '#4fc1ff',
      tooltip: 'updated hint',
    }),
  }))
}

字段包括 idorderalignstylerefreshMstooltipprovide。宿主会按自己的刷新节奏调用 provide(),并把返回值作为状态栏项目渲染。

适用场景与注意

适合:

  • 使用 DSH Web 的开发者
  • 需要同时查看会话 token、轮次、工具 / LLM 耗时、缓存命中、主机 CPU/内存的用户
  • 需要在状态栏中挂载自定义指标的宿主插件作者

注意:

  • 该插件需要 DSH 安装中存在 web profile。
  • 实时 TPS 项需要 dsh-live-stats
  • 插件以当前 DSH 进程权限运行,会读取主机 CPU/内存并暴露状态栏相关 HTTP 接口。安装前应检查源码与 MIT 许可证。
  • 底部空间布局依赖当前 web 构建中的应用框架哈希类 .pI_x6G_frame。如果 web app 重建后 CSS hash 变化,可能需要更新 lib/client.js 中的 selector。
  • 本篇未给出明确的 DSH 版本兼容承诺;安装后建议先在自己的 web profile 中验证加载和显示。

结尾

dsh-statusbar 的价值在于把 DSH Web 的会话状态和宿主机指标收敛到一个可配置的底部栏里,同时为其他宿主插件提供注册入口。

GitHub 仓库:https://github.com/Small-Miao/dsh-statusbar

DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。目录页链接未在本文核实材料中给出,可在目录中按插件名查找。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜