dsh-at-file
omdsh-dev/dsh-at-file
Codex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
安装
把 dsh-at-file 装进 DeepSeek Harness
npm 方式
直接拉已发布的 tarball,不用克隆整个仓库,也不需要额外配置。如果你用的是别的 profile,把 `web` 换成对应的名字。
GitHub 方式 · npm 包
从 GitHub 装会执行项目自己的构建脚本,而 pnpm 默认拦着不让跑——先跑一次这条命令,pnpm 会打印出要加到 ~/.dsh/profiles/web/pnpm-workspace.yaml 里 `allowBuilds` 下面的那个 key。
我们跑过之后
我们跑过,装得上
这里每条命令都在一次性容器里、对着干净 profile 真跑过,结果取自 harness 自己的记录,不是读源码猜的。 最近一次 11 天前.
挂进你的 README
给维护者的:badge 取这条 listing 最近一次 sandbox 实测的结果,重跑之后它自己会变,读者点开就是这页的完整记录。
安装前须知
装 dsh-at-file 之前,先看这几条
- 源码在这里: omdsh-dev/dsh-at-file——已进入社区精选库,DSH 自带的插件市场就是从这儿装的。
- 开源协议:MIT。
- 被收录在这里不代表通过了安全审计。插件是带着你 agent 的权限在跑。
AI 锐评
是什么 — 在 DeepSeek Harness Composer 中搜索工作区文件并插入路径引用。
谁该装 — 在使用 DeepSeek Harness web 界面构建任务时,如果 agent 需要引用工作区文件,此插件适用。 如果你使用的是非 web 界面的文件引用方式,此插件不适用。
注意 — 沙箱实测通过:在全新 profile 里装上,并被 harness 注册进 profile。路径存在性确认在 agent 任务前运行。没发现明显的坑。
锐评 — 我选择安装它,因为它能在 agent 开始步骤前确认路径存在并添加引用,这让文件引用更可靠。
grok-4.6 写的,只当参考,不当结论。里面说装得上或装不上,是在干净 profile 里真跑过的;其余都是读仓库读出来的。以实际运行为准。
dsh-at-file 是做什么的

dsh-at-file 是一个 DeepSeek Harness 插件,为 Web 输入框加入 Codex 风格的 @file 引用。输入 @ 后可搜索当前 workspace,选择文件或目录;路径会保留在草稿和引用栏中,也可以打开或移除。它适合需要在提示中明确指出工作区路径、但不想手动复制路径的开发者。
插件在 active workspace 中建立路径索引,跳过配置的目录名、symbolic link 以及文件名过滤规则。agent 步骤开始前,Host 会确认路径仍位于 workspace 内,然后写入类似 <workspace-reference path="docs/spec.pdf" kind="file" /> 的短消息。它不会读取文件内容,也不会列出被引用目录的内容;agent 是否能检查目标,取决于当前会话提供的工具。设置通过插件自己的 Host connection 保存,配置位于 profile 的 cordis.patch.yml。
如果需求是提交时自动把文件内容附加到 prompt,dsh-at-file 不合适。绝对路径、workspace 外部路径不会被接受,PDF 也不会因被引用而自动解析。实际读取能力取决于 agent 工具;机制适用于 0.3.0 及更高版本。
dsh-at-file 的文档
行为说明
在输入框键入 @ 后,picker 搜索 active workspace。普通查询匹配文件名,包含 / 的查询按路径片段顺序匹配,末尾的 / 表示在该路径下继续搜索。高亮目录后按 ArrowRight 可进入,按 Enter 或使用鼠标完成引用。索引包含普通文件和目录,跳过 symbolic link;每个会话缓存 30 秒。引用前 Host 会验证 workspace-relative path,绝对路径和越界路径会被忽略。插件写入包含路径与 kind 的 workspace-reference 消息,不读取文件或列出目录;点击路径会调用 host.openPath。
配置
在选定 profile 的 cordis.patch.yml 中配置,通常位于 ~/.dsh/profiles/web/cordis.patch.yml。
| 配置项 | 作用 |
|---|---|
maxIndexedFiles |
限制 picker 索引中的条目数量。 |
ignoreDirs |
替换默认排除的目录名列表;设为 [] 可索引所有目录。 |
省略 ignoreDirs 时保留内置排除项,涵盖版本控制目录、IDE 元数据、依赖目录、缓存和构建输出等。
文件过滤
在 Settings -> File mentions 管理全局和 workspace 规则。Exact 匹配完整 basename;Regex 使用 JavaScript 正则匹配完整 basename,不接收父目录或 workspace 路径。Case-sensitive 可独立设置,默认关闭。规则在 Host 建立索引时应用,并在计入 maxIndexedFiles 前完成过滤。无效正则不能保存。旧的 ignoreFiles 字符串值和 workspace 列表会继续作为不区分大小写的 Exact 规则使用。
环境要求与限制
安装或更新后需重启 dsh web,使 Host 和 browser client 加载新版本;该机制适用于 0.3.0 及更高版本。手动输入的 @path 只要确实存在于 workspace 中,即使超出 maxIndexedFiles 仍可引用。@path token 不能包含空格或另一个 @。文件检查依赖当前会话工具:DSH 提供读取 UTF-8 文本的 read 和读取受支持图片的 read_image,PDF 支持取决于会话。
根据项目自己的文档整理,会跟着上游更新。两边对不上时以源码仓库为准—— 去 GitHub 看原始 README
同一分类
dsh-at-file 的同类插件
dsh-web-all
zhu1090093659
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
我们跑过,装得上
dsh-web-ui-all
zhu1090093659
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
没有一行式安装命令——这个插件在一个大仓库的子目录里,也没发 npm 包。