悬浮窗内预览并编辑工作区文件,改动直接写回
26.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add UndeadSheep/dsh-file-preview该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 74 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
- 读取本地文件build/tsdown.client.ts:190
const source = await readFile(fileId) - 读取本地文件build/tsdown.client.ts:223
if (!existsSync(fileId)) { - 读取本地文件build/tsdown.client.ts:227
const data = await readFile(fileId) - 读取本地文件build/tsdown.client.ts:246
if (existsSync(emitted)) return emitted
扫描于 2026/10/31(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-fs@deepseek-ai/dsh-invariants@deepseek-ai/dsh-sandbox-policy@deepseek-ai/dsh-session@deepseek-ai/dsh-typert-generator给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 悬浮窗预览文件
- 编辑工作区文件
- 改动直接写回
README
由 DeepSeek 最新模型翻译生成file-peek 👀
Awesome DSH Plugin
昵称 file-peek · 正式仓库/npm 名 dsh-file-preview
file-peek 吉祥物:粉发女仆抱着一摞书快摔倒
抱书女仆帮你偷瞄工作区 —— DeepSeek Harness 的「悬浮文件预览窗口」插件(宿主 Typert Remote 服务 + 浏览器客户端悬浮窗)。
功能演示
一键唤出会话头部按钮打开悬浮窗
可拖可改大小可拖拽移动,拉动边缘调整悬浮窗宽高
预览也能改打开即可改,保存写回工作区
对话里偷瞄点路径进预览,不唤系统打开
路径即搜顶部输入框模糊搜索工作区文件
一键亮暗标题栏切换浅色 / 深色
安装
需要已安装 DeepSeek Harness,并用 Web 客户端(--profile web)。装宿主包即可,Web 客户端会一并装上。
dsh plugin --profile web add @undeadsheep/dsh-file-preview@0.1.2
dsh web
打开页面后,会话头部右上角应出现「文件预览」。点它即可打开悬浮窗。已在运行 dsh web 的,装完后重启一次。
当前请钉死 0.1.2:DSH 用的 pnpm 对刚发布的包有约 24 小时门禁,不写版本号或用 @latest 可能仍装到旧版。
展开完整文档(README 剩余 1 节)
file-peek 👀
Awesome DSH Plugin
昵称 file-peek · 正式仓库/npm 名 dsh-file-preview
file-peek 吉祥物:粉发女仆抱着一摞书快摔倒
抱书女仆帮你偷瞄工作区 —— DeepSeek Harness 的「悬浮文件预览窗口」插件(宿主 Typert Remote 服务 + 浏览器客户端悬浮窗)。
功能演示
一键唤出会话头部按钮打开悬浮窗
可拖可改大小可拖拽移动,拉动边缘调整悬浮窗宽高
预览也能改打开即可改,保存写回工作区
对话里偷瞄点路径进预览,不唤系统打开
路径即搜顶部输入框模糊搜索工作区文件
一键亮暗标题栏切换浅色 / 深色
安装
需要已安装 DeepSeek Harness,并用 Web 客户端(--profile web)。装宿主包即可,Web 客户端会一并装上。
dsh plugin --profile web add @undeadsheep/dsh-file-preview@0.1.2
dsh web
打开页面后,会话头部右上角应出现「文件预览」。点它即可打开悬浮窗。已在运行 dsh web 的,装完后重启一次。
当前请钉死 0.1.2:DSH 用的 pnpm 对刚发布的包有约 24 小时门禁,不写版本号或用 @latest 可能仍装到旧版。满一天后改回不带版本号的 add 即可。
更新
已装过旧版的,钉版本并加 --force:
dsh plugin --profile web add @undeadsheep/dsh-file-preview@0.1.2 --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
开发(本仓库即源码,可独立构建)
本仓库是自包含的插件源码仓库。装依赖并构建:
pnpm install
pnpm build # = build:host + build:client
构建流程(产物 packages//lib/):
1. tsc -b 编译各包 src/ → lib/types/(类型声明 + 编译 JS)。
2. tsdown --env.DSH_BUILD_FACE host:打包宿主 lib/index.js,并跑 Typert 代码生成,产出 typert.host.js + typert.remote-client.js。
3. tsdown --env.DSH_BUILD_FACE client:出浏览器 bundle lib/client.js(CSS Module 内联 + __ModuleLoader__ 包装)。
本地验证(一键)
改完源码后,一条命令构建 + 打包 + 装进干净的 dsh profile 并自动起 dsh web(自动处理「测试形态」的客户端依赖):
pnpm dev
启动后浏览器访问 http://127.0.0.1:3090 看效果(Ctrl+C 停止)。换端口用 pnpm dev --port 3091;只想构建+安装、不自动起服务用 pnpm dev --no-start(会打印带 DSH_HOME 的手动启动命令)。
装好的 profile 在 %TEMP%\dsh-dev-profile;整个过程不改动仓库的「发布形态」,只在你本地临时切换。
⚠️ 手动起服务时必须带上同一个 DSH_HOME(见 --no-start 打印的命令),否则 dsh web 读的是 ~/.dsh ——那里没有本插件,就会「看不到文件预览按钮」。
发布到 npm
1. bump 版本:两个 packages//package.json 的 version 一起改成同一个版本号(例如 0.1.2)。
2. 构建:pnpm build。
3. 发布(先客户端后宿主,因为宿主依赖客户端):
Set-Location .\packages\dsh-client-ui-file-preview; pnpm publish --access public --tag latest
Set-Location .\packages\dsh-file-preview; pnpm publish --access public --tag latest
用 pnpm publish 而不是 npm publish:宿主 package.json 里的客户端依赖写的是 workspace:^,pnpm publish 会自动把它转成 ^<version> 再上传(本地 pnpm pack 也是同样的转换)。发布后核对:
npm view @undeadsheep/dsh-file-preview dependencies
客户端依赖应是 ^<version>,不能是 workspace:^。
版本标签策略:
- 稳定版(0.1.0、0.1.1…)→ --tag latest(普通用户 add <包名> 默认拿到)。
- 预发布版(0.2.0-beta.1 等)→ --tag next,不要用 latest:
pnpm publish --access public --tag next
测试用户用 add <包名>@next 显式拉取,不影响普通用户的稳定版。
作者与许可
- 作者:UndeadSheep
- 许可:MIT。
- 第三方声明:THIRD_PARTY_NOTICES.md。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
UndeadSheep/dsh-file-preview
悬浮窗内预览并编辑工作区文件,改动直接写回
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7