DeepSeek Harness plugin

dsh-better-session-title

Better Session Title — replace the DSH session topbar title with a workspace/session breadcrumb: switch workspaces and sessions right from the topbar.

Jump to install

Source facts

Repository
xinspark/dsh-better-session-title
Latest update
Aug 16, 2026
Category
Memory
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/xinspark/dsh-better-session-title
Plugin: dsh-better-session-title
Author: xinspark

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

<p align="center"> <img src="docs/screenshots/workspace-dropdown.png" alt="Better Session Title 工作区下拉展示" width="100%"> </p>

<p align="center"> <img src="https://img.shields.io/github/v/release/xinspark/dsh-better-session-title?style=flat&amp;label=release&amp;color=08C" alt="GitHub release"> <img src="https://img.shields.io/badge/plugin-UI%20%E5%A2%9E%E5%BC%BA-47848F?style=flat" alt="UI enhancement plugin">

<img src="https://img.shields.io/badge/DSH%20Web%20GUI-Windows%20%7C%20macOS%20%7C%20Linux-4493F8?style=flat" alt="Windows | macOS | Linux">

<img src="https://img.shields.io/badge/license-MIT-2EA44F?style=flat" alt="MIT License"> </p>

<p align="center"><sub>简体中文 · <a href="README.en.md">English</a></sub></p>

<h3 align="center">把 DSH 顶栏的会话标题换成「工作区 / 会话」两级面包屑,切换入口直接放在顶栏</h3>

<p align="center"><a href="#安装"><ins><code>dsh plugin --profile web add github:xinspark/dsh-better-session-title#v1.0.0</code></ins></a></p>

Better Session Title 是面向 DeepSeek Harness会话顶栏增强插件——纯 UI 增强,不引入新能力,不改任何系统源码。DSH 原生顶栏中央只显示会话标题(层级面包屑),工作区/会话的切换入口在左侧边栏;侧边栏收起时,每次切换都要额外点击。本插件把切换入口直接放进顶栏:

  • 工作区下拉 —— 展开可见全部工作区及其会话数,一键切换;可「添加工作区」(原生目录选择器)或删除。
  • 会话下拉 —— 展开可见当前工作区全部会话及相对更新时间,一键切换;可「新建会话」。

行内操作全部复用 DSH 原生能力:重命名工作区/会话、删除工作区、分支会话、归档会话,与原生侧边栏行为完全一致。

支持 Windows · macOS · Linux(DSH Web GUI)——纯 JavaScript,无原生依赖,分发无需构建步骤。

安装

dsh-better-session-title 是一个组合包(bundle)——以包形式分发的配置补丁层(见 DSH 官方插件发布文档)。用 dsh plugin 命令安装进 profile:它会自动链接包并追加到 dsh.profile.bundles

# 从 GitHub 安装(主分发渠道,v1.0.0 为当前发布 tag)
dsh plugin --profile web add github:xinspark/dsh-better-session-title#v1.0.0
  • 建议锁定 commit:GitHub 安装拉取的是仓库源码,tag 之后的新推送不会自动影响已安装版本;如需把运行内容严格固定到某个提交,用 github:xinspark/dsh-better-session-title#<commit-sha>(官方文档推荐做法)。
  • 本地目录 / tarball(开发或离线环境):

``sh dsh plugin --profile web add ./dsh-better-session-title dsh plugin --profile web add ./dsh-better-session-title-1.0.0.tgz ``

然后启动 Web UI:dsh web(或 dsh --profile web)。首次 add 会自动用 @deepseek-ai/dsh-base 初始化 profile。

卸载:dsh plugin --profile web remove dsh-better-session-title(同时移除依赖与组合层)。

插件的 bundle 补丁(cordis.patch.yml)会自动注册 host 与 client 两半。客户端按请求加载:客户端改动刷新页面即可,host 改动需要重启。

主要功能

能力说明
两级面包屑顶栏左侧以「工作区 / 会话」展示当前位置,两侧各自展开下拉列表;空间不足时自动折叠为图标(悬停/点击仍可用)。
工作区下拉工作区列表(含会话数元信息)、添加工作区(原生目录选择器)、行内更多:重命名 / 删除工作区。
会话下拉当前工作区的会话列表(含相对时间元信息)、新建会话、行内更多:重命名 / 分支 / 归档会话。
原生一致的交互下拉为自绘层,样式逐值复刻原生 Menu.module.css(行高 40、padding 8/10、圆角 10、同款 shadow/边框 token);更多菜单、重命名/删除对话框全部使用原生 Menu / Modal / Button / Input(autoFocus、全选、输入法组合 Enter 防误触、工作区重复名校验、错误行)。
生命周期一致更多菜单跟随其所在下拉同生命周期:下拉关闭(点击外部 / Escape / 选择 / 切换)时菜单一并关闭,不残留孤立菜单。
双语言内置 zh/en 双语言字典,跟随 DSH 语言切换实时生效。

