john-walks-slow/dsh-cd ↗★ 0

dsh-cd

Session working-directory override for DeepSeek Harness: a `cd` tool that makes relative paths in the file tools and the bash tool's default workdir follow the new directory, per-session and cache-safe, without moving the session or its workspace root. dsh-cd:给 DSH 补一个会话内原地切换工作目录的 `cd` 工具——文件工具的相对路径与 bash 默认工作目录跟随新目录,按会话隔离、cache 安全,且不改变会话身份与工作区根。 适合需要智能体在特定子目录下执行文件操作和命令的开发者。

パッケージ
dsh-cd
互換性
未検証
Harness ピア範囲
^0.1.5-rc.3 || ^0.2.0-rc.1
バージョン
0.1.0
ライセンス
MIT
最終更新
2026/10/10

インストール

$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 天未使用自动剪除)。实例重启后再打开该会话,覆盖自动恢复。
  • 子代理继承:会话派生的子代理在创建时快照父会话的覆盖目录(继承条目不落盘)。