把 DSH Web 默认侧栏替换成 Codex 风格侧栏,补齐工作区会话树、全局搜索和轮次导航。
- 语言
- TypeScript
- License
- Apache-2.0
- 分支
- main
安装
$ dsh plugin --profile web add @michengai/dsh-codex-ui在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 MichengAI/dsh-codex-ui:先查看仓库 https://github.com/MichengAI/dsh-codex-ui 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
把 DSH Web 的默认左侧导航替换成 Codex 风格的侧栏,并把工作区会话树、全局搜索和会话轮次导航一并接管,适合不习惯官方侧栏、又想要更紧凑的会话管理体验的用户。
核心能力
- 通过官方插槽接管默认侧栏,保留设置入口、底部操作和原生工作区树挂载点
- 提供 Codex 风格的顶栏(品牌标识、侧栏折叠按钮、全局搜索)
- 工作区与会话支持展开折叠、拖拽排序、项目置顶、未读圆点和运行状态指示
- 会话菜单支持重命名、置顶、未读、归档、派生、在新会话中继续、复制路径、复制标题和删除
- 在当前会话左侧渲染紧凑的轮次导航,一键跳转到对应提问
- 通过"设置 → 关于"展示配套插件的安装版本与可用更新,并能直接从页面发起缺失依赖的 npm 安装
- 在"设置 → 连接器"展示当前会话可用的 MCP 服务与工具清单(仅名称和说明,不暴露地址、命令或凭证)
技术实现
- 语言: TypeScript
- 关键依赖:
@deepseek-ai/cordis、@deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-ui-layout、@deepseek-ai/dsh-client-ui-conversation - 架构模式: 双面插件 — Host 侧在
apply中通过cordis.patch.yml关闭默认ui-sidebar并插入codex-ui,客户端侧通过 React + Cordisslots.inject注册侧栏、工作区树、轮次导航和"连接器/关于"两个设置分区 - 入口文件:
src/index.ts(Host) /src/client/index.ts(Client) /cordis.patch.yml(宿主补丁)
适用场景
日常用 DSH Web 做对话开发、需要在大量项目和会话之间快速切换,觉得原生侧栏不够紧凑、想用 Codex 那样的紧凑树 + 顶栏搜索的用户。同时也适合想从 Web 端接管配套插件(专家、技能、归档、IM、定时任务)的入口,把零散插件收拢到统一侧栏。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| @deepseek-ai/cordis | 4.0.1 ~ 4.x | 插件运行框架 |
| @deepseek-ai/dsh-client-runtime / -layout / -conversation / -locale / -sidebar / -slots / -primitives / -settings / -settings-general / -ui-sidebar | 0.1.0-rc.0 ~ <0.2.0 | 宿主 Web 客户端包 |
| @michengai/dsh-agency-agents | 0.1.3 ~ <0.2.0(可选) | 缺失时"关于"页给出提示 |
| @michengai/dsh-skills-manager | 0.1.7 ~ <0.2.0(可选) | 缺失时"关于"页给出提示 |
| Node.js | 22+ | 仅从源码构建/二次开发时需要,从 npm 安装无需 |
| 平台 | macOS / Windows / Linux | 无平台限制 |
安装方式
dsh plugin --profile web add github:MichengAI/dsh-codex-ui
配置项
本插件无需额外配置。置顶项目、未读会话等状态由插件内部写入宿主 Profile 与浏览器 localStorage,不暴露用户级配置项。
常见问题
Q: 安装后页面没变化怎么办?
A: 插件在 DSH Web 启动阶段通过 cordis.patch.yml 接管侧栏,必须重启 DSH Web 然后硬刷新浏览器(Ctrl/⌘+Shift+R)才会生效;只刷新一次普通刷新可能拿到旧的侧栏缓存。
Q: 能跟 dsh-codex-suite 共存吗?
A: 不能在同一 profile 中同时存在。两者都打相同的侧栏 patch,会冲突;要么单装本插件,要么装整套套件;切换时先卸再装。
Q: 项目置顶状态会丢吗?
A: 置顶项目写在宿主 Profile 的偏好文件并经 localStorage 缓存,DSH 重启和 Desktop 托盘重载后保留;但换浏览器、清空站点数据、或用隐私模式时会丢。置顶会话和未读会话只存 localStorage,清浏览器数据就会丢。
Q: 删除项目或删除会话会把数据也删了吗?
A: 不会。"删除项目"只是把它从侧栏项目列表中移除,本地文件夹和会话记录都保留;会话归档走宿主归档流程,真正永久删除由 @michengai/dsh-archive-manager 提供,本插件不直接销毁会话数据。
Q: "设置 → 连接器"里能看到我的服务器地址或 token 吗?
A: 不能。本插件主动只暴露 MCP 服务名、工具名和说明,服务端在 /api/michengai/codex-ui/connectors 路由里剥掉了地址、命令、凭证等敏感字段。
Q: "频道"和"定时"页签在哪里?
A: 只有装了配套插件才会出现:@michengai/dsh-im-connect 注入 sidebar.channels,@michengai/dsh-automation 注入 sidebar.schedule;插件会监听这两个插槽的占用情况,缺哪个就自动隐藏对应页签。
Q: "关于"页的依赖装不上,提示要退出桌面端?
A: 这是因为插件运行时会锁定自身文件,pnpm 安装会因 EPERM/EBUSY 失败;按提示先完全退出桌面端再让 DSH Web 服务接管,然后在"关于"页重试安装即可。
Q: 从源码安装需要注意什么?
A: 需要 Node 22+ 与 pnpm,克隆后执行 pnpm install --frozen-lockfile、pnpm build,然后用本地目录形式 dsh plugin --profile web add . 安装;不要手工复制 dist,本地安装会同时读取 package.json 与 cordis.patch.yml。
上手难度
入门 — 安装命令一行,默认接管侧栏无需额外配置,普通用户装好重启即可使用;只有二次开发或源码安装时才涉及 Node 22 + pnpm 构建链路。
已知问题与限制
- 与
@michengai/dsh-codex-suite在同一 profile 中互斥,两套 patch 会冲突;切换前需要先卸载其一 - 依赖热更新时如果 DSH Desktop 仍在运行,pnpm 会因文件锁定失败,需要从"关于"页发起安装并按提示先退出桌面端
- 会话永久删除能力依赖
@michengai/dsh-archive-manager,未安装时"删除会话"会返回"未安装或无法连接归档管理插件"提示,而非真正删除 - 源码中未发现 TODO/FIXME 标记;限制主要来自上述互斥关系与宿主 API 形态
DSH Codex UI
Rebuild the DeepSeek Harness Web sidebar, workspace tree, search, and turn navigation in a Codex-style layout
DSH Codex UI is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product. It uses public DSH slots only and does not modify host source code or conversation data.
Features
- Replace the default sidebar through the official
sidebarslot and keepsidebar.workspaces,sidebar.settings, andsidebar.footer.action. - Provide a Codex-style header with brand wordmark, sidebar collapse, and global search.
- List workspaces and conversations with expand/collapse, drag reorder, project pinning, unread dots, and running-state indicators.
- Add project and conversation menus for rename, pin, unread, archive, fork, open folder, copy, and delete.
- Restyle the conversation column and composer card, and add a compact turn navigator on the current session.
- Show companion-plugin status in Settings → About, and install the missing pieces from npm.
Screenshots
Light theme: Codex-style sidebar, workspace tree, and conversation column.

