DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Agent Grid — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-agent-grid

Agent Grid

定员八席 —— 把 DeepSeek Harness 的侧栏换成 2×4 的常驻席位看板:八个 agent 各自的实时动作、状态与待办一眼看全。Not affiliated with DeepSeek.

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-agent-grid@0.1.3
README兼容性版本

兼容性与来源证明

Agent Grid 以 dsh-agent-grid 发布,当前版本为 0.1.3。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/24

版本

0.1.3stable
2026/9/24
0.1.1stable
2026/9/24
0.1.0stable
2026/9/22

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rClient Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。

README

Eight Standing Seats · 定员八席

其静也专,其动也直 — "Still, it is single-minded; moving, it goes straight." (I Ching, Great Treatise I)

A 2×4 standing-seat board that replaces the DeepSeek Harness sidebar: see what all eight agents are doing, and which one is waiting for you, at a glance.

中文 | English


The eight-seat board

A real screenshot, not a mock-up: each seat's avatar, status dot and current action (a green dot for the working seat, greyed-out for the two vacant ones). Dynamic text and working directories on the cards are redacted.

What it solves

DSH's sidebar is a session list by default. Once you run one agent per session, what you actually want to know is not "which sessions exist" but "what is each seat doing, and which one is waiting for me" — a list cannot answer that, it only grows longer.

This plugin swaps it for a fixed 2×4 board:

Seat identity is permanent. Sessions are disposable payload.

Each of the eight seats keeps a permanent identity (persona, accent colour, index); real sessions are just replaceable payload mounted on a seat. Adding, removing or reordering sessions never makes a cell change occupant — that is the precondition for "understandable at a glance".

Each seat has its own name and emblem (the Eight Immortals of Chinese lore: Han Zhongli, Lü Dongbin, Tieguai Li, Zhang Guolao, He Xiangu, Lan Caihe, Han Xiangzi, Cao Guojiu), with a hand-drawn pixel avatar (56×24 logical canvas at integer 2× scale). The animation is a finite state machine, not a looping GIF — the figure follows the facts: waiting on you → raises a flag, working → emblem fires, finished-but-unread → settles with an afterglow, otherwise → at rest.

Three orthogonal states

Deliberately not collapsed into one field, because their rates of change and their owners differ completely:

DimensionValuesRateOwner
Personaname / emblem / accentalmost neveryou
Activityworking / resting / awaiting answer / awaiting approvalhighthe agent
Contextempty / in use / near limitmediumthe system

Key consequence: "resting" ≠ "vacant". Resting means "has an identity, is ready, is not working"; vacant means "this slot has never been commissioned". A bot can perfectly well be "resting but 87% context-full" — the card must say so, because you need to clear it before assigning the next task.

The seven labels

LabelFact it statesSourceFigure
Vacantno session bound yetno bindingat rest (grey)
Standing byseated, session still emptyblankat rest
Workingcurrently runningrunningemblem fires
To reviewa turn ended and you have not lookedunread noticesettles + afterglow
Restingidle, nothing unreadotherwiseat rest
Awaiting answerit asked you a question and is stuckprojection attention=questionraises flag
Awaiting approvalan un-reviewed approval is pendingprojection attention=approvalraises flag

Status dots: working green · to-review gold #C9A227 · awaiting cinnabar #B5453C · vacant / standing by / resting grey

Priority: the two awaiting states outrank everything except vacant; the rest order as working → to-review → standing by → resting.

Why not call it "completed": completed is not a lifecycle state, it is an unread notice — the host lights it on the true→false edge of running, and it does not judge success (a crashed or interrupted turn lights it too). Calling it "completed" is not merely imprecise, it can be simply wrong. It really only says two things: a turn ended, and you have not looked.

Also: the seat you are currently viewing does not light the notice when it finishes — so "to review" always appears on a seat you were not watching. That is exactly what this board is for.

The card shows the process

Not just a status dot. A host-side seat-activity projection supplies each seat's latest slice: tool call → thought (reasoning) → ↳ (tool result) → speech (answer), plus how long since the seat last moved.

So when all eight cards are animating, you can tell what each one is doing — not eight identical spinners.

Vertical space is a hard constraint: eight full cards must fit one screen with no scrollbar. Measured at 164px per full card (4 rows + gaps = 697px against ~750px usable), narrow windows drop secondary rows. Better to hide a row than to show a scrollbar.

The main pane stays stock

The board does not rewrite the conversation area. The main pane remains DSH's stock Conversation; the plugin only injects a seat badge into the conversation header, so you always know which seat you are talking to.

(An earlier version replaced the main pane with a custom detail page — that threw away the stock conversation. Overturned; it was reinventing the wheel.)

Escape hatch

Settings → General → Sidebar: [ Seats │ Default ]

Switching to "Default" works by unregistering, not by hiding a component — once our slot registration is dispose()d, the built-in WorkspaceBrowser returns to the render position automatically. The choice survives page refreshes and host restarts; deployments without a settings service degrade to a local-only switch with an inline notice.

Install

dsh plugin --profile web add dsh-agent-grid

Then refresh. To go back to the stock sidebar: Settings → General → Sidebar → Default.

Intrusiveness

This plugin replaces the host's sidebar.workspaces slot (shadowing the built-in implementation with priority: -1). It patches no host source, but it does change how the sidebar presents itself — the switch above exists precisely as the way back.

Compatibility

  • Verified on DSH 0.1.5-rc.2 (@deepseek-ai/dsh)
  • Consumes only host design tokens and hard-codes no colours — so any DSH theme can drive it
  • Not affiliated with DeepSeek

With a theme

Companion theme dsh-theme-songgrid (Songgrid · rice paper / night ink) was tuned for it: warm paper against the board's grey-scale cards, Ru celadon carrying the interactive states. The two are fully independent — either works alone.

License

MIT