DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
B

@local/dsh-btw-sidechat

Btw Sidechat

DeepSeek Harness 的顺带侧边聊天:当前对话的只读分支,在 Codex 风格的右侧边栏窗口中回答。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Big-Smarty/dsh-btw-sidechat#99d099698fd6dc4b6254a5795c77eba35e4ebec6
README兼容性版本

兼容性与来源证明

Btw Sidechat 以 @local/dsh-btw-sidechat 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/20

版本

0.1.0stable
2026/10/20

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/20
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 memory-context 分类下经过校验的插件。

Experimental Session Search@deepseek-ai/dsh-experimental-session-search为 Agents 提供搜索和读取当前工作区早期会话的工具。Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Contextdsh-context用于上下文洞察和管理的 DeepSeek Harness 插件,提供上下文仪表板和上下文命令,帮助了解上下文的构成及其演变过程。Mnemondsh-mnemon面向 DeepSeek Harness 的可组合、基于视图的上下文。开箱即用的可插拔来源与策略、分层记忆和自我演进技能。

README

BTW Side Chat logo

BTW Side Chat

Ask a side question in DeepSeek Harness without interrupting the main task. /btw forks the current conversation with its full context, answers in a read-only side chat, and opens the answer in a Codex-style right-sidebar window.

Features

  • Full inherited context. DSH's session log is the source of truth, so /btw forks the latest completed-turn prefix of the current conversation. The child sees the parent's user messages, assistant answers, and tool results — no re-summarization step.
  • Read-only by policy. The child is pinned to native tools, then restricted to read, read_image, glob, grep, web_search, web_fetch, and skill. A monotonic per-agent guard denies every other tool, including run_code and any tool registered later. Deployments that register a tool on the agent scope (some delegation tools do) may still show that tool's schema; the guard denies its execution.
  • A side-chat system prompt. The child is told that it is a read-only side chat, that the inherited transcript is context rather than a task to continue, that these are its tools, and that it must answer the question directly without asking a follow-up.
  • A real side window. A dsh-resource://btwchat/... tab opens in the right sidebar with the normal Conversation: the inherited transcript, streaming answer, Markdown, and a composer for follow-ups.
  • A compact command card. The raw resource address is hidden behind a side-chat card with the question and an Open button, so the tab can be reopened later from the transcript.
  • No build step, no dependencies. Plain ESM Host code and a browser module, host theme tokens, English and Chinese UI copy.

Install

Requires DeepSeek Harness 0.2.1-rc.2 or a nearby version with the right sidebar, the Session Controller, and /btw command support.

From GitHub

  1. Open Plugins in the DSH sidebar.

  2. Choose Add plugin → Install third-party plugin.

  3. Enter the repository URL:

    https://github.com/Big-Smarty/dsh-btw-sidechat.git
    

    A local clone path works too and keeps the checkout linked for edits.

  4. Install and enable the bundle, then refresh the page once so the client half loads.

Or ask a DSH agent to install the bundle from the same URL.

Local clone

git clone https://github.com/Big-Smarty/dsh-btw-sidechat.git
cd dsh-btw-sidechat
npm test

Install the cloned directory through Plugins → Add plugin as above.

Only one plugin may provide the global /btw command. Disable any other /btw plugin (for example @michengai/dsh-btw) before enabling this one; two global commands with the same name are a load error, not a shadow.

Usage

ActionHow
Ask a side question/btw why does the retry test fail?
Read the answerThe side chat opens automatically in the right sidebar
Follow upType in the side chat's composer; the same read-only child answers
ReopenClick Open on the /btw card in the parent transcript
CloseClose the tab; the child session stays in the session list

The side chat is a normal forked session, so it also appears in the workspace's session list and survives a restart. Its read-only policy is re-installed when it is resumed.

What the side chat sees

The fork is cut at the latest completed turn. A /btw sent while the parent is mid-turn does not include the in-flight turn; a conversation with no completed turn returns a helpful error instead of creating an empty child.

What "read-only" means

The side chat cannot write files, run shell commands, edit code, change configuration, create goals or schedules, spawn subagents or workflows, ask blocking questions, or read other sessions. It can read workspace content and the web. Its own conversation is a separate fork, so follow-up prompts and answers never enter the parent context.

