DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Tool Indent — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
T

dsh-tool-indent

Tool Indent

DSH Web GUI plugin: Adds indentation to all Tool calls and lets you adjust the indentation, grayscale, and line spacing of Tool/thought summaries under Settings → Tool Call Appearance

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:Asheep233/dsh-tool-indent#ff43a3f45e4e95823f29114617a9e0003c3dcc4e
READMECompatibilityVersions

Compatibility and provenance

Tool Indent is published as dsh-tool-indent and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/2/2026

Versions

0.1.0stable
10/2/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 1
Weekly downloads
0
Last push
10/2/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Client Ui Skill Explorer@linxin666/dsh-client-ui-skill-explorerDSH skill center: browse loaded skills by source (bundled / project / user / custom / runtime), enable or disable, create and delete, in a web GUI panel.Remote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Client Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundle

README

dsh-tool-indent

给 DSH Web GUI 里所有 Tool 调用加统一左缩进的浏览器专属 UI 插件, 并附带一页设置,可调 Tool / 「思考」摘要行的缩进、灰度、行间距。

助手正文 ……
  ▸ bash   cargo test            ← 缩进 + 摘要灰度 + 行间距,都可调
  ◇ 思考   dev_build_plugin requires DSH_CHECKOUT…
  ▸ read   src/main.rs
助手正文 ……

设置位置:设置 → 工具调用外观(四个滑块,拖动即时生效,自动保存在本浏览器)。

dsh plugin --profile web add github:Asheep233/dsh-tool-indent
滑块CSS 变量默认
缩进--dsh-tool-indentcalc(22px + 字号增量)
工具摘要灰度--dsh-tool-dim1(100%)
思考摘要灰度--dsh-think-dim1(100%)
行间距--dsh-row-leading0px

原理

环节做法
Tool 调用锚点[data-chat-call-id] —— ui-tool 的 ToolCall 给每一次调用的行容器打的两个稳定属性之一(含 PTC 嵌套子调用)
摘要行锚点[data-disclosure-row] —— ui-primitives 的 DisclosureRow 给折叠行行头打的属性;展开后的正文是它的兄弟节点,所以「灰度」只影响摘要行、不影响展开内容
思考行锚点[data-variant="think"] —— ReasoningRow 的根。Tool 行的 variant 只取 bash/read/write/edit/search/code/others,不会撞上 think
为什么不用类名上面都是组件写死的 data-* 契约;CSS Modules 的哈希类名(ztWv_q_callRow、o3BgMG_row)随版本变化,不能挂
注入方式client 半边在模块体里插 style[data-plugin][data-plugin-css],与官方 packages 完全同构;插件禁用/卸载时由 client-modules 的 removeOwnedStyles() 按 data-plugin 自动回收
生效位置会话正文(含子代理面板等一切走 conversation.chat.node 的地方)。不含右侧「轨迹」表格视图——那是 <tr> 时间线,缩进无意义
宿主半边空 apply()(本插件零 host 行为),只为 Loader 提供入口模块

实际生效的 CSS 只有四条:

:root { --dsh-tool-indent: calc(22px + var(--dsh-content-font-delta, 0px));
        --dsh-tool-dim: 1; --dsh-think-dim: 1; --dsh-row-leading: 0px; }

[data-chat-call-id] { margin-left: var(--dsh-tool-indent); }
[data-chat-call-id] [data-disclosure-row] { opacity: var(--dsh-tool-dim);
  height: calc(24px + var(--dsh-content-font-delta, 0px) + var(--dsh-row-leading)); }
[data-variant="think"] [data-disclosure-row] { opacity: var(--dsh-think-dim);
  height: calc(24px + var(--dsh-content-font-delta, 0px) + var(--dsh-row-leading)); }
[data-variant="think"][data-variant="think"]:not([data-expanded]) { height: calc(24px + var(--dsh-content-font-delta, 0px) + var(--dsh-row-leading)); }

(最后一条是必须的:思考行折叠时根节点是固定高 + contain: size,内容不参与撑高。)

设置页怎么工作

  • 组件作为 ctx.slots.register(options, Component) 的第二个参数传入, options 里放 name: 'settings.section' / id / order / label。 ⚠️ 官方 register(options, component) 只读第二个参数:写 options.component 会被丢弃。
  • 组件是普通 React 组件,react 与 react/jsx-runtime 由 shell 的冻结静态表 (PLATFORM_MODULES)提供——必须保持 external,一旦被打进 bundle 就会出现 第二份 React,hooks 立刻报错。
  • 持久化走 localStorage(键 dsh.tool-indent.v1,沿用官方 dsh.* 前缀约定),不写 Host 配置文档: 这是「本浏览器的观感偏好」,不涉及模型/会话行为,所以不需要 revision-fenced 的配置写入。
  • 变量写在 document.documentElement.style 上(行内优先级高于样式表), 模块一落地就按已存值应用,页面加载不会先闪默认值。

目录

src/index.ts          host 半边(空 apply)
src/client/index.tsx  client 半边(样式注入 + 设置页 React 组件)
cordis.patch.yml      bundle 补丁层:向组合插入 id=dsh-tool-indent 的 entry
tsdown.config.ts      浏览器 bundle(__ModuleLoader__ 外壳 + React 保持 external)
scripts/build.sh      自包含构建(不依赖 dsh 源码 checkout)
lib/                  **构建产物,已入库**(DSH 运行时直接吃 lib/client.js;
                      同生态惯例,见 dsh-external/dsh-vision-toolkit)

构建

bash scripts/build.sh        # = tsc(host) + tsc(client 类型) + tsdown(client bundle)

首次会 npm install 本目录的 devDependencies(typescript / tsdown / @types/react), 对 @deepseek-ai/* 零运行时依赖,所以不需要 dsh 源码 checkout。

lib/ 是入库的:这样 github:Asheep233/dsh-tool-indent 装下来即可直接用, 不需要在安装方跑构建。改完 src/ 记得重新构建并提交 lib/。

安装 / 卸载

从 GitHub 装进某个 profile(和生态里其它插件一样):

dsh plugin --profile web add github:Asheep233/dsh-tool-indent#v0.1.0

本地开发时用 junction 直连(当前 web profile 就是这么装的):

# 重新装配(改完代码后重建 + 重载当前进程内的插件)
bash scripts/build.sh
# 注入器环境内:dev_reload_package dsh-tool-indent

# 卸载:从 profile 的 bundles 与 dependencies 里删掉 dsh-tool-indent,再删 junction
#   ~/.dsh/profiles/web/node_modules/dsh-tool-indent

不用设置页也能调

覆盖同一个 CSS 变量即可(浏览器控制台、自定义样式皆可):

:root {
  --dsh-tool-indent: 32px;
  --dsh-tool-dim: 0.6;
  --dsh-think-dim: 0.75;
  --dsh-row-leading: 4px;
}

注:嵌套子调用(PTC)本身位于 subCalls(已有 22px margin + 8px padding 导轨), 因此会呈现逐级缩进,深度越大越靠右。想要「只有顶层调用缩进」,把 src/client/index.tsx 里的选择器换成 [data-slot="conversation.chat.node"] > [data-chat-call-id] 再重新构建。

兼容性

  • 依赖的契约:data-chat-call-id / data-disclosure-row / data-variant="think"、 dsh.client.platform=web、window.__ModuleLoader__.load({id, factory})、 style[data-plugin] 回收、register(options, Component)。 升级后若某个锚点改名,只需改上面那几条选择器。
  • 若发现「设置里没有这一页」:确认插件在 设置 → 插件 里启用,并硬刷新页面 (bundle 变更后老页面需重载)。