截图

会话下拉展开——切换会话、新建会话:

![会话下拉](docs/screenshots/session-dropdown.png)

会话更多菜单——悬停行尾,重命名/分支/归档:

![会话更多菜单](docs/screenshots/session-more-menu.png)

工作区下拉展开——切换工作区、添加工作区:

![工作区下拉](docs/screenshots/workspace-dropdown.png)

使用

安装后,打开任意会话,顶栏中央即显示「工作区 / 会话」面包屑:

  • 点击工作区一侧:展开工作区下拉(顶部为「添加工作区」)。
  • 点击会话一侧:展开会话下拉(顶部为「新建会话」)。
  • 悬停列表行:行尾显示「更多」按钮(重命名 / 分支 / 归档等,按行类型而定)。
  • 选择行即切换;点击空白处或按 Esc 关闭下拉。

与 dsh-basic-right-sidebar 的关系

dsh-basic-right-sidebar 把本插件作为子插件随 bundle 一并安装:它的 package.json 声明本包为依赖、cordis.patch.yml 同时插入两行插件;其「启用会话顶栏工作区/会话面包屑」设置通过全局快照 window.__BASRS_SETTINGS__'basrs:settings' 事件实时控制本插件(关闭时本插件隐藏面包屑、恢复原生标题)。

  • 装了 dsh-basic-right-sidebar 就不要单独安装本插件 —— 两个 bundle 各自插入同名插件行会产生重复行(insert 是追加语义)。
  • 两个 bundle 都装了时,请在 dsh-basic-right-sidebar 设置中关闭其面包屑,仅保留本插件的顶栏面包屑。
  • 本插件也可以独立安装、独立使用(无父插件时设置桥接缺省为启用,行为与旧版一致)。

与官方项目的关系

本项目基于官方 deepseek-ai/deepseek-harness 构建,是一个社区插件,并非 DeepSeek 官方产品。它展示的都是 DSH 自己的数据与界面,只是重新组织;不修改任何系统源码。

二次开发

  • index.js —— host 半:最小空实现(纯 UI 插件,所有逻辑在浏览器半)。
  • lib/client.js —— 浏览器半(UMD,注册进 DSH clientModules)。结构自上而下:

1. 本地基础工具:样式注入 / 定时器。 2. 双语字典BST_ZH / BST_EN)—— 注册进 ctx.locale,跟随语言切换;bstT() 带 fallback。 3. 自绘下拉列表 BstList —— 样式复刻原生 Menu;定位避让视口边缘;pointerdown 外部关闭(不用 mousedown,避免吃掉行内 click)。 4. 父插件设置桥接 —— 读取 window.__BASRS_SETTINGS__ 快照、订阅 'basrs:settings' 事件(见 WorkspaceTitleBreadcrumb),控制面包屑开关。 5. WorkspaceTitleBreadcrumb —— 注册进 conversation.session.header.actionsorder: -20,顶栏最左);紧凑模式自动折叠;更多菜单与下拉同生命周期;重命名/删除走原生 Modal。 6. apply(ctx) —— 样式注入 + 槽位注册;服务调用与 ui-workspace 一致(ctx.workspaces / ctx.sessions)。

扩展速查:

  • 新增行操作 —— 在 wsListItems / ssListItemsactions 数组加一项({ id, label, icon?, danger?, action })。
  • 新增文案 —— 在 BST_ZH / BST_EN 字典加 key。
  • 调整下拉样式 —— 修改 insertStyle 中的 .bst-item* 规则(token 与原生 Menu 一致)。

特别感谢

感谢 DeepSeek Harness 与 DeepSeek AI 团队——核心的智能体、模型、工具、会话、Web UI 与插件生态都来自这个项目;也感谢 Cordis 提供的插件化基础,以及 Koishi.js 社区长期积累的插件化实践、工具与经验。

许可证

[MIT](LICENSE) —— 完全开源免费。

Better Session Title 是 DeepSeek Harness 的社区插件,并非 DeepSeek 官方产品