🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

RTK 输出压缩 robbin810130/dsh-rtk

DeepSeek Harnessv0.1.4
robbin81013030 天前有提交已提供中文文档扫描:含敏感能力

社区维护的 DeepSeek HarnessDSH插件;非 DeepSeek AI 官方项目。

30.7/100
综合分
1
GitHub 星标
103
npm 周下载
—/5
用户评分

数据截至 2026/10/5 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-rtk
npm 源 · dsh-rtk 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · dev
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 30 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-rtk @ 0.1.4
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 15:09:10

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
  • 读取本地文件
    lib/index.js:246
    const data = JSON.parse(readFileSync(SIDECAR_PATH, 'utf8'))
  • 写入本地文件
    lib/index.js:260
    mkdirSync(dirname(SIDECAR_PATH), { recursive: true })
  • 写入本地文件
    lib/index.js:262
    writeFileSync(tmp, JSON.stringify({ version: 1, sessions: Object.fromEntries(sessionState) }), 'utf8')
  • 写入本地文件
    lib/index.js:263
    renameSync(tmp, SIDECAR_PATH)
  • 发起网络请求
    lib/client.js:17
    fetch("/rtk/default")
  • 发起网络请求
    lib/client.js:32
    fetch("/rtk/default", {
  • 发起网络请求
    lib/client.js:123
    ? fetch("/rtk/state?sessionId=" + encodeURIComponent(sessionId))
  • 发起网络请求
    lib/client.js:136
    return fetch("/rtk/toggle", {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-commands@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 启动时套用输出过滤
  • 过滤bash命令输出

社区 DSH 插件,在启动时给 bash 工具套上显式的 RTK 命令输出过滤。

v1.5.02026-10-05
· dsh-rtk v1.5.0 — /rtk doctor 与 /rtk gain v1.4.0 的 /rtk 只回答"生效没有"。这一版把它补成完整的会话内自检面: · /rtk doctor:完整自检(二进制、各 profile 安装版本、运行中的宿主进程、状态记录), 与 npm run doctor 共用同一个 runDoctor(),两条路径不可能给出不一致的结论。 区别只是它使用插件自己进程内的解析结果,并把来源标注为「插件进程内解析」。 · /rtk gain [summary|daily|weekly|monthly|history|project|json]:读取 RTK 节省统计。 用户输入映射到固定的只读参数,不转发原始文本——避免误触 rtk gain --reset 这类 会清空统计的开关。输出超过 40 行会截断并提示到终端查看完整版。 · 重构:自检逻辑从 scripts/doctor.mjs 抽到 dsh-rtk/lib/doctor.js(并随包发布), CLI 变成薄壳;runDoctor() 的输入(环境、平台、宿主列表、profile 列表、状态记录、 解析结果)全部可注入,测试无需触碰真实机器。 · 运行时新增 run(subcommand, args),用于以已解析的二进制执行只读子命令。 · 测试:/rtk 四种输入 + gain 白名单拒绝 + doctor 复用报告文本;其余用例保持。 · 文档:README 的自检对照表扩到四项,新增 /rtk gain 输出示例与设计约定; Windows 说明补充子命令表。
v1.4.02026-10-04
· dsh-rtk v1.4.0 — 会话内自检 /rtk 问题:此前想知道"到底生效没有",要么翻启动日志(桌面版看不到宿主 stdout)、要么跑 npm run doctor(只知道静态环境)。人在会话里,却拿不到当前这一进程的实时状态。 · 新增人类命令 /rtk(ctx.commands.register(),不产生模型消息): - /rtk、/rtk status:版本、平台、挂载的 shell 工具与引用方言、RTK 路径与来源、改写/无等价/未改写计数、生效配置、状态文件路径、最近错误;未生效时附带原因与修复步骤。 - /rtk recheck:丢弃解析缓存重新探测 RTK —— 刚装好 rtk、又不想重启 DSH 时即刻生效。 - 其他输入返回用法;命令结果分为 success/error。 · commands 服务按可选依赖注入(ctx.inject(['commands'], …)):未组合该服务的 profile 里插件行为不变,不会因缺服务而报错。 · 运行时新增 recheck();snapshot() 增补 pluginVersion、timeoutMs、hint、platform,供命令与测试复用。 · 测试:test/resolve.mjs 覆盖命令定义与三种输入;test/runtime.mjs 组合真实的 @deepseek-ai/dsh-commands(新增 devDependency),验证定义能通过真实注册表校验、出现在 commands.list() 中,并随插件卸载而消失。 · 文档:README 重排(平台矩阵 → 本版功能 → 更新记录表 → 安装 → 配置 → 自检与排障),新增「三层自检」对照表;Windows 说明补充 /rtk 与 /rtk recheck。
v1.3.22026-10-04
· dsh-rtk v1.3.2 — Windows 使用说明 纯文档版本,运行时逻辑与 v1.3.1 一致;无需为此升级(装与不装都不影响 Windows 上的功能)。 · 新增 docs/windows.md: - 四种 RTK 安装方式(winget / scoop / cargo / release zip)与各自的 rtk.exe 落点; - 默认自动发现的五条 Windows 候选路径; - 显式指定的两种方式:注册表用户环境变量(setx / [Environment]::SetEnvironmentVariable)与 profile 里 config.bin(含 YAML 反斜杠转义陷阱); - 重启与验证步骤(doctor + 会话内 $env:DSH_RTK_DISABLE='1' 对照); - Windows 专有排障:$PROFILE 无效、.cmd/.bat 被拒、路径含空格、doctor 看不到子进程 RTK_BIN 等。 · 明确标注平台差异:Windows 上 DSH 继承注册表环境而不读 shell 配置,且加载的是 pwsh 而非 bash。 · 该文档随包发布(package.json 的 files 增加 docs/windows.md)。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-rtk Listed on dsh-plugin.org 社区维护的 DeepSeek Harness(DSH)插件;非 DeepSeek AI 官方项目。 把 shell 命令交给本机 RTK 重写,在输出进入模型上下文之前压缩输出。 平台支持 | 平台 | 状态 | DSH 实际加载的 shell 工具 | 说明 | | macOS (arm64/x64) | 已实机验证 | bash | Homebrew 用 /opt/homebrew/bin/rtk 或 /usr/local/bin/rtk | | Linux (x64/arm64) | 已实机验证(CI) | bash | Homebrew on Linux、/usr/local/bin、~/.local/bin、~/.cargo/bin | | Windows (x64) | 已实机验证(CI) | pwsh | 只接受 .exe(对 .cmd/.bat 需要 shell,存在注入风险,故拒绝) | 关键差异:DSH 在 dsh-base 里按平台开关 shell 工具 —— tool-bash 在 win32 上被 disabled,Windows 用的是 tool-pwsh。
展开完整文档(README 剩余 1 节)
dsh-rtk

Listed on dsh-plugin.org

社区维护的 DeepSeek Harness(DSH)插件;非 DeepSeek AI 官方项目。

把 shell 命令交给本机 RTK 重写,在输出进入模型上下文之前压缩输出。

平台支持

| 平台 | 状态 | DSH 实际加载的 shell 工具 | 说明 |
| macOS (arm64/x64) | 已实机验证 | bash | Homebrew 用 /opt/homebrew/bin/rtk 或 /usr/local/bin/rtk |
| Linux (x64/arm64) | 已实机验证(CI) | bash | Homebrew on Linux、/usr/local/bin、~/.local/bin、~/.cargo/bin |
| Windows (x64) | 已实机验证(CI) | pwsh | 只接受 .exe(对 .cmd/.bat 需要 shell,存在注入风险,故拒绝) |

关键差异:DSH 在 dsh-base 里按平台开关 shell 工具 —— tool-bash 在 win32 上被 disabled,Windows 用的是 tool-pwsh。插件按方言匹配工具而不是写死 bash:POSIX 用单引号('\'' 转义),PowerShell 用单引号('' 转义);单条命令的跳过语法也分别是 DSH_RTK_DISABLE=1 <cmd> 和 $env:DSH_RTK_DISABLE='1'; <cmd>。

环境来源也不一样:macOS/Linux 上 DSH 会读登录 shell 环境(所以 ~/.zshrc 里的 RTK_BIN 有效),Windows 上直接继承注册表用户环境变量、不读任何 shell 配置(写进 $PROFILE 无效)。Windows 的安装位置、环境变量与排障见 docs/windows.md。

.github/workflows/ci.yml 在 ubuntu / macos / windows 三平台 × Node 22/24 上跑 npm test。

1.5.0:会话内自检 /rtk

不用退出重开、也不用翻日志,直接在会话里打一条命令:

| 命令 | 作用 |
| /rtk、/rtk status | 当前状态:RTK 路径与版本、改写计数、生效配置、状态文件位置 |
| /rtk recheck | 丢弃缓存重新探测 RTK —— 刚装好 rtk、又不想重启 DSH 时用 |
| /rtk doctor | 完整自检:二进制、各 profile 安装版本、运行中的宿主进程、状态记录 |
| /rtk gain | RTK 节省统计;可加 summary\|daily\|weekly\|monthly\|history\|project\|json |

状态输出示例:

dsh-rtk 1.5.0 · darwin · 挂载 bash 工具(POSIX 引用)状态:已生效 —— rtk 0.51.0 @ /opt/homebrew/bin/rtk(来源:discovered)改写 12 次 · 无等价命令 3 次 · 未改写 0 次配置:autoDiscover=true bin=(未设置) timeoutMs=3000 verbose=false statusFile=true 状态文件:/Users/<you>/.dsh/dsh-rtk/status.json 临时跳过改写:DSH_RTK_DISABLE=1 <命令>

$ /rtk gain
rtk 0.51.0 @ /opt/homebrew/bin/rtk
RTK Token Savings (Global Scope)
Total commands: 36030
Tokens saved: 884.8M (91.1%)
...

三点设计约定:

- 没生效时给原因和修复步骤,与启动日志里那条警告同源——"到底为什么没生效"不用再猜。
- /rtk doctor 与 npm run doctor 共用同一个 runDoctor(),不存在两套结论漂移的可能;区别只是它用插件自己进程内的解析结果,并把来源标成「插件进程内解析」。
- /rtk gain 不转发用户文本:上表那几种形式映射到固定参数,避免误触 rtk gain --reset 这类会清空统计的开关;输出超过 40 行会截断并提示去终端跑完整版。
- commands 服务按可选依赖注入(ctx.inject(['commands'], …)),没组合该服务的 profile 里插件行为不变。

更新记录

| 版本 | 要点 |
| v1.4.0 | 会话内自检 /rtk(status / recheck) |
| v1.3.2 | Windows 使用说明(随包发布) |
| v1.3.1 | 升级未重启时不再谎报"已生效"(doctor 核对运行版本) |
| v1.3.0 | 多平台:Windows 上 DSH 用的是 pwsh 而非 bash,此前完全不触发 |
| v1.2.1 | doctor 用 pid 交叉核对状态文件,不再把陈旧记录当证据 |
| v1.2.0 | 安装即生效:零配置自动发现、不再静默失败、状态文件 + doctor |
| v1.1.0 | 改用 tools/execute 钩子,不再修改宿主源码 |

安装

1. 装 RTK(插件不自带,也不会替你下载):

bash
brew install rtk # macOS / Linux;Windows 见 https://github.com/rtk-ai/rtk
rtk --version # 确认可用

Windows 上确认 rtk.exe 的位置(winget/scoop/cargo 安装位置不同): powershell where.exe rtk

例:C:\Users\<you>\.cargo\bin\rtk.exe

2. 装插件到正在使用的 profile(桌面版通常是 desktop): bash
dsh plugin --profile desktop add github:robbin810130/dsh-rtk#v1.5.0

本地安装包同理: bash
dsh plugin --profile desktop add /absolute/path/dsh-rtk-1.5.0.tgz

3. 完全退出并重新打开 DSH(macOS Cmd+Q,Windows 从托盘退出;只关窗口不会重新加载插件)。不要额外启动第二个 web 服务。

4. 确认生效:重开后在任意会话里打 /rtk,看到「状态:已生效」即可。三种自检方式的区别见自检与排障。

RTK 装在非常规位置时,按下面任一方式指定即可(桌面版需写进 ~/.zshrc 之类的登录 shell 配置——DSH 启动时会读取登录 shell 环境——然后完全重开 App): bash
export RTK_BIN=/absolute/path/to/rtk # macOS / Linux
powershell

Windows:必须是注册表用户环境(DSH 不读 shell 配置),设置后完全重启 DSH

[Environment]::SetEnvironmentVariable('RTK_BIN', 'C:\Users\<you>\.cargo\bin\rtk.exe', 'User')

或:setx RTK_BIN "C:\Users\<you>\.cargo\bin\rtk.exe"

Windows 完整步骤(四种安装方式、自动发现清单、专有排障)见 docs/windows.md。

配置

在 profile 的 cordis.patch.yml 里覆盖: yaml
- id: dsh-rtk
config:
autoDiscover: true # 未显式配置时是否使用内置候选列表 bin: /opt/homebrew/bin/rtk # 显式指定;设置后即为唯一来源(Windows 例:C:\\path\\to\\rtk.exe) timeoutMs: 3000 # 单次 rtk rewrite 上限 verbose: false # 每次改写都打日志 statusFile: true # 写 $DSH_HOME/dsh-rtk/status.json

| 选项 | 默认 | 说明 |
| enabled | true | 设为 false 保留安装但不改写 |
| bin | "" | 显式 RTK 绝对路径,优先级最高;不可用时报错而非回退 |
| autoDiscover | true | 仅在 bin 与 RTK_BIN 都未设置时生效 |
| timeoutMs | 3000 | rtk rewrite 单次超时 |
| verbose | false | 逐条改写日志 |
| statusFile | true | 关闭后不写状态文件 |

环境变量:

| 变量 | 效果 |
| RTK_BIN=/absolute/path/to/rtk | 显式指定 RTK;须对 DSH 服务进程可见 |
| DSH_RTK_DISABLE=1 | 在服务环境中全局关闭改写 |
| DSH_RTK_DISABLE=1 <command> | 整条命令跳过改写(POSIX shell) |
| $env:DSH_RTK_DISABLE='1'; <command> | 整条命令跳过改写(PowerShell) |

解析优先级:config.bin → RTK_BIN → 内置候选列表(autoDiscover 为真时)。前两者一旦设置即为唯一来源。

自检与排障

三层自检,按"想知道什么"挑一个:

| 想知道 | 用什么 | 说明 |
| 现在到底生效没有 | 会话里打 /rtk | 最快,不用退出重开;失败时直接给出原因与修复步骤 |
| 刚装好 rtk、不想重启 | /rtk recheck | 丢弃缓存重新探测,成功即刻开始改写 |
| 装在哪、宿主进程是什么、版本对不对 | /rtk doctor 或 npm run doctor | 两者同一份代码;CLI 版 --json 机器可读、退出码即结论 |
| 实际省了多少 token | /rtk gain | RTK 的全局节省统计,可切 daily/weekly/monthly 等 |
| 实际压缩效果 | git status 对照 | 见下 |

功能对照(在 Git 仓库里执行): bash
git status # RTK 紧凑输出 = 已生效
bash
DSH_RTK_DISABLE=1 git status # macOS / Linux:原生输出 = 对照组
powershell
$env:DSH_RTK_DISABLE='1'; git status # Windows

普通终端里直接跑 git status 不经过 DSH 插件,两者不要混淆。

常见故障:

| 现象 | 原因与处理 |
| /rtk 或日志报「未找到可用的 RTK 二进制」 | 没装 RTK,或装在候选列表之外 → 安装后打 /rtk recheck,或用 RTK_BIN / config.bin 显式指定 |
| 报「RTK_BIN 不可用」 | 显式设置指向了不存在的路径 → 改对或删掉该项(插件不会静默换用别的二进制) |
| Windows 报「只接受 .exe/.com 可执行文件」 | 指到 .cmd/.bat 包装器了 → 指向真正的 rtk.exe(经 shell 转发命令文本有注入风险,故拒绝) |
| doctor 报「宿主用的 profile 没有安装 dsh-rtk」 | 插件装到了别的 profile → 用宿主实际使用的 profile 重装 |
| 一切正常但输出仍是原生格式 | 该命令没有 RTK 等价实现(RTK 退出码 1,属正常),或它是多行脚本;另外确认 DSH_RTK_DISABLE 未在服务环境中为 1 |
| doctor 报「状态文件来自 pid X,不在当前运行中的宿主里」 | 那份记录来自上一次运行或手动执行插件,不代表本次已加载 → 重启 DSH 后重跑;确认无误也可直接删除 $DSH_HOME/dsh-rtk/status.json |
| doctor 报「运行中的宿主加载的是 vX,已安装 vY」 | 升级后还没重启 → 完全退出并重开 DSH(1.3.1 起可精确识别) |
| 只改了配置没重启 | profile 配置与环境变量都需要完全重启 DSH 才生效 |

安全说明:RTK 二进制会收到命令文本,因此自动发现只探测固定候选路径,绝不搜索 PATH;POSIX 下拒绝 world-writable、非本人/非 root 属主的文件,Windows 下只接受 .exe/.com 且绝不通过 shell 转发命令文本。插件自身不发送网络请求。RTK 可能缩短输出,精确取证时请使用跳过开关。

升级旧版

升级前备份 profile。只保留一个 dsh-rtk bundle;若仍安装 scoped 旧包 @robbin810130/dsh-rtk,先移除旧包。

1.0.x 曾直接修改宿主 bash 工具。升级到 1.1.0+ 不会自动还原这些修改。若继续使用同一份旧宿主文件,先用对应版本的原包恢复工具文件,防止两套重写叠加。桌面版内置的原始 app.asar 不需要这一步。~/.dsh/dsh-rtk/*.pristine 是旧版残留备份,确认宿主文件干净后可以删除。

从 1.1.0 升到 1.2.0 无需额外操作:配置项向后兼容,新增项都有默认值。1.2.x 升到 1.3.0 同样无需改动 —— macOS/Linux 行为不变,Windows 从"完全不触发"变为可用。1.4.0 只是新增 /rtk 命令,无配置变更。

卸载 bash
dsh plugin --profile desktop remove dsh-rtk

新版不修改宿主文件,无需恢复源码;完全重启 DSH 后确认不再加载插件。状态文件可直接删除:$DSH_HOME/dsh-rtk/status.json。

开发与测试 bash
npm install
npm test # 打包冒烟 + 解析/方言/诊断单测 + 真实 DSH ToolRuntime 集成
npm run doctor # 本机自检
npm pack --pack-destination artifacts

可选:用本机真实 RTK 跑一遍改写

DSH_RTK_TEST_BIN=/absolute/path/to/rtk npm test # Windows: $env:DSH_RTK_TEST_BIN='C:\...\rtk.exe'

- test/resolve.mjs:候选可信校验(含 Windows .exe 规则)、解析优先级、显式配置不回退、方言与引号、状态文件、二进制消失后的重新发现与故障上报、/rtk 的四种输入与 gain 白名单拒绝。全部通过注入 spawn 完成,三平台可跑。
- test/runtime.mjs:真实 DSH 0.2.0-rc.2 ToolRuntime,验证 bash 与 pwsh 两条路径的命令重写、冻结参数兼容、权限拒绝、退出码、禁用开关及监听释放;并组合真实的 @deepseek-ai/dsh-commands 验证 /rtk 定义能通过注册表校验、且随插件卸载消失。
- dsh-rtk/lib/doctor.js:自检报告的唯一实现(runDoctor()),进程探测、profile 扫描、状态记录核对都在这里;输出与判定逻辑可注入,测试无需触碰真实环境。
- scripts/doctor.mjs:上面那份报告的薄 CLI,npm run doctor,可 --json 输出。
- .github/workflows/ci.yml:ubuntu/macos/windows × Node 22/24 矩阵。

patch-rtk.mjs 和 restart-dsh.sh 是旧版救援工具,保留用于旧宿主恢复;不用于新版桌面 DSH 安装或重启。

License

MIT
预览分享卡片长什么样 ↓robbin810130/dsh-rtk
分享 · DeepSeek Harness Hub
robbin810130/dsh-rtk

社区维护的 DeepSeek HarnessDSH插件;非 DeepSeek AI 官方项目。

这是你的仓库?认领条目

回到顶部