前言¶
在 DeepSeek Harness(DSH)里开多个会话时,模型和工具往往直接把文件写到工作区根目录。几次会话下来,根目录会堆满脚本、配置和中间产物,很难分清哪次会话产出的、也不方便归档。常见做法是手动建子目录或事后整理,既占时间,又容易漏文件。
dsh-folders-per-session(社区仓库名 dsh-session-folders)按会话自动建带时间戳的文件夹,并在会话开头把工作目录切进去,让后续产物默认落在该目录里。下面介绍它是什么、怎么装、怎么用,以及使用前要了解的边界。
这是什么¶
这是一款 DSH 工作流类插件,由 QAQ-Eleen 维护,采用 MIT 许可证;当前包版本为 0.1.1(package.json)。定位可以概括为:每个会话一个时间文件夹,产物不再堆在工作区根目录(README 中英文简介一致)。
插件不依赖官方未文档化的「创建时改 cwd」接口,而是通过 DSH 公开的 workingDirectory 服务在目录建好后切换会话工作目录,工具、终端与系统提示会指向新目录;侧栏里会话仍归属原来的工作区根——这是刻意设计,以便 DSH 升级时不易因非公开补丁而失效。
安装后可在 DSH 插件设置里看到 session-folders 这一行,配置项在该处修改;关闭 enabled 即可一键停用,无需卸载。
目录结构示例¶
README 用一棵树说明效果(路径仅为示例):
D:\AI\DSHwenjian\
├─ 26-11-07_1930\ ← 会话一
│ ├─ _会话说明.md
│ └─ ...产物
├─ 26-11-07_2015\ ← 会话二
└─ AGENTS.md
每个会话对应一个由插件生成的目录名(默认格式 yy-MM-dd_HHmm),不靠模型拼目录名,可减少拼错与重名问题。
核心功能¶
自动建夹与会话说明¶
- 模型侧工具名为
session_folder;人在对话里可用命令/folder(别名/sf)。 - 执行后会为本会话创建时间文件夹并进入该目录;若开启
writeSessionNote,会写入_会话说明.md(已存在则跳过,不覆盖手写内容)。 - 系统提示会在每个会话开头引导模型先调用
session_folder,之后产物应落在工具返回的目录中。
配置项¶
在插件设置中调整(字段以 README 为准):
| 字段 | 默认 | 说明 |
|---|---|---|
enabled |
true |
一键开关;关掉后不注册工具、命令与提示 |
root |
空 = 会话工作区目录 | 时间文件夹建在哪;支持 ~ 和相对路径 |
format |
yy-MM-dd_HHmm |
目录名格式,支持 yyyy yy MM dd HH mm ss |
timezone |
空 = 跟随系统 | IANA 时区,例如 Asia/Shanghai |
writeSessionNote |
true |
是否自动写 _会话说明.md |
collisionSuffix |
-2 |
同分钟重名时的后缀,递增到 -3、-4… |
运行环境¶
package.json 中声明的 DSH 引擎范围为 >=0.2.1-rc.3 <0.3.0;开发依赖 @deepseek-ai/schemastery 用于类型与校验。
安装与启用¶
安装命令须使用 README 原文中的插件包名 dsh-folders-per-session,并按你使用的 DSH 形态选择 profile:
# 桌面版
dsh plugin --profile desktop add dsh-folders-per-session
# Web 版
dsh plugin --profile web add dsh-folders-per-session
装好后在插件设置中确认 session-folders 已出现;默认 enabled 为 true。若暂不需要,将 enabled 设为 false 即可,无需卸载。
说明:DSH 生态采用「一切皆插件」思路;社区目录站点(如 SkillHub)与 DeepSeek、幻方无官方从属关系,本文安装方式以插件 README 为准。
典型用法¶
命令行示例如下(README 原文):
/folder # 建本会话的时间文件夹并进入,顺带写 _会话说明.md
/folder 整理工作区 # 同一个动作,标签写进会话说明
典型流程可以是:新开会话 → 模型按提示调用 session_folder 或你手动执行 /folder → 在该目录下继续让模型写文件、跑终端 → 下次会话再得到新的时间文件夹。
同分钟若目录重名,插件会按 collisionSuffix 规则追加 -2、-3 等后缀。
适用场景与注意¶
适合谁: 经常在同一工作区开多场 DSH 会话、希望按会话隔离产物、又愿意接受「工作目录切换但侧栏仍显示原工作区根」行为的开发者。
务必注意:
- 权限与安全:插件随当前 DSH 进程权限运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全策略。
- 不移动历史文件:本插件只建新目录、写说明;不会自动把工作区根目录里已有文件挪进旧会话夹(README 写明整理历史文件不在本版范围内)。
- 不改
header.cwd:工作目录通过公开服务切换;每次切换时对话里可能出现 DSH 自身的「工作目录已变更」系统消息。 - 版本兼容:请使用满足
engines.dsh范围的 DSH 版本,避免与插件声明不匹配。
开发与参考¶
维护者在仓库中给出的开发命令(供查阅插件实现,非终端用户必需):
npm install # 只需要 @deepseek-ai/schemastery 做类型/校验
npm test # 纯 node:test,无额外测试框架
主要模块:lib/index.js(入口:工具、命令、系统提示)、lib/naming.js(目录名与重名)、lib/note.js(_会话说明.md 模板)。
结尾¶
若你希望用最小改动把「一场会话一份文件夹」固定进日常流程,可以在安装 dsh-folders-per-session 后依赖默认配置,用 /folder 或模型工具 session_folder 开席即可;需要集中存放或自定义时区、命名格式时,再改插件设置里的 root、format、timezone 等字段。