
hucj09/dsh-file-mention
30最近提交 2026年8月15日
dsh-file-mention DSH 插件
此插件为 DSH Web GUI 的聊天输入框添加了文件引用功能。输入 @ 时,会实时显示工作区文件列表,由 git 跟踪和可选的 .aiinclude 规则驱动。它与现有输入触发机制无缝集成,让你可以直接在提示中引用文件。
如何安装 dsh-file-mention DSH 插件
dsh plugin --profile web add @hucj/dsh-file-mention复制不会执行命令。安装 dsh-file-mention DSH 插件前请核对仓库和版本。
dsh-file-mention DSH 插件数据来源
dsh-file-mention DSH 插件快照日期:2026年8月16日
discovered
dsh-file-mention DSH 插件能做什么
- @ 触发实时按文件名或路径过滤(大小写不敏感,最多 30 条)
- Git 感知文件列表:跟踪文件 + 未跟踪非忽略文件;已删除文件自动隐藏
- `.aiinclude` 配置重新纳入被 gitignore 的文件(如 doc/、构建产物)
- 目录引用:选择目录插入 @路径/,让模型探索其内容
- 智能缓存:stale-while-revalidate(客户端 30s TTL,Host 端分层缓存)
- 回退模式:git 不可用时使用 .gitignore 解析和全量扫描
dsh-file-mention DSH 插件适合哪些场景
- 在与 AI 模型讨论代码时快速引用特定源文件
- 将尚未 `git add` 的新建文件纳入 AI 上下文
- 通过 .aiinclude 引用通常被 gitignore 的文档或生成文件
- 引用整个目录结构,让模型探索相关文件
dsh-file-mention DSH 插件适合谁
- 使用 DSH Web GUI 与 AI 模型交互项目代码的开发者
- 希望将项目文件(包括未跟踪或被忽略的)与 AI 助手共享的团队
dsh-file-mention DSH 插件的限制
- 仅适用于 DSH Web GUI(不适用于 CLI 或其他界面)
- 需要 git 仓库以获得最佳性能;回退模式较慢且准确性较低
- 文件列表上限 10000 项,遍历深度 32,以避免性能问题
- 重型目录(如 node_modules)默认被跳过(除非通过 .aiinclude 显式添加)
dsh-file-mention DSH 插件的仓库 README 摘录
以下文字摘自 dsh-file-mention DSH 插件的上游仓库 hucj09/dsh-file-mention 的 README,版权归原作者,仅作引用。
DSH(DeepSeek Harness)Web GUI 的 **`@` 关联工作区文件**插件:在聊天输入框输入 `@`,按输入字符实时过滤并选择工作区文件,选中后插入 `@相对路径`,模型即可直接读取该文件——类似 Codex CLI / Claude Code CLI 的 `@file` 引用体验。 > npm 包名 `@hucj/dsh-file-mention`(个人 scoped 包);插件组合行 id 为 `file-mention`。 - **git 驱动过滤**:跟踪文件 + 未跟踪且未被忽略的新文件(新建文件无需 `git add` 即可 @ 引用);天然遵守 `.gitignore`,编译产物自动排除 - **`.aiinclude` 重新纳入**:被忽略、但 AI 需要访问的文件(如项目文档)可显式加回扫描范围 - **零外部依赖**:Host/Client 双端均为纯手写代码 + 手写构建脚本 ## 功能特性 | 特性 | 说明 | |------|------| | `@` 输入触发 | 与技能 `/` 菜单、`@pluginId`、`@子代理` 同一套 `inputTriggers` 机制,多源并存 | | 实时过滤 | 按文件名或完整路径匹配(大小写不敏感),最多展示 30 条(渲染性能取舍) | | 类型图标 | 按扩展名区分 4 类图标:⌨️ 代码 / 📝 文档 / 🖼️ 图片 / 📄 其他;目录显示 📁 | | 目录引用 | 目录由文件列表自动派生(零额外扫描),可 @ 选中并插入 `@docs/ ` 供模型探索目录内容;**逐级展开**——`@app` 顶层、`@app/` 第二层、`@app/src/` 再进一层;**单段查询直达子目录**(`@10_logcat_analyze` 直接命中 `docs/10_logcat_analyze/`,无需输完整路径) | | 菜单适配 | 候选菜单加宽至 720px(官方默认 537px)+ 行字号 14→13px + 行高压缩(40→32px,同屏 +25% 行数)(高特异性选择器覆盖官方 CSS,仅影响 `@` 候选菜单) | | 命中排序 | **精确匹配**(路径/basename 全等)→ **前缀匹配** → 子串匹配(组内再按变更优先 + 字母序) | | 默认排序 | **最近修改/新增的变更文件置顶(上限 5 个,按修改时间降序)** → 📁 目录(字母序)→ 其余变更 + 普通文件(字母序)→ 隐藏路径 | | git 跟踪过滤 | `git ls-files -c` 跟踪文件 ∪ `-o --exclude-standard` 未跟踪非忽略文件;新建文件自动出现,编译产物不进来 | | 删除/重命名 | 已删除文件自动隐藏(`git
阅读完整 README仓库许可: MIT
dsh-file-mention DSH 插件常见问题
如何安装 @hucj/dsh-file-mention?
在终端中运行 `dsh plugin --profile web add @hucj/dsh-file-mention`,然后重启 DSH web 并在浏览器中按 Ctrl+F5 强制刷新。之后在聊天输入框输入 @ 即可看到文件菜单。
为什么我输入 @ 后看不到某些文件?
该插件只显示 git 跟踪的文件或未被 gitignore 的未跟踪文件。如果文件在 .gitignore 中,则不会出现,除非你在工作区根目录添加 `.aiinclude` 文件将其纳入。另外,列表上限为 10000 项,遍历深度 32。
如何配置 .aiinclude 文件?
在工作区根目录创建一个名为 `.aiinclude` 的文件,使用与 .gitignore 相同的语法(例如 `doc/` 包含目录,`*.log` 包含所有日志文件)。由于缓存,修改后大约 90 秒内生效。
能否引用目录而不是文件?
可以。插件会自动从文件列表中派生目录条目。你可以输入 `@目录/` 插入目录路径,模型可以探索其内容。支持嵌套目录,并可用单段查询直达子目录。
如何卸载此插件?
运行 `dsh plugin --profile web remove @hucj/dsh-file-mention`,该命令会删除依赖、bundle 行和安装目录。然后重启 DSH web 即可完成卸载。