鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-bash-rtk

将符合条件的 shell 命令路由给 rtk,压缩工具输出并节省 token。

工具能力
访问 GitHub
文档README

dsh-bash-rtk

在 DeepSeek Harness(dsh)的 bash 执行器里,把符合条件的 shell 命令路由给 rtk(Rust Token Killer)执行 —— 压缩工具输出、省 token、其余一概不变。

English version


目录

  • 快速示例
  • 环境要求
  • 为什么需要它
  • 工作原理
  • 安装与启用
  • API / 配置
  • 哪些命令会被路由
  • 开发
  • 许可证

快速示例

插件在 resolve() 边界重写命令 —— 在实际执行之前:

输入 (command)解析后的输出原因
git statusrtk git status简单命令 + 在白名单内
cargo build --releasertk cargo build --release简单命令 + 在白名单内
git status | grep xgit status | grep x复杂 shell —— 直接透传
ls -lals -la不在白名单 —— 直接透传
git status(无 rtk)git status二进制缺失 —— 恒等回退

其余一切 —— 工作目录、超时、环境变量、退出码、沙箱隔离 —— 均原样继承。

环境要求

  • Node.js: >= 20.0.0
  • rtk: rtk --version 在 PATH 上退出码为 0(需单独安装,例如 cargo install rtk)

为什么需要它

LLM agent 在冗长的工具输出上浪费大量 token(git log、cargo build、pytest 输出……)。rtk 已知道如何把这些输出压缩 30–90%。本插件把这套过滤接到 dsh 的 bash 执行器上,让每个符合条件的命令自动走 rtk —— 且对实际运行内容零语义改动。

工作原理

▼
text
复制代码
model → dsh bash 工具 → RtkBashExecutor.resolve() │ ┌───────────────┴────────────────┐ 符合条件? 不符合条件 (简单命令 + 在白名单内) (复杂 / 未知命令) │ │ rtk <子命令> … 命令原样执行 (rtk 压缩输出) (逐字节透传)

