跳到正文

Rianico/dsh-better-edit

41最近提交 2026年8月16日

dsh-better-edit DSH 插件

dsh-better-edit 用哈希锚定编辑替换了内置的 read/edit 工具。每行代码获得一个 3 字符的内容哈希,编辑操作针对哈希进行,无需回显旧代码。这减少了 token 消耗,防止错误编辑,并支持连续编辑而无需重新读取文件。

如何安装 dsh-better-edit DSH 插件

dsh plugin --profile <name> add dsh-better-edit   # from npm

来源命令需要人工核对。复制不会执行命令。

dsh-better-edit DSH 插件数据来源

dsh-better-edit DSH 插件快照日期:2026年8月16日

discovered

dsh-better-edit DSH 插件能做什么

  • 读取文件时每行前添加唯一 3 字符哈希(HASH│内容)。
  • 通过指定哈希锚点(remove_from/remove_to)编辑文件范围,而非行号或文本。
  • 批量编辑最多 32 个编辑操作,原子执行,全部或全不。
  • 撤销上一次编辑(undo_last_edit),支持跨重启持久化。
  • 通过会话启动时的作用域代理注册替换内置的 read/edit 工具。

dsh-better-edit DSH 插件适合哪些场景

  • 在长时间编辑会话中减少输出 token 开销,最高可达 31%。
  • 避免使用 str_replace 风格编辑时常见的补丁失败率(46–51%)。
  • 在同一文件上执行连续编辑,无需每次编辑之间重新读取。
  • 编辑行号因之前编辑而变得不稳定的文件。

dsh-better-edit DSH 插件适合谁

  • 希望更可靠、更节省 token 的代码编辑的 DSH 用户。
  • 构建需要精确文件修改的代理或工作流的开发者。

dsh-better-edit DSH 插件的限制

  • 仅支持文本文件(UTF-8);二进制和非文本文件会被拒绝。
  • 不适用于创建新文件(必须使用内置的 write 工具)。
  • 需要 Node.js ^22.19.0 || >=24.0.0(与 DSH 的要求一致)。
  • 超过 200KB 的行会显示为标记并附带 sed 提示,而非完整内容。

dsh-better-edit DSH 插件的仓库 README 摘录

以下文字摘自 dsh-better-edit DSH 插件的上游仓库 Rianico/dsh-better-edit 的 README,版权归原作者,仅作引用。

Edit by content address — not by line numbers, not by string replacement. Fewer tokens. More attention for real work. Zero misapplied edits.</strong> </p> <p align="center"> <strong>English</strong> · <a href="README.zh.md">简体中文</a> </p> <p align="center"> <a href="#quick-start">Quick Start</a> • <a href="#why-hashline">Why Hashline</a> • <a href="#benchmark">Benchmark</a> • <a href="#tools">Tools</a> • <a href="#acknowledgments">Acknowledgments</a> </p> <p align="center"> <img src="https://img.shields.io/badge/version-0.1.9-blue.svg" alt="Version"> <img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License"> <img src="https://img.shields.io/badge/DeepSeek_Harness-Plugin-blueviolet.svg" alt="DeepSeek Harness Plugin"> <img src="https://img.shields.io/npm/v/dsh-better-edit" alt="npm version"> <img src="https://img.shields.io/npm/dm/dsh-better-edit" alt="npm downloads"> <img src="https://img.shields.io/github/stars/Rianico/dsh-better-edit?style=social" alt="GitHub Stars"> </p> <p align="center"> <img src="assets/banner.svg" alt="file.ts → read → hashed lines → edit by hash → diff" width="900"> </p> --- > *"The harness — not the mod

阅读完整 README仓库许可: MIT

dsh-better-edit DSH 插件常见问题

如何安装 dsh-better-edit?

运行 `dsh plugin --profile <name> add dsh-better-edit` 从 npm 安装,或 `dsh plugin --profile <name> add /path/to/dsh-better-edit` 从本地安装。下一个会话会使用哈希线工具。通过 `dsh --profile <name> --dump-config` 验证插件层是否已加载。

「哈希线」(hashline)是什么意思?

哈希线是核心概念:文件每一行都会根据其内容生成一个唯一的 3 字符哈希。该哈希作为稳定的地址,编辑操作针对哈希而非行号或文本。这使得编辑基于内容地址,不受位置偏移影响。

dsh-better-edit 会替换内置的 read 和 edit 工具吗?

是的。在会话启动时,插件会在代理作用域中注册自己的 `read` 和 `edit` 工具,从而覆盖内置工具。内置的 `write` 工具保持不变,但会在写入结果后自动附加一次读取。替换是每个代理作用域独立的,当代理被销毁时自动还原。

有哪些错误码,分别代表什么?

插件定义了多个错误码,例如 `[E_RANGE_STALE]`(已提供的行在磁盘上已变更)、`[E_RANGE_UNSERVED]`(范围包含未提供给模型的行)、`[E_AMBIGUOUS_ANCHOR]`(哈希匹配多行)和 `[E_NOT_TEXT]`(文件非文本)。每个错误都会附带新的锚点或清晰的提示,方便重试。

相比 str_replace,dsh-better-edit 如何节省 token?

编辑调用仅发送两个 3 字符哈希,而不是回显旧文本。基准测试显示,在 12 次编辑的会话中输出 token 减少 31%,多行范围节省 43%。由于输出 token 的计费通常是输入的 5–6 倍,有效成本降低约 1.4 倍。