社区维护的 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-rtknpm 源 · dsh-rtk 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 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🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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 命令输出过滤。
最近更新
在 GitHub 查看全部 →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预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
robbin810130/dsh-rtk
社区维护的 DeepSeek HarnessDSH插件;非 DeepSeek AI 官方项目。
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,288已汉化MCP
71.7
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9
原生编程智能体paean-ai/deeptide
由 DeepSeek 打造,为 DeepSeek 而生。
★ 1,107已汉化DSH
67.7
多引擎接力台emo-xiaoyu/harness-mix
macOS/Linux 已加入源码构建与启动适配;目标系统的完整桌面验收仍需在对应机器执行。安装方式、Linux…
★ 419已汉化DSH
66.8
这是你的仓库?认领条目