前言¶
用 DSH(DeepSeek Harness)跑一段时间后,常见的一个结果是:磁盘上躺着一堆助手写过的东西,文档、图片、代码、表格,来自不同的对话,散落在各自工具调用的输出里。想知道某个 PDF 是哪次对话生成的、后来改过几次、现在还在不在,往往要翻事件日志,或者手工回忆路径。这个插件做一件事:把 profile 里每个对话中助手实际产生的文件,聚合到一个左侧边栏面板里,按文件类型分组,一点就能打开。
下面介绍的是 Shall0vv 维护的客户端插件 dsh-conversation-files。它在社区目录里归类为「客户端」,目前 GitHub 1 stars,许可证 MIT。
这是什么¶
一句话定位:DSH 的 web 插件,在左侧边栏放一个「对话文件」入口,点击后打开一个画廊面板,集中展示所有对话中助手产生的文件。
它只认两类文件:
- 写入(Written):通过
write、edit、apply_patch等工具写入、编辑或修补的文件。 - 交付(Delivered):通过
present风格工具交出来的文件。
只读操作(read、view_image 等)和用户自己附加的文件不算,会被主动排除。
核心功能¶
面板按扩展名把文件分成十组:图片、文档、表格、演示文稿、代码、配置、数据、压缩包、音视频、其他。.conf、.lock 归入配置,字体等未知扩展名归入其他。
卡片显示扩展名、来源对话(同一个文件被多个对话接触过时显示 +N)、写入次数、大小和最后写入时间,完整路径放在 tooltip 里。不同类型有不同缩略图:图片直接缩小显示;代码、文本、配置显示前 8 行的等宽块;Markdown 会去掉标题标记、列表符和强调符号,读起来像正文;PDF / Word / PowerPoint / Excel / iWork 用 macOS QuickLook 按需渲染首页;压缩包、媒体、二进制文件显示一个大扩展名标签和类型图标。磁盘上已不存在的文件不属于「全部」,单独放在「已删除」分类下,带红色标记、没有缩略图。
交互上有几种过滤方式:「全部 / 写入 / 交付 / 已删除」切换写入类型;「全部类型」下拉框按文件类型收窄并显示实时计数;「全部后缀」下拉框只列出当前类型过滤下存在的扩展名,最常用的排前面,如果选了一个不再包含该扩展名的类型,会自动重置为「全部后缀」;搜索框按文件名或完整路径过滤;工具栏右侧的「网格 / 列表」按钮切换卡片视图和紧凑列表视图(列表显示缩略图、名称、来源对话 · 写入次数 · 大小 · 日期、扩展名标记和操作菜单),视图选择会存进 localStorage。分组头在滚动时固定,面板可见时每 5 秒刷新一次,窗口隐藏时跳过轮询。
点卡片用默认应用打开。右下角 ⋮ 菜单有四项:用默认应用打开(调用 open)、选择应用打开(列出 macOS 能打开该文件的应用,默认项在前,另有 Other… 走系统选择器)、在 Finder 中打开(open -R)、移到废纸篓(移到 ~/.Trash,可恢复,执行前有确认)。
安装与启用¶
README 给出的安装方式是先取得源码目录,再用 bundle 命令注册:
git clone https://github.com/Shall0vv/dsh-conversation-files
然后在 DSH 里执行:
plugin_manager install_bundle target=<absolute path to the cloned folder>
更新已安装的副本需要先移除再重装:
plugin_manager remove_bundle target=dsh-conversation-files
plugin_manager install_bundle target=<absolute path to the cloned folder>
bundle 会被链接进 ~/.dsh/profiles/<profile>/package.json,并出现在 dsh.profile.bundles 里,重启后依然生效。从 profile 移除该 bundle 后,侧栏入口也会消失。
运行要求是 macOS(文档缩略图依赖 QuickLook)。安装前建议先读一遍源码,确认它做什么。
典型用法¶
插件启动后在左侧边栏(SSH 入口下方,文件夹图标)显示「对话文件」入口,点击即可打开面板。安装并启动 DSH 后,五秒后会有一次预热扫描,冷启动也有快照可用。
打开面板后:
1、用「全部类型」筛到「文档」,再看「全部后缀」是否只剩 md、docx、pdf 等当前类型下的扩展名。
2、搜索框输入文件名片段,确认是否按全名和路径过滤。
3、点某张卡片,文件用默认应用打开;点 ⋮ 选择「移到废纸篓」,在确认后文件被移入 ~/.Trash,之后在面板中会变成「已删除」标记。
适用场景与注意¶
适合在 macOS 上用 DSH、希望按类型盘点助手产出文件的人。它关注的是文件级视图,而不是对话内容或工具调用本身的细节。
两点需要注意。第一,插件运行在当前 DSH 进程的权限上,读写文件、改用默认应用打开、移到废纸篓这些动作都以该进程身份执行,不要轻易在一个权限较高的 profile 里启用不了解的插件。第二,它只解析工具调用的参数,不解析工具结果,因此通过 bash 重定向(>、tee 等)写出的文件不会被识别,这类文件不会出现在面板中。
结尾¶
这个插件的价值不在于多新,而在于把分散的产出收敛到一个可筛、可搜、可打开的视图里。源码和许可信息见 GitHub:https://github.com/Shall0vv/dsh-conversation-files ;目录页:https://www.skillhub.cn/plugins/Shall0vv/dsh-conversation-files 。社区目录是独立站点,与 DeepSeek / 幻方没有官方从属关系,DSH 的理念是「一切皆插件」,插件本身的行为和质量由维护者负责。