三道独立关卡决定路由(见 src/wrap.ts):

  1. 复杂度 — 任何 shell 元字符(| & ; < > \ $`)都会取消资格。包装这些会改变实际运行内容,故直接透传。
  2. 白名单 — 仅 rtk 实际实现的已知开发工具才符合资格(wrap.ts 中的映射表)。
  3. 可用性 — 若 PATH 上找不到 rtk 二进制,变换退化为恒等:部署行为与原始本地执行器完全一致。

版本说明

本插件不捆绑、不锁定 rtk 版本。dsh 启动时会探测 PATH 上的 rtk --version(见 src/index.ts 的 resolveRtk())。因此:

  • rtk 发布新版本时,任何在本地升级了 rtk 的用户会自动获得新行为 —— 无需更新本插件。
  • 本插件版本(本仓库)与 rtk 版本相互独立,请勿混为一谈。本说明给出的是测试所基于的最低 rtk 版本,而非锁步版本号。

要求: rtk 在 PATH 上(rtk --version 退出码为 0)。插件不会安装或管理 rtk —— 你必须自行安装并更新 rtk(例如 cargo install rtk 或下载发布二进制)。当 rtk 缺失时,插件静默退化为透传。

兼容性与版本对齐

本插件依赖三个 @deepseek-ai/dsh-* 包,DeepSeek Harness 将它们与 dsh 聚合包分开发布到 npm。由于这些子包(以及 dsh 本身)都以预发布形式(x.y.z-rc.n)发布,peer 范围必须按 awesome-dsh-plugin/contributing.md 带上显式的预发布分支——像 >=0.0.1-rc.1 <0.2.0 这样"看起来很宽"的范围会静默排除所有 0.1.0-* / 0.1.1-* 预发布(node-semver 只有当某比较符与候选版本同 major.minor.patch 元组且自身也带预发布标签时,才放行预发布版本)。

实际范围(见 package.json 的 peerDependencies)为:

▼
text
复制代码
"@deepseek-ai/dsh-bash-local": ">=0.0.1-rc.1 <0.1.0 || >=0.1.0-rc.1 <0.1.1 || >=0.1.1-rc.1 <0.2.0-0" "@deepseek-ai/dsh-bash-sandbox": ">=0.0.1-rc.1 <0.1.0 || >=0.1.0-rc.1 <0.1.1 || >=0.1.1-rc.1 <0.2.0-0" "@deepseek-ai/dsh-shell": ">=0.0.1-rc.1 <0.1.0 || >=0.1.0-rc.1 <0.1.1 || >=0.1.1-rc.1 <0.2.0-0"

cordis 不是 peer 依赖:它由 dsh 在运行时注入,声明它会导致任何所在 registry 没有对应 cordis 发布的用户安装失败。三个 @deepseek-ai/dsh-* peer 都在 peerDependenciesMeta 中标记为 optional,因此在它们缺失时插件仍可加载(此时退化为透传)。

本插件的 dsh.plugin.json 声明:

▼
json
复制代码
"engines": { "dsh": ">=0.1.0-rc.6 <0.2.0 || >=0.1.1-rc.1 <0.2.0-0" }

即:以 dsh 0.1.1-rc.2 为验证基准,接受任意 0.1.x 预发布/正式版,并刻意排除 0.2.0+(未来大版本可能改动 LocalBashExecutor.resolve() / ShellExecSpec API,届时本插件需要一次子包升级才能跟进)。

已知的版本错位: dsh(聚合包,即 npx @deepseek-ai/dsh 安装的)与其 @deepseek-ai/dsh-* 子包处于独立的 semver 轨道——聚合包可能是 0.1.1-rc.2,而发布的子包仍是 0.0.1-rc.1。上述范围锁定到已发布的子包版本,因此普通 dsh plugin add 能干净解析。跟进匹配更新请关注 releases。

安装与启用

插件默认禁用 —— 安装后不会生效,需手动开启。

▼
sh
复制代码
# 1) 从本地 checkout 安装 dsh plugin --profile web add "<path-to-this-dir>" # 2) 或直接用最新 GitHub release tarball 安装(无需本地 clone) dsh plugin --profile web add \ "https://github.com/DeepTrial/dsh-bash-rtk/releases/latest/download/dsh-bash-rtk-latest.tgz" # 通过可选 overlay 启用 —— 在你的 profile 的 cordis.patch.yml 中添加: # - id: bash-sandbox # disabled: true # - id: bash-rtk # disabled: false dsh web # 重启以生效

内置的 overlay 片段位于 cordis.patch.yml。它会用 RtkSandboxBashExecutor(保留文件隔离)替换原生的沙箱执行器,并保留非隔离的 RtkBashExecutor 供 danger-full-access 场景使用。

API / 配置

两个执行器均接受与其原生对应物(LocalBashExecutor / SandboxBashExecutor)相同的基础配置,外加一个可选字段:

选项类型默认值说明
rtkAvailablebooleanresolveRtk() 结果强制启用或禁用 rtk 包装。适用于测试或二进制路径非标准的部署环境。

其余选项 —— cwd、timeoutMs、graceMs 等 —— 均原样继承自上游执行器。

哪些命令会被路由

符合 rtk 包装条件的命令集合由 rtk 本身定义 —— 权威且持续维护的列表见 rtk 命令参考 / README.md。本插件镜像该列表;当 rtk 新增子命令时,升级 rtk(而非本插件)即可生效。

复杂命令 —— 管道、&&/;、重定向、$( )、环境变量赋值 —— 无论白名单如何,始终以原生方式运行。

开发

▼
sh
复制代码
# 1. 克隆插件及其依赖的 harness git clone https://github.com/DeepTrial/dsh-bash-rtk.git git clone https://github.com/deepseek-ai/deepseek-harness.git # 2. 安装 harness 依赖并构建插件所链接的库 cd deepseek-harness && pnpm install && pnpm build:lib:host # 3. 安装插件依赖并运行检查 cd ../dsh-bash-rtk && pnpm install --ignore-scripts pnpm run check # 类型检查 + 测试 + 构建 pnpm run test # 仅测试 pnpm run typecheck # 仅 tsc

devDependencies 通过 link: 指向本地 deepseek-harness 源码仓;测试需在该 workspace 内运行(@deepseek-ai/dsh-* 包必须可解析)。

许可证

MIT

工具能力

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:DeepTrial/dsh-bash-rtk

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
dsh-live-canvas
在隔离的 iframe 沙箱中实时渲染 Agent 生成的 HTML、React (JSX/TSX)、Vue、SVG、Mermaid 和 Markdown,支持 SSE 热重载,并提供 DOM 点击检查器、并排视觉对比、响应式设备矩阵和一键 Vite ZIP 导出。
dsh-plugin-model-capability
DSH 网页端对话导航点 — 快速跳转用户消息。
dsh-firecrawl
通过 Firecrawl Cloud API 把 URL 抓成 LLM 可用 Markdown,或搜索网页并返回结果内容。
dsh-browser-use
Browser Use 云端桥接:通过 Browser Use API 让 dsh agent 执行真实网页任务,包括打开页面、点击、输入、填表和提取数据。
dsh-frecency
为 DeepSeek Harness 提供常驻索引 grep,以同名遮蔽内置 grep/glob 工具:重复内容检索命中按访问/修改 frecency 排序的内存索引,glob 在可用时对齐内置 ripgrep 语义、不可用时回退索引。