用行号加哈希锚点锁定内容,安全改文件
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add magian1127/deepseek-harness-hashline该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 37 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/5) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包deepseek-harness-hashline(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/8 08:45:11
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 14 处,展示前 13 条)
- 执行外部命令来自配置/变量src/bin/dsh-hashline.mts:57
return spawnSync(command, args as string[], { ...options, shell: process.platform === 'win32' }) - 读取本地文件src/bin/dsh-hashline.mts:66
if (existsSync(bundled)) { - 执行外部命令来自配置/变量src/bin/dsh-hashline.mts:89
? spawnSync(process.execPath, [cli.file, ...args], { stdio: 'inherit' }) - 读取本地文件src/bin/dsh-hashline.mts:95
if (!existsSync(join(dir, 'package.json'))) { - 发起网络请求src/bin/dsh-hashline.mts:113
return fetch(`http://127.0.0.1:${port}/`, { signal: controller.signal }) - 发起网络请求src/bin/dsh-hashline.mts:127
return fetch(`http://127.0.0.1:${port}/`, { signal: controller.signal }) - 读取本地文件src/bin/dsh-hashline.mts:140
if (!existsSync(path)) return false - 读取本地文件src/bin/dsh-hashline.mts:142
const manifest: { dsh?: { profile?: { bundles?: string[] } } } = JSON.parse(readFileSync(path, 'utf8')) - 读取本地文件src/bin/dsh-hashline.mts:184
if (link !== null && !existsSync(join(link, 'package.json'))) { - 读取本地文件src/bin/dsh-hashline.mts:230
if (existsSync(file)) { - 写入剪贴板src/client.ts:697
void writeClipboard(hashlineDiffCopyText(model.rows)).then(function (ok: boolean) { - 发起网络请求src/index.ts:545
const outcome = await approval.request({ - 读取本地文件src/profile-modules.ts:53
const manifest = JSON.parse(readFileSync(manifestPath, 'utf8')) as {
扫描于 2026/11/2(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 行号加哈希锚点锁定内容
- 安全修改文件
README
由 DeepSeek 最新模型翻译生成deepseek-harness-hashline
· English
⚠️ 测试中(experimental)
当前仍处于测试阶段,请勿用于正式项目。 使用本插件所带来的一切风险由使用者自行承担。
接口、配置项和工具行为可能随时变更,恕不另行通知;在真实工作区启用前请先在隔离环境充分验证。
DeepSeek Harness 哈希锚点文件编辑插件:提供 hashline_read 和 hashline_edit,用 LINE:HASH 联合锚点把编辑绑定到模型最近读取过的具体行内容,解决同一文件多轮修改、多处原子修改、 CRLF/LF 或空白漂移时的机械可靠性问题。
hashline_edit 是锚定-only 入口:edits 必填,每项是扁平对象——op 取 set_line、 replace_lines、insert_after 之一,配 anchor(或 start_anchor+end_anchor)与 new_text;op 可缺省:只带 anchor+new_text 时按 set_line 解析,只带 start_anchor+end_anchor+new_text 时按 replace_lines 解析(忘传 op 的高频方言与显式声明等价)。简单唯一文本替换请使用内置 edit(old_string / new_string),新文件用 write。
展开完整文档(README 剩余 1 节)
deepseek-harness-hashline
· English
⚠️ 测试中(experimental)
当前仍处于测试阶段,请勿用于正式项目。 使用本插件所带来的一切风险由使用者自行承担。
接口、配置项和工具行为可能随时变更,恕不另行通知;在真实工作区启用前请先在隔离环境充分验证。
DeepSeek Harness 哈希锚点文件编辑插件:提供 hashline_read 和 hashline_edit,用 LINE:HASH 联合锚点把编辑绑定到模型最近读取过的具体行内容,解决同一文件多轮修改、多处原子修改、 CRLF/LF 或空白漂移时的机械可靠性问题。
hashline_edit 是锚定-only 入口:edits 必填,每项是扁平对象——op 取 set_line、 replace_lines、insert_after 之一,配 anchor(或 start_anchor+end_anchor)与 new_text;op 可缺省:只带 anchor+new_text 时按 set_line 解析,只带 start_anchor+end_anchor+new_text 时按 replace_lines 解析(忘传 op 的高频方言与显式声明等价)。简单唯一文本替换请使用内置 edit(old_string / new_string),新文件用 write。传入 old_string / new_string / edits[].replace 的实际载荷会在任何文件操作前被拒绝并明确指引改用内置 edit(对齐官方 v0.1.2:未使用字段的 null 占位按未提供忽略)。模型/适配器常见的畸形传参(字段被提升到参数根、数组项被物化为根级数字键、变体空壳、忘传 op)只要无歧义就会被自动回收并在结果中注明,无法恢复时报错附带结构指纹与正确形状模板。开启“替换内置读写”后,允许编辑的智能体改用同名严格锚定的 read / edit,行为与全局工具完全一致。
Open Design(open-design profile)与 DSH 一次性 headless 默认仍使用原版 read / edit;只有额外开启默认关闭的“无头模式替换内置读写”后,严格替换才在这些无头会话生效,显式 hashline_ 在门控关闭时仍可用。
功能
| 能力 | 说明 |
| LINE:HASH 读取 | LINE\|HASH 内容 格式,默认 4 位十六进制 SHA-256 前缀;模型结果同时报告 EOL/BOM |
| 三种锚定编辑 | set_line、replace_lines、insert_after;edits 每项为扁平 {op, anchor…, new_text} 对象,执行前校验 op 与字段匹配 |
| 方言回收 | 顶层散落字段、数字键影子、变体空壳、忘传 op(按字段形状推断:anchor+new_text→set_line,双锚点→replace_lines)等无歧义畸形传参被自动恢复并在结果注明 normalizedFrom;冲突即拒绝且不写入 |
| 原子批量编辑 | 一次调用全部锚点先校验、重叠先拒绝,再原子写入 |
| 版本 CAS 保护 | 使用 DSH 文件版本防止校验后到写入前的并发覆盖 |
| 文本保真 | 保留 UTF-8 BOM(字节路径检测:fs.readBytes + 保留 BOM 解码,旧 DSH 回退 readText)、LF/CRLF、mixed EOL 未触及区域和文件末尾换行状态 |
| 失效恢复 | 唯一哈希匹配自动重定位;否则返回附近当前行,坏锚点报错回显真实锚点 |
| 原生结果卡片 | 读取成功复用 DSH 原生 ReadBlock:完整 LINE|HASH 为灰色不可选 gutter,正文独立可选并保留语法高亮;编辑成功显示原生风格 diff 卡,删除/新增行以灰色不可选 -行号|旧HASH / +行号|新HASH gutter 开头(行号为对应旧/新文件中的 1 基行号),正文保持原生红绿语义 |
| 可逆严格替换 | 开启“替换内置读写”后,Agent scoped edit 只接受最新 LINE:HASH;Open Design/DSH headless 还需开启默认关闭的无头门控;覆盖可逆并随 Cordis Fiber 清理 |
| 提示词中文化 | 开启后注入的提示词、工具说明、错误消息与工具输出文案改为中文,工具名保持英文 |
环境要求
- DeepSeek Harness ≥ 0.1.7-alpha.2;Web GUI 使用 web profile,Open Design stdio 使用 open-design profile,DSH 一次性任务使用 headless profile
- Node.js ^22.19.0 || >=24.0.0
- open-design/headless 只运行 Host 半边(无 Web 配置表单)
安装
DSH 的 bundle 按 profile 隔离,因此 Web、Open Design 与 stock headless 必须分别安装。Web 可使用本插件 CLI;无头 profile 使用官方 dsh plugin。桌面版 DSH(Electron 应用):本插件兼容桌面版(桌面 Host 端口 19387);桌面 profile(~/.dsh/profiles/desktop)由桌面应用独占,dsh plugin CLI 与本插件 CLI 都按名拒绝 --profile desktop。link 开发安装(桌面应用未运行时执行)——编辑 ~/.dsh/profiles/desktop/package.json:
"dependencies": { "deepseek-harness-hashline": "link:" },
"dsh": { "profile": { "bundles": [ / 官方 bundle 保持原样,末尾追加 */ "deepseek-harness-hashline" ] } }
在 profile 目录内执行 pnpm install 物化链接,启动桌面应用即挂载;改源码后 npm run build 并重启桌面应用;卸载移除两处条目后重新 pnpm install。首次源码联调先安装依赖并生成运行产物:
npm install
npm run build
Web GUI
node bin/dsh-hashline.mjs install --profile web --link $PWD
Open Design 的真实 stdio profile
dsh plugin --profile open-design add "link:$PWD"
可选:DSH 自带的一次性 headless profile
dsh plugin --profile headless add "link:$PWD"
--link 必须指向本插件源码目录。三种安装都只写目标 profile 的持久 bundle;open-design/headless 的下一次短进程自然加载,不依赖 3080 Web 探测或 HMR。
⚠️ link: 目标目录不存在时,DSH 会把本包判为普通依赖:既不报错,也无法加入 dsh.profile.bundles。安装后分别确认:
node bin/dsh-hashline.mjs status --profile web
dsh plugin --profile open-design list
dsh --profile open-design --dump-default-config
dsh plugin --profile headless list
更新
重新执行安装命令即可更新依赖与持久 bundle。lib/client.js 的改动由 DSH client HMR 自动换血(每 500ms stat 轮询 + /plugins/events SSE 的 rebuilt 帧触发页面内替换),无需刷新页面。
Host 半边没有热通道:hmr 服务面已无 registerConfig/partialReload,且 profile bundle 位于官方 watcher 默认排除的 node_modules 下,新构建不会进入长跑进程——改 Host 源码后需重启一次
dsh web。
卸载
node bin/dsh-hashline.mjs remove --profile web
dsh plugin --profile open-design remove deepseek-harness-hashline
dsh plugin --profile headless remove deepseek-harness-hashline
卸载按 profile 独立清理持久 bundle 与运行中条目,不会删除 DSH 会话数据。settings 命名空间 hashline 中已有的用户覆盖值可能保留,重新安装后可继续使用。
设置与数据
| 数据 | 存储位置 |
| 启用、替换内置读写、无头模式替换门控、工具选择提示、提示词语言及四个哈希/读取参数 | DSH settings 命名空间 hashline(在侧栏「插件」页 → 本包页面编辑,DSH 0.1.6+) |
插件不注册模型工具以外的额外能力、不上传数据、不维护独立数据文件。客户端只向 plugins.bundle.config Slot 贡献插件页配置表单(键为本包 npm 包名),通过 DSH settingsScope 读写同一 Host 命名空间。表单的准确顺序、默认值和范围只在使用指南的“配置”章节维护。
常见问题
它和内置 read / edit 有什么区别? 内置工具按文本操作;Hashline 把锚定编辑绑定到 “最近读取过的具体行内容”的哈希锚点,能检测过期读取,并把多处修改作为一次原子请求处理。
hashline_edit 只接受锚定 edits——简单唯一文本替换是内置 edit 的职责,两者互补而不重叠。
此外,Hashline 读取接入 DSH 原生读取卡,编辑结果使用原生风格 diff 卡。
哈希会碰撞吗? 短哈希有理论碰撞概率:默认 4 hex 相当于 16 位校验,与行号和文件级版本 CAS 联合使用;高风险部署可在配置中提高 hashLength。
大文件怎么读? 不带 offset/limit 的整体读取限制为 50 KiB,超过时工具会提示改用窗口;显式带上 offset/limit 即可分窗口读取任意大小的文件,窗口读取与编辑均不受整文件大小限制(单条 new_text 仍受 50 KiB 上限约束)。
“替换内置读写”怎么用? 开启后,允许编辑的智能体看到的是严格锚定的 read / edit,hashline_read / hashline_edit 被隐藏。每次修改先用 read 获取最新锚点;edit.edits 的每项是扁平对象——op 取 set_line、replace_lines 或 insert_after,配 anchor(或 start_anchor+end_anchor)与 new_text。关闭开关恢复原工具。
Open Design 的 open-design stdio profile 与 DSH 的 headless profile 都必须同时开启紧随其后的“无头模式替换内置读写”(默认关闭)。门控关闭时保留原版 read / edit,同时仍可显式调用 hashline_read / hashline_edit。替换只在四个相关工具原本均可见时安装;minimal 预设仍不安装替换,并继续隐藏全局 Hashline 工具。
开发文档
- 使用指南:工具参数、锚点格式、编辑变体与安全模型
- 设计说明:工具边界、锚点、文本模型、DSH 集成、包形态
- 开发指南:本地开发安装、HMR、测试与验证
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
magian1127/deepseek-harness-hashline
用行号加哈希锚点锁定内容,安全改文件
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目