dsh-btw
DeepSeek Harness plugin: a /btw slash command to add notes without interrupting the agent
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 26, 2026
- Updated
- Aug 26, 2026
Introduction
dsh-btw
English | 中文
A DeepSeek Harness (DSH)
plugin that adds a human-facing /btw ("by the way") slash command for
queuing a supplementary note without interrupting the agent.
While the agent is running, you suddenly remember something extra to tell it.
Type /btw <note> and keep your train of thought — the note is delivered to the
agent after the current turn finishes. The in-progress turn is never
interrupted, cancelled, or restarted.
Install
# from GitHub (works immediately — no npm publish required)
dsh plugin --profile web add git+https://github.com/XiaoWind/dsh-btw.git
# or from npm, once published
dsh plugin --profile web add dsh-btw
The dsh plugin command forwards to pnpm inside the web profile directory,
then reconciles the profile's dsh.profile.bundles layer list. Because this
package declares dsh.bundle.patch, it joins the layer stack automatically.
Restart the Web app after installing.
The plugin injects the
commandsservice, so it activates only in profiles that compose a command adapter — the shippedwebprofile does.
Update
Pull the latest version of the plugin into an installed profile:
dsh plugin --profile web update dsh-btw
dsh plugin forwards to pnpm update dsh-btw inside the profile directory,
which re-resolves the github:XiaoWind/dsh-btw dependency to the latest commit
on the default branch. The lockfile pins a git dependency by commit hash, so a
version bump is not required for the update to land. If pnpm has cached an old
git resolution, re-pin it explicitly:
dsh plugin --profile web add github:XiaoWind/dsh-btw
Restart the Web app after updating — the bundle layer is composed at boot, so a running Web process does not hot-reload an installed plugin.
Usage
| Command | Result |
|---|---|
/btw <note> | Queue a supplementary note (any language) for the agent. |
/btw help | Show help. |
The note is added as an ordinary user message, so the model treats it as your own words and folds it into the task it is already working on.
Semantics
- Never interrupts.
/btwappends the note to the agent's next-turn queue. If the agent is mid-turn, the running turn completes exactly as it would have, then the note is handled as the next message. If the agent is idle, the note is picked up immediately. - Nothing is cancelled or restarted. The note is a continuation, not a new directive. The current objective stays intact.
- Order preserved. Multiple
/btwnotes are delivered in the order they were submitted (FIFO). - Stateless. There is no persistence: once delivered, a note leaves nothing behind, so a restart never replays an old note.
Configuration
This plugin has no configuration. The acknowledgement it prints simply reflects whether the agent was busy or idle at the moment the note was queued.
Development
# syntax check
node --check lib/index.js
The plugin is a single-file ESM Cordis function plugin (lib/index.js) with no
build step. It exports apply, inject, and name, and the bundle layer
cordis.patch.yml inserts it into the profile composition.
License
MIT