dsh-cd
提供会话内原地切换工作目录的cd工具,跨重启持久化。 适合需要智能体在特定子目录下执行文件操作和命令的开发者。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:john-walks-slow/dsh-cd说明文档
阅读完整 README ↗使用
无需配置,装上即生效。模型多了一个 cd 工具:
cd {"path": "/tmp/some-dir"} # 绝对路径 / 相对路径 / ~ 开头
cd {"path": "-"} # 回到上一个目录
cd {} # 查询当前目录(返回 cwd、override、previous)
细节行为:
- 目标必须是已存在的目录(符号链接会解析成真实路径),否则报错。
- 覆盖是按会话隔离的:一个会话 cd 走不影响其他会话。
- cd 回会话工作区根 = 清除覆盖,一切回到原状。
- 切换后系统提示里会注入一段说明(cache 安全的 runtime-context 快照,仅覆盖激活时存在):工具参数的相对路径解析到覆盖目录,而回答里的 markdown 链接/图片/文件提及仍以会话工作区根为基准(必须写工作区相对路径或绝对路径,否则链不上),以及不迁移的边界。
- 跨重启持久化:覆盖状态写入
$DSH_HOME/dsh-cd/state.json(原子写,30 天未使用自动剪除)。实例重启后再打开该会话,覆盖自动恢复。 - 子代理继承:会话派生的子代理在创建时快照父会话的覆盖目录(继承条目不落盘)。