hyperion2144/dsh-hashline-edittool
Hash-anchored read / edit / grep tools for DeepSeek Harness: every line carries a content anchor, so the model edits by marker instead of echoing old code.
dsh-hashline-edittool replaces the built-in read / edit / grep tools with hash-anchored versions and adds undo_last_edit, ast_grep, ast_edit and an lsp tool. Every line carries a variable-length Base62 content anchor (two characters cover the first 3,844 lines), so the model edits by marker and never echoes the code it is replacing. The README stresses verification: each referenced anchor is checked line by line — it must still be live, its line must still hold the content it was minted for, and it must be in this session's served set — and a refusal echoes the failing lines with real, immediately usable anchors (reject-and-serve). An optional require_line_content hardening makes every anchor carry a content requirement, and served rows are emitted as fs/observed so they can be written immediately.
Install
dsh plugin --profile web add dsh-hashline-edittoolCopied verbatim from the README's install lines, which show the npm form as npx @deepseek-ai/dsh plugin --profile web add dsh-hashline-edittool (alongside a github: form and a local-checkout form). The package form is therefore dsh plugin --profile web add dsh-hashline-edittool.
Compatibility
The README's requirement table lists Node ^22.19.0 || >=24.0.0 (the dsh requirement; the store uses node:sqlite) and a dsh profile (dsh plugin initializes one on first use). Settings changes hot-reload, taking effect on the next tool switch; a flipped require_line_content change is handled on the next call.
Details
- Repo: hyperion2144/dsh-hashline-edittool
- Category: Coding & Development
- Stars: 0
- Version: GitHub repo hyperion2144/dsh-hashline-edittool (MIT, per the README's License section); npm package dsh-hashline-edittool at 0.9.5 (registry check 2026-10-07). The README's build/test note says 0.9.x requires dsh 0.1.7 while 0.8.x stays for 0.1.6.
FAQ
- What happens if a file changed under the agent?
- The README says a line that changed under the agent is refused, and the refusal echoes the failing lines with real, immediately usable anchors so the fix is to take the marker from the echo and resubmit.
- Are settings changes picked up without a restart?
- Yes — the README says every settings change hot-reloads and takes effect on the next tool call.
Alternatives
23swccp/dsh-undo · 23swccp/dsh-undo-plugin · 2768651338/dsh-plugin-manager