DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
C

dsh-codex-ui-classic

Codex Ui Classic

The Codex UI 1.1.49 sidebar, frozen inside one self-contained plugin, plus a real conversation delete. The 1.1.49 UI (Apache-2.0) is vendored so no upstream release can change it, unused navigation is trimmed, the package provides remote.workspaceRegistry.deleteSession so the session menu grows its

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:memoryovo/dsh-codex-ui-classic#74f96eb7dce0fd7e356d884c557d3e2a15d21d89
READMECompatibilityVersions
01 menu02 dialog03 family

Description

The Codex UI 1.1.49 sidebar, frozen inside one self-contained plugin, plus a real conversation delete. The 1.1.49 UI (Apache-2.0) is vendored so no upstream release can change it, unused navigation is trimmed, the package provides remote.workspaceRegistry.deleteSession so the session menu grows its 删除会话 row, it restores the row's ⋯ button, and it asks with a family tree before removing a conversation that carries subagent sessions or forked conversations. The Host delete engine is derived from better-dsh-session-deletetool (MIT). No dependency on the @michengai/dsh-codex-ui package at install time. / 把 Codex UI 1.1.49 的界面冻结进插件:侧栏代码内置、用不到的导航裁掉,上游更新不会再把界面换掉;同时补上真正的删除对话——提供 remote.workspaceRegistry.deleteSession 让会话菜单出现「删除会话」,修好被隐藏的「⋯」按钮,会话带着子智能体或派生对话时先弹家族树勾选。Host 删除引擎改编自 better-dsh-session-deletetool,安装时不再依赖 codex-ui 包。

Compatibility and provenance

Codex Ui Classic is published as dsh-codex-ui-classic and currently resolves to version 0.4.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/29/2026

Versions

0.4.0stable
10/29/2026

Related plugins

Loading related plugins…

Latest
0.4.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 1
Weekly downloads
0
Last push
10/29/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Session Titles Bundle@deepseek-ai/dsh-experimental-session-titles-bundleRefresh session titles as new human prompts arrive.Personalized Recommendations@deepseek-ai/dsh-personalized-recommendationsPersonalized pages and built-in plugin recommendations offered as cards below answersWhale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editin

README

dsh-codex-ui-classic

一个插件,两件事:把 Codex UI 1.1.49 的侧边栏冻结进来,并补上真正能用的「删除会话」。

界面代码就在这个包里,装好之后不再依赖 @michengai/dsh-codex-ui;上游发什么新版都换不掉你现在的样子。 删除也不是归档隐藏——删掉的是会话日志、工程记录与投影缓存。

名字里的 classic 指的就是这一版界面:它冻在 1.1.49,不会再跟着上游变。


界面截图

会话菜单里多出「删除会话」有未结束工作时的确认框带家族时按层级勾选
View imageView imageView image

三张图都来自真实运行:菜单里多出的红色「删除会话」是侧边栏自己渲染的,本插件只负责让守卫通过;中间那张展示「还有未结束的工作」的提示与「停止并删除」按钮;右边那张是一个带 3 个后代会话的家族树,子智能体(👤 图标)与派生对话(🔗 图标)按层级缩进、逐项勾选。


为什么要把界面搬进来

@michengai/dsh-codex-ui 用自己的一套侧边栏替换了 DSH 官方侧边栏,会话行上的菜单也是它自己渲染的。这带来两个连锁问题:

一、删除入口被守卫挡住。 Codex UI 的菜单里其实有删除项,但被一个守卫挡着:

// @michengai/dsh-codex-ui
function hasArchiveSessionDelete(value) {
  return value !== null && typeof value === "object"
    && typeof value.deleteSession === "function"
}
canDeleteSession: () => hasArchiveSessionDelete(ctx.get("remote.workspaceRegistry"))

源码注释写得很清楚:「永久删除会话由归档管理插件通过 remote.workspaceRegistry.deleteSession 提供」。而默认安装里没有任何插件提供这个命名空间,所以那一行永远不出现。