How it works

  1. The Host command calls sessionController.fork({ sessionId }), which creates a forked child with the parent's event prefix and preset.
  2. Before the first prompt, it pins the child to native tool presentation, computes the read-only intersection from tools.schemas(child), installs tools.restrict and a tools.guard, and adds a btw:side-chat system-prompt section.
  3. It titles the child BTW · <question>, which is also the durable marker used to re-adopt the policy after a cold resume.
  4. It admits the question with sessionController.prompt, then returns a dsh-resource://btwchat/session/<child>?parent=…&q=… address in the command result.
  5. The Client registers a btwchat resource provider, a right-sidebar tab type and body, a command card keyed btw, and a local command/executed listener. The listener refreshes the session catalog, then opens the tab.
  6. The tab renders the normal conversation.content factory in embedded mode inside the child's SessionProvider. The inherited transcript and composer are the shipped ones.

More detail: docs/ARCHITECTURE.md.

Limits

  • Web/Desktop only. The side window uses the right sidebar, so the Client half needs a DSH Web or Desktop profile. The Host half still creates the child on a TUI host, but no side window opens there.
  • command/executed is local. Auto-open happens in the browser tab that submitted /btw. In another tab, after a reload, or after a Host-side invocation, use the command card's Open button.
  • The title is the resume marker. Renaming a side chat removes the BTW · prefix; the live process keeps the restriction, but a later cold resume of that renamed session will no longer recognize it as a side chat.
  • No auto-archive. Closing the tab leaves the forked session in the conversation list, like an ordinary fork.
  • Scoped tool schemas can remain visible. tools.restrict filters inherited tools; a tool registered directly on the child's agent scope (for example a delegation tool added by a preset) stays in the schema list. The guard denies its execution, and the side-chat prompt states that only the listed tools are available.
  • Web tools are allowed. web_search and web_fetch can send text to search providers. If the inherited transcript is sensitive, remove them from READ_ONLY_TOOLS in index.js.

Development

npm test

The tests use Node's built-in test runner and cover command parsing, title and address codecs, the read-only intersection, policy text, the fork/adopt/prompt flow, error mapping, root-versus-child tool presentation, resume adoption, and the client module shape. CI runs on every push and pull request.

A live Host probe on 2026-10-20 forked a small fixture session, prompted the child with /btw Reply with exactly: BTW PROBE OK, and observed:

  • the child title BTW · Reply with exactly: BTW PROBE OK;
  • the answer BTW PROBE OK;
  • the btw:side-chat section in the child's assembled prompt;
  • read, glob, grep, skill, read_image, web_search, and web_fetch visible;
  • bash, write, edit, and run_code absent (a preset-scoped subagent schema remained visible but is guard-denied);
  • the command result address the Client parses.

The live Client slot tree confirmed the right-sidebar tab body, the btw.conversation child slot, and the btw command card. The auto-open path is client-local; it was verified by registration and codec tests rather than by driving the browser.

index.js            Host half: /btw command, fork, read-only policy, resume adoption
client.js           Client half: resource provider, sidebar tab, command card, auto-open
cordis.patch.yml    Loads the bundle row
locale/             Plugin-inventory metadata (en, zh)
test/               Node tests for the pure helpers and the Host flow
docs/               Architecture and design notes

Design notes

The btw prompt is adapted from oh-my-pi's /btw side question (Ephemeral side question for current interactive session. Answer briefly, directly; use conversation context already provided. NEVER use tools. NEVER ask follow-up questions.). This plugin keeps the direct-answer discipline but changes two premises: DSH has a durable, forkable session log, and the user asked for a read-only side chat with its own tools. The result is a read-only tool surface and a side window instead of a one-shot overlay.

Cost and safety

A side chat makes one additional model request series over the inherited prefix, then one per follow-up. The plugin runs Host code in-process with your permissions; install it only if you trust the source. It cannot widen the parent's permissions and does not bypass approvals, sandbox policy, plan mode, or workspace restrictions.

License

MIT. See LICENSE.