DeepSeek Harness 插件

dsh-btw-13615533

/btw slash command for DeepSeek Harness: ask a context-aware side question without touching the main conversation(英文原文)

跳到安装方式

来源信息

GitHub 仓库
136155330/dsh-btw
最近更新
2026年8月19日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/136155330/dsh-btw
插件名:dsh-btw-13615533
作者:136155330

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-btw

/btw for DeepSeek Harness (dsh) — a Claude-Code-style side question command.

Ask something in the middle of a task, get the answer rendered directly in the UI, and keep working. Neither the question nor the answer becomes a model message in the main conversation: your session log records only the log-only command/run / command/done pair, the token usage stays zero, and the prefix cache is untouched.

/btw what's the difference between Drop and DropImpl again?

The answer comes from a one-shot subagent (the fork provider by default), so it is aware of the ongoing conversation — but the conversation never sees the exchange.

Install

Requires Node.js ≥ 20 and a dsh installation (npx @deepseek-ai/dsh).

From npm (prebuilt, no build permission needed)

dsh plugin --profile web add dsh-btw

From GitHub

dsh plugin --profile web add github:<your-github-name>/dsh-btw

A git install runs the package's prepare build script, so allow it once in the profile's pnpm-workspace.yaml (pnpm ≥10 policy):

allowBuilds:
  dsh-btw: true

Re-run the add after adding the allowance. Pin a commit (github:<you>/dsh-btw#<sha>) if you want reproducibility.

Try it from a checkout without installing

dsh --profile web --patch ./smoke/btw.yml
# btw.yml:
#   - insert:
#       - id: btw
#         name: '/absolute/path/to/dsh-btw/src/index.ts'

Verify: dsh --profile web --dump-config shows a btw row; the Web UI's slash-command catalog lists btw beside plan and compact.

Configuration

The plugin row in cordis.patch.yml accepts a config block (fail-loud: unknown keys abort plugin load):

- insert:
    - id: btw
      name: dsh-btw
      config:
        provider: fork   # fork (default) | spawn
        persona: terse   # optional child persona
keydefaultmeaning
providerforkfork seeds the child with the main session's completed-turn prefix (context-aware answers); spawn starts a fully isolated child.
personaOptional persona applied to the child (supported by the in-process fork/spawn providers).

How it works

1. The dsh commands registry dispatches /btw in the human-only command plane — zero model tokens by construction. 2. The handler starts a one-shot subagent via ctx.subagents.start(provider, …) with the exact receiving agent as parent and the UI's AbortSignal. 3. The run's result is awaited and the child is always disposed (allSettled settlement — a dispose failure is reported, never swallowed). 4. The child's visible text blocks are joined and returned as the direct CommandResult; failure paths map stop reasons to readable errors and preserve partial output.

Full requirements analysis, alternatives considered, and the TDD plan live in [docs/DESIGN.md](docs/DESIGN.md).

Compatibility

Targets the dsh 0.1.0-rc.x line (peer ranges >=0.1.0-rc.1 <0.2). dsh is a developer preview; expect API movement across rc versions.

Develop

pnpm install
pnpm test        # vitest, 30 cases
pnpm typecheck
pnpm build       # tsdown → lib/

License

MIT