二、上游一升级,界面就换了。 Codex UI 2.0.x 是一次重写:dcu-wb-actions、dcu-wb-more、dcu-wb-context-anchor、remote.workspaceRegistry、canDeleteSession 这些钩子在新版里一个都不剩(在 2.0.3 的 lib/client.js 里逐个搜索,命中数都是 0)。也就是说,任何依赖这些接缝的插件都会被一次更新打成废纸。

所以这个包干脆把 1.1.49 的客户端整份内置,自己就是那套界面:上游再怎么改,你看到的还是这一版。

这个插件做什么

1. 内置 1.1.49 的侧边栏(Apache-2.0,见 vendor/codex-ui/NOTICE.md)。

vendor/codex-ui/ 里是原封不动拷过来的 lib/client.js、lib/index.mjs、LICENSE 与 package.json。DSH 一个包只加载一个 Client bundle,所以 scripts/build-client.mjs 把内置的 bundle 拼在自有模块前面:前者仍然以 @michengai/dsh-codex-ui 注册自己,后者用一句 require('@michengai/dsh-codex-ui') 把它取出来,在 apply 里交给同一个 Client context。结果是一个包同时跑起 1.1.49 的界面和本插件的删除功能。

2. 提供 Codex UI 在等的那个服务。

在 Client 端 provide('remote.workspaceRegistry', { deleteSession }),hasArchiveSessionDelete 守卫随之通过,会话菜单重新长出「删除会话」。如果这个命名空间已经被别的插件(例如归档管理插件)以可用的 deleteSession 占用,本插件不会覆盖它——别人那套更完整,不该被遮蔽。

3. 把被藏掉的「⋯」按钮放出来。

会话行本来就有 ⋯ 按钮,但上游自己用样式把它藏了:

.dcu-wb-actions{display:none}                          /* 只在项目标题悬停、或该行菜单已打开时显示 */
.dcu-wb-context-anchor{opacity:0;pointer-events:none}  /* 有盒子,但看不见也点不到 */

原状下只能靠右键唤出菜单。本插件注入一条优先级更高的规则,悬停会话行时 ⋯ 正常显示、可点击,于是右键和三个小点两条路都能调出同一个菜单。

4. 顺手减掉用不到的导航。

内置界面里,专家 / 技能 / 连接器 / 定时任务 / IM 助理 这几项是写死的按钮(不走插槽),本包在构建时把它们删掉——扩展管理面板、折叠栏、搜索面板三处都删;「最近」分组只在有游离会话时才有内容,空着时连标题一起隐藏(有会话时会照常出现,不会把会话藏起来)。内置界面自带的那一页设置(标题就叫 Codex UI,正文是简介加一份「配套管理插件」安装清单)也整页删掉了,设置里不再有这一栏。改动点写在 scripts/build-client.mjs 里,带行号与锚点校验,内置文件本身没被改过。

删除时会发生什么

确认之后,Host 端真的把会话删掉:会话日志目录、工程记录与投影缓存一起移除,并通知前端从列表消失。不是加一个 archived: true 标记。

确认流程:不多弹一个窗

会话状态流程
普通对话菜单 →「删除会话」→ 侧边栏自己的确认框 → 删除完成
带着子智能体 / 派生对话确认框先关掉,再弹出家族树:按层级列出全部后代会话,逐项勾选,确认按钮上写着「删除 N 个会话」
还有未结束的工作弹窗顶部标出正在运行的会话,按钮变成「停止并删除」;Host 拒绝时会把最新活动状态回填到弹窗里

家族树里每个节点都有图标区分来源:session(本对话)、subagent(子智能体)、member(成员)、chat(派生对话)、linked(关联)。默认全选,可以只留一部分。

安装

从插件市场安装(推荐)

在 DSH 的插件市场里搜 dsh-codex-ui-classic。

从 GitHub 安装

plugin_manager action=install_bundle target=https://github.com/memoryovo/dsh-codex-ui-classic

或者直接用发布包:

