返回目录

dsh-bash-rtk

精选清单收录维护状态: 活跃

deeptrial/dsh-bash-rtk

通过 rtk(Rust Token Killer)压缩工具输出以节省 Token 的 bash 执行插件。

前往 GitHub项目主页
$ dsh plugin --profile web add "<path-to-this-dir>"

18

星标

7

Fork

TypeScript

语言

MIT

许可证

2026-08-14

创建于

2026-10-18

最近推送

MIT 的 DSH 插件:把白名单内的 shell 命令包给 rtk 压缩输出,复杂命令原样直通,rtk 缺失时什么都不做。

DSH 适配

原生运行时

作者声明

安全审计

未审计

最后核验

2026-11-12

许可证

MIT

01它能帮你完成什么?

  • 把 DSH 会话里冗长 shell 输出吃掉的 token 省回来

    符合条件的命令被重写成 `rtk <子命令> …`,由 rtk 压缩输出;工作目录、超时、环境变量、退出码与沙箱限制保持不变

    会话里大部分输出都来自 `git`、`cargo` 和测试命令的 DSH 用户

  • 机器上没有 rtk 时,部署行为仍和原生执行器完全一致

    恒等回退:PATH 上找不到 `rtk` 时命令原样执行,复杂 shell 命令也始终原生执行

    希望这项优化严格可选、随时可退的团队

02如何接入 DeepSeek Harness?

前置条件

  • Node.js ≥ 20.0.0
  • 单独安装的 `rtk`(例如 `cargo install rtk`),且 `rtk --version` 在 PATH 上退出码为 0——插件从不安装或管理它
  • 一个可以改配置的 DSH profile;插件针对 `dsh` 0.2.1-alpha.1 验证,同时保持 0.1.x 可用

安装步骤

  1. 01

    从本地检出安装:`dsh plugin --profile web add "<path-to-this-dir>"`,也可以直接用最新 release tarball 的地址

    $ dsh plugin --profile web add "<path-to-this-dir>"

  2. 02

    启用:插件默认关闭,需要在 profile 的 `cordis.patch.yml` 里加覆盖层——把 `bash-sandbox` 设为 `disabled: true`,`bash-rtk` 设为 `disabled: false`

  3. 03

    用 `dsh web` 重启使 profile 改动生效

    $ dsh web

验证接入成功

作者未说明

回滚

  • 去掉覆盖层条目(或把 `bash-rtk` 改回 disabled)再重启 `dsh web`;没有 rtk 或没有覆盖层时执行器行为与原生一致

03DSH 适配与能力边界

DSH 适配原生运行时

DSH 插件:用 `RtkBashExecutor` / `RtkSandboxBashExecutor` 替换原生 bash 执行器,并在 `resolve()` 边界重写命令

  • 在 `resolve()` 处重写命令

    模型发来的一条 shell 命令→符合条件的命令变成 `rtk <子命令> …`,其余原样返回

    重写发生在执行之前,工作目录、超时、环境变量与退出码都原样继承
  • 三道独立判断

    一条候选命令→复杂度(含 shell 元字符即淘汰)、白名单(只包 rtk 真正实现的开发工具)、可用性(二进制缺失时用恒等变换)

    含管道、`&&`、`;`、重定向、`$( )` 或环境变量赋值的命令始终原生执行
  • rtk 版本独立

    `dsh` 启动时在 PATH 上找到的 `rtk`→你装的 rtk 版本决定可用的子命令与行为,不需要更新插件

    插件不捆绑也不锁定 rtk,插件版本与 rtk 版本各自独立演进
  • `rtkAvailable` 覆盖开关

    执行器配置里的一个布尔值→无视 PATH 探测结果,强制开启或关闭 rtk 包装

    面向测试,或二进制装在非标准路径的部署

04适合谁?何时不该用?

适合

  • 会话里大部分输出都来自 `git`、`cargo` 和测试命令的 DSH 用户
  • 希望这项优化严格可选、随时可退的团队

不适合

  • rtk 不由插件捆绑或管理:需要你自己安装与更新,PATH 上没有它时插件只是一个静默直通。
  • 针对 `dsh` 0.2.1-alpha.1 验证;README 说明 `dsh` 聚合包与 `@deepseek-ai/dsh-*` 子包在两条独立的 semver 轨道上,所以每条支持的发布线都要有自己的 peer 范围分支。

05兼容性、维护与安全提示

  • 复杂命令——管道、`&&`/`;`、重定向、`$( )`、环境变量赋值——无论白名单如何都原生执行,因此拿不到 token 节省。
  • rtk 不由插件捆绑或管理:需要你自己安装与更新,PATH 上没有它时插件只是一个静默直通。
  • 插件默认关闭:装上之后不启用覆盖层并重启 `dsh web`,什么都不会改变。
  • 针对 `dsh` 0.2.1-alpha.1 验证;README 说明 `dsh` 聚合包与 `@deepseek-ai/dsh-*` 子包在两条独立的 semver 轨道上,所以每条支持的发布线都要有自己的 peer 范围分支。
2026-08-142026-10-18v0.1.1

MIT 源码;本文所有事实均来自记录提交处的仓库 README,未做独立安全审计。

06常见问题

哪些命令真的会被包装?

只有 rtk 真正实现的开发工具白名单里的简单命令——`git status`、`cargo build --release` 符合,`ls -la` 不符合。命令里出现任何 shell 元字符(`| & ; < > \` $`)都会淘汰,所以管道、重定向和环境变量赋值始终原生执行。

插件会帮我装 rtk 吗?

不会。它不捆绑也不锁定 rtk,需要你自己安装与更新(例如 `cargo install rtk`),让 `rtk --version` 在 PATH 上退出码为 0。二进制缺失时变换退化为恒等,部署行为与原生执行器一致。

装完为什么界面毫无变化?

插件默认关闭。需要在 profile 的 `cordis.patch.yml` 里加覆盖层启用——`bash-sandbox` 设为 `disabled: true`、`bash-rtk` 设为 `disabled: false`——然后重启 `dsh web`。

验证过哪些 DSH 版本?

README 说明插件针对 `dsh` 0.2.1-alpha.1 验证,并保持 0.1.x 可用;它还解释了 `dsh` 聚合包与子包使用两条独立的 semver 轨道,这也是 peer 范围里要写显式分支的原因。

能强制打开或关掉 rtk 吗?

可以,执行器支持可选的 `rtkAvailable` 布尔值,用来覆盖 `resolveRtk()` 的 PATH 探测;README 说它适用于测试,或二进制装在非标准路径的部署。

08数据与来源

  • 作者声明github.comd6559654d328…

    > Route eligible shell commands through [rtk](https://github.com/rtk-ai/rtk) (Rust Token Killer) inside the DeepSeek Har…

  • 作者声明github.comd6559654d328…

    The plugin rewrites commands at the `resolve()` boundary — before anything runs:

页面基于项目公开文档、仓库元数据和 DSH Plugins 的结构化解析生成;最后核验于 2026-11-12。发现错误?提交更正。

🏆

最佳 DeepSeek Harness 插件

从全目录挑出的 12 个值得优先安装的插件,覆盖各个分类。

DSH Plugins 是独立的 DeepSeek Harness 插件目录,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。