dsh-double-shift-file-search
by codezha
DeepSeek Harness 的双击 Shift 文件搜索插件:搜索当前工作区的文件名和内容,使用语法高亮预览,并用默认应用打开文件。
Double-Shift file search plugin for DeepSeek Harness — search filenames and contents in the active workspace, preview with syntax highlighting, and open files with their default app.
安装
dsh plugin --profile web add github:codezha/dsh-double-shift-file-searchGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
English | 中文
一个面向 DeepSeek Harness Web GUI 的当前项目文件搜索插件,交互方式类似 PhpStorm 的 Search Everywhere。
[!IMPORTANT] DeepSeek Harness 目前仍处于开发者预览阶段,后续可能出现破坏兼容性的改动。本插件当前会安装一个小型 DSH 源码补丁,为动态 Cordis Package 提供生命周期安全的
keyboardClient Service。
功能
- 快速双击
Shift打开搜索浮层。 - 只搜索当前选中 Session 所属工作区项目内的文件名和文本内容。
- 点击结果后,在可滚动的右侧区域预览文件,并根据扩展名提供轻量语法高亮。
- 使用操作系统为该文件类型配置的默认应用打开选中的文件。
- 使用
Esc或点击背景关闭浮层。 - Host 在搜索和预览前重新校验工作区边界。
环境要求
- 一个本地 DeepSeek Harness 源码 checkout。
- DeepSeek Harness 所要求的 Node.js、pnpm/Corepack 环境。
- DSH 组合中已启用动态 Cordis Host/Client runner 与 Cordis 工具。
安装键盘能力
克隆本仓库,并把 DeepSeek Harness checkout 路径传给安装脚本:
git clone https://github.com/codezha/dsh-double-shift-file-search.git
cd dsh-double-shift-file-search
node scripts/install.mjs /path/to/deepseek-harness
也可以使用环境变量:
DSH_CHECKOUT=/path/to/deepseek-harness npm run install:dsh
安装脚本会:
- 校验目标 checkout;
- 将 Client runner 原始的
index.ts和api-catalog.ts备份到.install-backup/; - 安装生命周期安全的
keyboardClient Service; - 更新 Client Service API catalog。
对于同一个兼容 checkout,重复执行安装脚本是幂等的。
重新构建当前 DSH Web GUI
在 DeepSeek Harness checkout 中执行:
corepack pnpm --filter @deepseek-ai/dsh-cordis-client-runner run bundle
corepack pnpm --filter @deepseek-ai/dsh-web-frontend run build
随后刷新当前正在运行的 DSH GUI,默认地址通常为 http://127.0.0.1:3080。不要另起一个 Vite 服务来替代当前 DSH GUI。
如果同一个 checkout 中已经运行 pnpm run dev:web,它可能会自动重建 Client 插件产物;否则请执行上面的显式构建命令。
定义并运行动态 Cordis 插件
plugin/ 目录中的文件是 cordis_define 接受的普通 JavaScript 函数体,不是可以直接导入的 JavaScript 模块。
在使用 Cordis/创造模式的 DSH Session 中,让 Agent:
- 读取
plugin/manifest.json; - 将
plugin/host.body.js的完整内容作为code.host; - 将
plugin/client.body.js的完整内容作为code.client; - 使用
plugin: { kind: "new", idPrefix: "fseek" }调用cordis_define; - 使用返回的
pluginId和packageId调用cordis_run。
示例提示词:
读取本仓库的 plugin/manifest.json、plugin/host.body.js 和 plugin/client.body.js。
使用 idPrefix "fseek"、manifest 中的名称和用途,以及完整的 Host/Client 函数体,
定义一个新的动态 Cordis 插件,然后运行返回的 Package。
Client Package 首次运行时可能需要在 DSH GUI 中授权。动态定义只存在于当前 DSH 进程中,进程重启后需要重新定义。不要写死 fseek-1、pkg-1 等运行时生成的 ID。
更新正在运行的插件
如果要更新当前运行实例,应为同一个 Plugin 定义新的不可变 Package:
- 检查当前 Plugin,取得准确的
pluginId; - 使用
plugin: { kind: "existing", pluginId }和最新的完整函数体调用cordis_define; - 对返回的新 Package 调用
cordis_run,并设置mode: "update"。
限制与安全边界
- 默认跳过
.git、node_modules、vendor、dist、build、coverage、.next、.idea和.cache。 - 每次搜索最多遍历约 4,000 个条目,并收集最多 1,200 个候选文本文件。
- 最多返回 80 条结果。
- 不搜索或预览超过 1 MB 的文件。
- 预览最多返回文件开头 350 KB。
- 当前项目路径必须位于当前 DSH Session 可访问的工作区根目录内。
- 读取预览前会再次校验目标文件。
- 停止或更新 Package 时,Cordis Fiber 会自动清理键盘监听、样式、Slot 注册和 Host handler。
卸载
使用安装时的同一个 checkout 路径:
node scripts/uninstall.mjs /path/to/deepseek-harness
或者:
DSH_CHECKOUT=/path/to/deepseek-harness npm run uninstall:dsh
卸载脚本只恢复本仓库安装时生成的备份。如果备份不存在,它会拒绝猜测性修改 DSH checkout。卸载后重新构建 Client runner 和 Web shell,并刷新当前 GUI。
正在运行的动态插件可以通过 cordis_stop 暂停,或通过 cordis_undefine 从当前进程中移除。
仓库结构
plugin/host.body.js:安全的当前项目搜索和预览 Host half。plugin/client.body.js:双击 Shift、浮层、结果、高亮、预览和默认应用打开操作。plugin/manifest.json:插件元数据和服务依赖。dsh-patch/keyboard.ts:生命周期安全的全页面键盘 Client Service。scripts/install.mjs:将键盘能力安装到 DSH checkout。scripts/uninstall.mjs:恢复安装时创建的备份。scripts/check-plugin-bodies.mjs:检查动态函数体语法。
开发检查
运行针对性语法检查:
npm run check
dsh-plugin Topic 是什么
DeepSeek Harness 官方 README 建议插件仓库添加 dsh-plugin Topic,方便其他用户通过 GitHub Topic 页面发现插件。
Topic 是 GitHub 仓库页面上的元数据,不是 npm keyword,也不是 Git tag。仓库管理员可以在仓库主页右侧 About 区域点击齿轮图标,在 Topics 中输入 dsh-plugin 并保存;也可以通过 GitHub CLI 执行:
gh repo edit codezha/dsh-double-shift-file-search --add-topic dsh-plugin
许可证
原始 README: https://github.com/codezha/dsh-double-shift-file-search/blob/main/README.zh-CN.md ↗
同类插件
查看全部 →
dsh-web-ui-all
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。

dsh-web-ui
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。

dsh-TUI
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

DSH-better-sidebar
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。

working-activity
让 agent 的"工作状态行"活过来——实时工具动态与进度、俏皮文案、模型自述、上下文预警。同一套想法,适配两个平台: pi CLI 与 DeepSeek Harness(DSH) 。

deepseek-idesign
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。