plugin_manager action=install_bundle target=https://github.com/memoryovo/dsh-codex-ui-classic/releases/download/v0.3.0/dsh-codex-ui-classic-0.3.0.tgz

本地目录安装

plugin_manager action=install_bundle target=<本仓库的绝对路径>

装好后重开页面即可。

先把 @michengai/dsh-codex-ui 停用。 两个插件都会占据 sidebar 插槽(都以 priority -1 注册),同时启用会互相抢位置。本包自带界面,不再需要它:

plugin_manager action=set_bundle target=@michengai/dsh-codex-ui enabled=false

依赖

  • 运行时不依赖 @michengai/dsh-codex-ui。 界面代码在 vendor/ 里,安装时不会去拉上游包。
  • 不依赖 better-dsh-session-deletetool。 删除引擎已内置在 host.js 里(改编自该项目,MIT)。
  • 需要 DSH >=0.2.0-rc.1 <0.3.0-0,Node ^22.19.0 || >=24.0.0。

已知限制

  • 被 Harness 占用的会话,删掉之后可能回来。 如果会话此刻还开着(Host 内存里仍有它的 Session/Agent),删除只会清掉磁盘记录;下一次刷新列表时 Host 会把这个仍在内存里的会话重新列出来,之后的任何一次写入还会把它重新落盘。DSH 目前没有向插件开放「释放一个活动会话」的接口,本插件也不打算去拆 Agent 的生命周期。实际表现:关掉该会话所在的窗口/标签,或重启 DSH 之后再删,就是彻底的。
  • 内置界面固定在 1.1.49。 这是刻意的:新版的界面与钩子都变了。想要新版请直接装官方 codex-ui,并停用本插件。
  • session-title 子路径插件没有内置。 DSH 一个包只加载一个 Client bundle,同一包再挂一行指不到第二个 bundle;会话标题改用官方提供方,侧边栏本身不受影响。

工作原理

浏览器                                    Host
─────────────────────────────────────     ────────────────────────────────
client.js(一个 bundle,两个模块)
├─ @michengai/dsh-codex-ui   ← 内置 1.1.49 侧边栏
│    └─ 会话菜单:canDeleteSession 为真时出现「删除会话」
└─ dsh-codex-ui-classic
     ├─ provide('remote.workspaceRegistry', { deleteSession })
     ├─ 家族树弹窗(shell.overlay,order 62)
     └─ 样式:放出「⋯」、隐藏空的「最近」

deleteSession(sessionId)  ── POST ──▶  /dsh-codex-ui-classic/delete
                                       └─ host.js:会话日志 / 工程记录 / 投影缓存
                                          然后 emit('api-session/removed')

Host 端只暴露四条同源 HTTP 路由(inspect、delete、catalog、delete-batch),都做同源校验;Client 端不直接碰文件系统。

目录结构

dsh-codex-ui-classic/
├─ client.js              # 构建产物:内置 bundle + 自有模块(勿手改)
├─ src/client.js          # 自有 Client 模块:服务、家族树弹窗、样式
├─ host.js                # Host 删除引擎与四条路由
├─ index.js               # Host 入口:自有 apply + 内置 apply
├─ scripts/build-client.mjs   # 拼装 client.js,并应用导航裁剪
├─ vendor/codex-ui/       # Codex UI 1.1.49 原样拷贝 + NOTICE
├─ locale/                # zh / en 插件元数据
├─ docs/screenshots/      # 截图
└─ cordis.patch.yml

改完 src/client.js 或 scripts/ 之后跑一次:

node scripts/build-client.mjs

致谢

  • 界面来自 @michengai/dsh-codex-ui 1.1.49,Apache-2.0。
  • 删除引擎改编自 better-dsh-session-deletetool(作者 Lzcdebear,MIT)。
  • 家族树、确认框与 Host 路由的取舍沿用该项目的设计。

License

本仓库自有代码为 MIT,见 LICENSE;vendor/codex-ui/ 为 Apache-2.0,见 vendor/codex-ui/LICENSE。