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.

Sidebar Drawer — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-sidebar-drawer

Sidebar Drawer

Edge-hover drawer for the Web GUI left sidebar: reveal it by moving the pointer to the left screen edge, keep it while the pointer stays inside, retract it when the pointer leaves

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-sidebar-drawer@0.1.1
READMECompatibilityVersions
抽屉抽出与收回的演示

Compatibility and provenance

Sidebar Drawer is published as dsh-sidebar-drawer and currently resolves to version 0.1.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
10/3/2026

Versions

0.1.1stable
10/3/2026
0.1.0stable
10/1/2026

Related plugins

Loading related plugins…

Latest
0.1.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
835.2 kB
Files
8
Surface
web
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
0
Last push
10/3/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.

Whale 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 editinClient Ui Skill Explorer@linxin666/dsh-client-ui-skill-explorerDSH skill center: browse loaded skills by source (bundled / project / user / custom / runtime), enable or disable, create and delete, in a web GUI panel.Remote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.

README

dsh-sidebar-drawer

English | 简体中文

左侧栏边缘抽屉:侧栏收起时,把鼠标移到屏幕最左边 10px 内并停留 500ms 就会抽出侧栏;鼠标停在抽屉里期间一直保持抽出;鼠标离开抽屉后自动收回。

一个纯浏览器行为插件(Host 半边是空的),只借用 DSH 自己的侧栏开合,不改动任何内置文件。

抽屉抽出与收回的演示

它会做什么

  • 停留才算数 —— 指针要在左侧 10px 内连续待够 500ms 才抽出;扫过边缘不会误触。
  • 在抽屉里就保持 —— 指针停在抽屉内(阅读、点击、停留)期间一直抽出,不催你。
  • 动画期不打断 —— 开合过渡进行中绝不发第二次开合,所以不会跳变,也不会突然消失。
  • 滑动而不是跳变 —— 出厂 frame 是"先写列宽、后发布过渡标记",直接开合会瞬变(收回看起来 就是一下子消失);插件在请求开合前先把框架自己的标记预置上,所以抽出与收回都真的滑动。
  • 手开的侧栏不碰 —— 你用按钮、Cmd+B 或拖拽调宽开出来的侧栏(手开),插件完全不碰、从不收回。
  • 让路 —— 拖拽列宽、窗口失焦、页面滚动都有对应的让路逻辑。

逐条场景、状态机不变量与已知缺口见 docs/behavior.md。

安装

这是一个 DSH plugin bundle:包内自带 cordis.patch.yml,package.json 里声明了 dsh.bundle.patch,所以它由 Plugin Manager 安装并托管挂载行 —— 不需要你手改 profile 的补丁文件。

# 从 npm 安装(推荐,带版本钉住)
dsh plugin --profile desktop add dsh-sidebar-drawer@0.1.1

# 从 GitHub 安装(同样钉住版本,走仓库的 v0.1.1 tag)
dsh plugin --profile desktop add "github:1dustycy/dsh-sidebar-drawer#v0.1.1"

# 跟随 main 最新提交(便于拿到最新行为改动)
dsh plugin --profile desktop add github:1dustycy/dsh-sidebar-drawer

# 从本地目录安装(开发用:写入 link: 依赖,改动即时生效)
dsh plugin --profile desktop add /path/to/dsh-sidebar-drawer

把 desktop 换成你要装的 profile 名(如 web、tui)。这条命令做两件事:把包装进 ~/.dsh/profiles/<name>/package.json 的 dependencies,并把 dsh-sidebar-drawer 加进该 profile 的 dsh.profile.bundles。装完后刷新页面即可生效,不需要重启 App(客户端半边由 bundle 的 mtime 轮询 + /plugins/events 热加载)。

卸载:

dsh plugin --profile desktop remove dsh-sidebar-drawer

为什么不直接往 profile 的 cordis.patch.yml 里加一行?那是与其他会话共享的文件,被覆盖时 症状是插件"装了但没生效",且从插件自身看不出任何异常。理由见 ADR-0003。

要求:DSH Desktop(或任何带 Web GUI 的 profile)。客户端半边注入 @deepseek-ai/dsh-client-ui-layout,所以目标 profile 必须已挂载 Web 布局 bundle。 peerDependencies 为 @deepseek-ai/cordis >=4.0.4 <5 —— 从 registry 安装时 Plugin Manager 会先 核对这一条,不兼容就在下载之前拒绝。

开发与验证

node test/client.test.mjs    # 单元套件:vm + DOM 替身 + 会推进的虚拟时钟,不需要浏览器
node test/browser.test.mjs   # 浏览器套件:真实 Chromium + CDP 真实鼠标事件与真实 CSS 动画
npm test                     # 依次跑上面两套
node tools/probe.mjs         # 诊断工具:打印一次边缘停留的决策轨迹
npm pack --dry-run           # 确认发布内容

改 lib/client.js 后刷新页面即可生效(前提是 profile 的 hmr 行处于启用状态,桌面 profile 默认启用)。

test/browser.test.mjs 自带 HTTP 服务与浏览器进程,跑完即退出;需要本机有 Chromium(找不到会自动跳过)。 SHOT=<路径> node test/browser.test.mjs 会把最后"抽屉打开"的画面存成 PNG(docs/harness-open.png 即由此生成)。顶部那张动图反过来 —— 它是真实 GUI 的屏幕录制,不是夹具 —— 用 node tools/demo-gif.mjs <录屏文件> 重新生成,需要本机有 ffmpeg。test/harness.html 是内置三栏 框架的等价复刻,用浏览器直接打开并加 ?plugin=<client.js 的 URL> 也能手工试。

改测试夹具前请先读 docs/implementation.md。 两套夹具必须精确建模出厂 shell 的锚点契约:夹具一旦把条件锚点写成常驻,就会在一个已损坏的 bundle 上全绿 —— 本插件正是这样发布过一个"指针停在边缘不动就无限开合"的缺陷。

文档

文档内容
docs/behavior.md行为规格:逐条场景、状态机不变量、已知缺口
docs/implementation.md实现要点:出厂锚点契约、判定逻辑、可调参数
docs/adr/决策记录(为什么这样做)
CONTEXT.md术语表:中文措辞与代码标识符的对应

许可

MIT