中文EN

dsh-task-console

ui装不上npmMIT

把 DSH 页面翻到背面变成玻璃任务台(会话 / 后台任务 / 子代理 / 工作区卡片),并提供无限画布:能把卡片拆成可拖动的控件、内嵌网页应用,还能用对话框直接改画布。

下载量 / Downloads
727
测试时间 / Tested
2026-11-07
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-task-console

沙箱测试结果

阶段结果
1 安装✗
2 列装—
3 挂载—
4 启动—
第一条错误
dsh: initialized profile web at /home/node/.dsh/profiles/web

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-task-console

![Listed on dsh-plugin.org](https://dsh-plugin.org/plugins/he2way/dsh-task-console)

![npm version](https://www.npmjs.com/package/dsh-task-console)

![npm downloads](https://www.npmjs.com/package/dsh-task-console)

![License: MIT](LICENSE)

![DeepSeek Harness plugin](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin)

A DeepSeek Harness (DSH) client plugin: a floating glass task console for the current session. Click the glass button in the bottom-right corner and the page "flips" to its back — a frosted-glass board with mouse-draggable cards showing live background jobs, subagents, a session overview and the workspace.

一个 DeepSeek Harness (DSH) 客户端插件:为当前会话提供悬浮毛玻璃「任务控制台」。点击右下角的玻璃按钮,页面翻到背面 —— 一块毛玻璃面板上悬浮着可鼠标拖拽的卡片,实时展示后台任务、子代理、会话概览与工作区。

Features / 功能

  • Flip to the back / 一体两面翻面 — a floating glass toggle (⇄ 任务台, fixed bottom-right) flips the whole main interface over around the page's vertical center axis: the real session page is the front face (it visibly turns away) and the frosted-glass task board is the back face (it turns into view) — one body, two faces. A silky ease-in-out 180° flip with no end wobble; a light sheen glides across the glass and the cards rise in staggered as the board lands; closing flips the page back. Respects prefers-reduced-motion; 返回会话 or Esc flips back.
  • Floating composer / 统一悬浮窗 — the REAL conversation input bar stays put while the page flips: its seat ([data-composer-seat]) is switched to fixed positioning (never moved out of #root), so typing, attaching and sending keep working over the task board. As the page turns, the input bar morphs into the floating window (grows from the visible input card, glass fades in); on close it morphs smoothly back to the same spot (title bar and transcript come off first so the shrinking box never clips). The home rect is the visible box — the input card (plus its padding) for a live conversation, the hero stack for the new-session welcome — never the seat's full-column box, so the window never stretches wide and the final restore lands on the identical box: no snap, no fade-out. The new-session welcome reverts smoothly on close too — the compact title grows back, the glow fades in and the layout settles via transitions. The chat scrollport is put into smooth-behavior mode around the restore and its pre-flip state is remembered, so every programmatic scroll — including the chat view's own pinned-follow — glides the history into place instead of jumping when the composer re-enters the flow. Both the active conversation and the new-session welcome open as one unified water-glass floating window with the same initial size (440×480): a title bar on top, the brief live transcript (last few messages, role chip + truncated text, refreshed as you chat), and the real input with its full option bar (permission config, command menu, model seat, context meter) at the bottom. The window is draggable by its top bar and resizable by its bottom-right corner (320–viewport limits). The new-session window shows its welcome title header, workspace chip and input instead of the transcript. While the board is open, body-level portaled menus (workspace picker, command menu, …) are lifted above the board so every button stays clickable.
  • Live current-session data / 当前会话实时数据(来自 DSH 的 useSessions 标准数据源):
  • 会话概览 Session — title, running/idle, phase, origin, live job & subagent counts.
  • 后台任务 Jobs — live background jobs: status dot, kind chip, label, status, ticking durations (live jobs first).
  • 子代理 Subagents — the session's subagent catalog: child/fork, running/idle, id.
  • 工作区 Workspace — cwd, session id, last update time.
  • 插件管理 Plugins — the frame-wide dynamic Cordis inventory: each plugin's name, running/stopped state, and actions (停止 / 移除 with a two-step confirm), refreshed automatically on the dynamic-plugin events (cordis/dynamic-package, retract, run requests).
  • Draggable & resizable glassmorphism cards / 可拖拽、可缩放毛玻璃卡片 — hold a card header and drag (pointer capture, clamped to the board); the grabbed card is raised by direct DOM z-order while dragging, and drag the bottom-right corner to resize any card (220–900px wide, 120–1200px tall, clamped to the board); every card can be collapsed (▴/▾) or opened fullscreen (⛶); user cards can be pinned on top (📌); built-in cards can be hidden (×); positions, sizes and state persist in localStorage (dsh.taskconsole.v1); 复位卡片 restores the built-in layout while keeping your user cards. Gestures are compositor-driven and render-free while the pointer is down: pointer moves apply a transform (or an inline size) inside a requestAnimationFrame, the moved card drops its backdrop-filter for the duration (every other card keeps its normal look), grabbing no longer triggers a board re-render, and React state + localStorage are committed exactly once on release. Card bodies are memoized, and once the flip settles the rotated front face is culled (visibility + content-visibility: hidden) so the compositor only handles the board.
  • Infinite canvas & live collaboration / 无限画布与多人协作 — 🖼 画布 in the board header opens a fullscreen infinite canvas (wheel zoom anchored at the pointer, drag empty space to pan, 复位视图 to recenter); any user card publishes an independent copy onto it with 📤. Canvas cards move/resize freely and keep the whole pipeline: control blocks, widget state, ✎ manual editing and 💬 agent refactor. Images can be dropped or pasted onto the canvas (downscaled to a bounded JPEG and stored as an image control). Canvases are

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:2,最后更新 2026-09-18

链接

GitHub · Homepage · npm

同类插件