Dark theme: the same layout with Codex dark tokens.

Conversation menu: rename, pin, unread, archive, fork, copy, and delete.

Settings → About lists the companion plugins and their install state.

Prerequisites
- A working DeepSeek Harness Web installation with
dshavailable in PowerShell. - Examples use the
webprofile; replace it with the target profile. - Source installation and development require Node.js 22+ and pnpm. Installing from npm does not require running
pnpm installin an arbitrary directory.
Plugin combo
@michengai/dsh-codex-suite is the one-click combo. It installs these six plugins into the same profile:
| Plugin | npm package | Role |
|---|---|---|
| Codex UI | @michengai/dsh-codex-ui | Codex-style sidebar, workspace tree, search, and turn navigation |
| Expert management | @michengai/dsh-agency-agents | Settings page opened from Experts |
| Skill management | @michengai/dsh-skills-manager | Settings page opened from Skills |
| Archive management | @michengai/dsh-archive-manager | Permanent deletion and archived-session management |
| IM Assistant | @michengai/dsh-im-connect | IM settings and the Channels tab |
| Scheduled tasks | @michengai/dsh-automation | Scheduled-task settings and the Schedule tab |
dshmarket stays optional. When it is installed, Plugins opens the market first.
Do not install the suite and the individual plugins in the same profile. The two patch sets conflict.
DSH product ecosystem
Codex UI can be installed independently or used through the desktop app or Web suite. They share the same DSH core but serve different ways of working:
| Product | Relationship to Codex UI |
|---|---|
| DeepSeek Harness | The host runtime that provides models, sessions, tools, and the plugin system |
| DSH Codex Desktop | A ready-to-install desktop product with Codex UI and the other five feature products built in |
| DSH Codex Suite | A one-click suite for existing DSH Web environments that installs Codex UI and the other five feature products |
| Six feature products | Codex UI · IM Connect · Automation · Skills Manager · Archive Manager · Agency Agents |
Installation
dsh plugin add forwards to pnpm add in the profile directory. Without a version and official registry, a local mirror or minimum-release-age policy can leave you on an older build.
Ask another agent to install the suite
Copy one of the sentences below into DSH, Codex, or WorkBuddy and let that agent install the combo into your local web profile.
From npm:
Install the latest DSH plugin suite @michengai/dsh-codex-suite into my local web profile using the official npm registry: dsh plugin --profile web add @michengai/dsh-codex-suite@latest --registry=https://registry.npmjs.org/. Then run dsh --profile web --dump-config, confirm codex-ui, agency-agents, skills-manager, archive-manager, im-connect, and dsh-automation are mounted, and remind me to restart DSH Web and hard-refresh the browser.
UI only:
Install the latest DSH plugin @michengai/dsh-codex-ui into my local web profile using the official npm registry: dsh plugin --profile web add @michengai/dsh-codex-ui@latest --registry=https://registry.npmjs.org/. Then run dsh --profile web --dump-config, confirm codex-ui is mounted, and remind me to restart DSH Web and hard-refresh the browser.
| Product | How to use it |
|---|---|
| DSH | Send one of the sentences above to the current session. |
| Codex | Send one of the sentences above to Codex and let it install locally. |
| WorkBuddy | Send one of the sentences above to WorkBuddy. |
If dsh is not on PATH, replace the leading dsh with npx --yes @deepseek-ai/dsh.
Install the complete suite
This is the one-click combo. Run it from any PowerShell directory:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
dsh plugin --profile web add @michengai/dsh-codex-suite@latest --registry=https://registry.npmjs.org/
dsh --profile web --dump-config
To pin a release, replace @latest with a version such as @0.1.0.
Restart DSH Web and hard-refresh the browser. If the profile already has any of the six plugins installed individually, uninstall those plugins first.
Install Codex UI only
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
dsh plugin --profile web add @michengai/dsh-codex-ui@latest --registry=https://registry.npmjs.org/
dsh --profile web --dump-config
The plugin takes over the default sidebar through cordis.patch.yml. Uninstalling restores the default sidebar.
Install from source
Use this for debugging or unpublished changes. The cloned directory becomes the plugin source path:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
Set-Location D:\Repository\deepseek-harness-plugin
git clone https://github.com/MichengAI/dsh-codex-ui.git
Set-Location .\dsh-codex-ui
pnpm install --frozen-lockfile
pnpm build
dsh plugin --profile web add .
dsh --profile web --dump-config
Restart DSH Web and hard-refresh the browser. Do not copy dist manually; local installation reads both package metadata and cordis.patch.yml.
Usage
Open DSH Web. The left navigation is rendered by this plugin.
| Goal | Action |
|---|---|
| Start a conversation | Select New task, or use a workspace + / New conversation action. |
| Find a conversation or setting | Use the header search field and choose a session, Settings page, or quick action. |
| Collapse the sidebar | Use the header panel button. The expand control stays on the collapsed rail. |
| Pin a workspace | Drag it into Pinned, or use Pin project in the project menu. |
| Manage a conversation | Open the conversation menu to rename, pin, mark unread, archive, fork, copy, or delete. |
| Jump between turns | Use the turn marks on the left of the current conversation. |
| Inspect connectors | Open Settings → Connectors. Addresses, commands, and credentials are never shown. |
| Check companion plugins | Open Settings → About to install or update the combo plugins. |
Deleting a workspace registration does not delete its folder or conversation records. Pinned and unread state is stored only in the current browser.
Persistence and safety limits
| Data | Storage | Scope |
|---|---|---|
| Pinned workspaces | localStorage key dsh-codex-ui.pinned-workspace-ids | Current browser only |
| Pinned conversations | localStorage key dsh.session-pins.v1 | Current browser only |
| Unread conversations | localStorage key dsh.session-unread.v1 | Current browser only |
| Conversation records | DSH host services | Unchanged by this plugin |
- The plugin uses only public DSH slots and services.
- It does not modify host source code or the conversation data model.
- Permanent deletion of archived conversations is provided by
@michengai/dsh-archive-manager. - The Connectors directory never exposes addresses, commands, or credentials.
Secondary development
- src\index.ts: host entry and the non-sensitive Connectors directory endpoint.
- src\client\index.ts: client entry for sidebar, workspace tree, turn navigation, and Settings sections.
- src\client\CodexSidebar.tsx: sidebar shell, search panel, and visual styles.
- src\client\CodexWorkspaceBrowser.tsx: workspace and conversation interactions.
tests\*.assert.tsandtests\*.spec.ts: interaction, visual, and runtime integration checks.
After changing src, rebuild, test, and install from the local directory:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
pnpm build
pnpm test
dsh plugin --profile web add .
New features should reuse existing DSH slots and public services. Do not depend on private host DOM or write conversation records.
Verification
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
pnpm build
pnpm test
License
This project is licensed under Apache License 2.0. Conversation-management workflow is informed by Semidia/dsh-session-manager, but this plugin is implemented independently through public DSH slots and services.
查看使用指南 →
该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。
收录徽章
[](https://deepseek-plugin.org/plugins/MichengAI/dsh-codex-ui)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。