DSH Hub
dsh-file-preview-workspace cover

UndeadSheep/dsh-file-preview

dsh-file-preview-workspace

ToolWorkflow0 GitHub stars· updated 2026-08-18

dsh-file-preview-workspace is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add @undeadsheep/[email protected]

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-file-preview-workspace DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-file-preview.svg)](https://dshhub.dev/plugins/dsh-file-preview)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from UndeadSheep/dsh-file-preview, cleaned of badges and images.

file-peek 👀

昵称 file-peek · 正式仓库/npm 名 dsh-file-preview

抱书女仆帮你偷瞄工作区 —— DeepSeek Harness 的「悬浮文件预览窗口」插件(宿主 Typert Remote 服务 + 浏览器客户端悬浮窗)。

功能演示

  <br /><strong>一键唤出</strong>
  <br />会话头部按钮打开悬浮窗
  <br /><strong>可拖可改大小</strong>
  <br />可拖拽移动,拉动边缘调整悬浮窗宽高
  <br /><strong>预览也能改</strong>
  <br />打开即可改,保存写回工作区
  <br /><strong>对话里偷瞄</strong>
  <br />点路径进预览,不唤系统打开
  <br /><strong>路径即搜</strong>
  <br />顶部输入框模糊搜索工作区文件
  <br /><strong>一键亮暗</strong>
  <br />标题栏切换浅色 / 深色

安装

需要已安装 DeepSeek Harness,并用 Web 客户端--profile web)。装宿主包即可,Web 客户端会一并装上。

dsh plugin --profile web add @undeadsheep/[email protected]
dsh web

打开页面后,会话头部右上角应出现「文件预览」。点它即可打开悬浮窗。已在运行 dsh web 的,装完后重启一次。

当前请钉死 0.1.2:DSH 用的 pnpm 对刚发布的包有约 24 小时门禁,不写版本号或用 @latest 可能仍装到旧版。满一天后改回不带版本号的 add 即可。

更新

已装过旧版的,钉版本并加 --force

dsh plugin --profile web add @undeadsheep/[email protected] --force

改完同样重启 dsh web。想跟预发布:add @undeadsheep/dsh-file-preview@next。稳定用户不要用 @next

卸载

dsh plugin --profile web remove @undeadsheep/dsh-file-preview

重启 dsh web 后按钮消失。

看不到按钮?

  1. 确认重启过 dsh web(热加载不会挂上新插件)。
  2. 确认加的是 --profile web,不要装进别的 profile。
  3. 若用了自定义 DSH_HOME,安装和启动必须指向同一目录。

功能

  • 悬浮预览窗口:会话头部按钮唤出,可拖动、调大小、折叠侧边栏。收起后记住位置、大小和未保存内容。标题显示文件名,有未保存修改时加 *
  • 文件树:按需逐层加载——首开只列工作区顶层,展开目录才读下一层;打开文件会自动展开父目录并滚到当前项。自动跳过 node_modules / .git / .next / .ssh 等重目录,以及 .env* / id_rsa* / *.pem 等敏感文件。敏感路径既不出现在树和 Quick Open 里,也无法手动打开。
  • 代码编辑:基于 CodeMirror 6(虚拟化渲染 + 增量解析),打开即可改,大文件流畅。Ctrl+S 保存(保存前会写入编辑器里最后几下)。只改了换行符不会当成未保存;真改了再切文件,会出窗内确认,而不是系统弹窗。Esc 收起窗口,Ctrl+P 聚焦搜索。编辑态自带回车自动缩进、Tab 缩进、引号/括号自动闭合、撤销重做。
  • Markdown:底部「预览 / 编辑」切换。react-markdown + GFM(表格 / 任务列表 / 删除线);不解析原生 HTML,输出再经 rehype-sanitize 过滤。本地相对路径图片自动内联预览;http(s) / data: / javascript: 图和链接一律不加载。本地文件链接点击后在预览窗口内打开。
  • 图片预览:单独打开 png/jpg/gif/webp(≤5MB),支持滚轮缩放、拖拽平移、适应窗口;滚轮不会带动后面会话页面。.svg 按文本打开,不当图片渲染。
  • 深色模式:标题栏一键切换浅色 / 深色(One Dark 配色)。
  • 内嵌 JetBrains Mono:代码预览/编辑默认使用内嵌字体,用户无需本地安装。
  • Quick Open:顶部输入框模糊搜索工作区文件(↑↓ 选择、命中高亮)。没结果会提示「没有匹配的文件」;最近打开按会话隔离,换工作区不会冒出上一份的路径。
  • 会话文件直达:点击会话里提到的文件路径,直接打开预览(Makefile / Dockerfile / LICENSE 等无扩展名也会进预览;目录仍走系统打开)。
  • 主题与配置:工作区根目录放 preview-theme.json 自定义 8 种高亮色 + 背景/前景(缺省回退 .vscode/settings.json,再回退内置默认);preview.config.json 可配缩进 / 字号 / 轮询间隔 / 字体。详见宿主包 README

目录结构

├── packages/
│   ├── dsh-file-preview/              # 宿主:Typert Remote 服务 + 组合包清单
│   │   ├── src/                       #   宿主源码
│   │   ├── cordis.patch.yml           #   dsh.bundle 层(插入 file-preview + ui-file-preview 两行)
│   │   └── package.json / tsconfig.json
│   ├── dsh-client-ui-file-preview/    # 客户端:浏览器悬浮窗 UI
│   │   ├── src/                       #   客户端源码(含 CSS Module)
│   │   └── package.json / tsconfig.json / tsdown.config.ts
│   └── dsh-typert-protocol/           # vendor 的协议源码(仅构建期,让 typert 生成器识别 @Remote)
├── build/                             # vendor 的构建辅助(clientBundle 预设 + platform 清单)
├── tsconfig.{base,base.client,host,client}.json
├── tsdown.config.ts                   # 根构建(workspace 模式,跑 Typert 代码生成)
├── scripts/                           # dev.mjs 一键开发脚本
├── assets/  test-fixtures/
└── LICENSE / THIRD_PARTY_NOTICES.md

开发(本仓库即源码,可独立构建)

本仓库是自包含的插件源码仓库。装依赖并构建:

Related plugins