UI Enhancements
dsh-ultra-ui
havingautism/dsh-ultra-ui · ★ 2
DeepSeek Harness Web UI enhancement informed by Codemini interactions: focuses solely on rendering every tool call as compact, expandable, replayable collapsible rows.
安装
dsh plugin --profile web add github:havingautism/dsh-ultra-uiGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
For install and environment setup, plus plugin development tutorials, see DSH community docs ↗
README
Table of contents
English | 中文
A Codemini-inspired Web UI extension for DeepSeek Harness that only presents every Tool call as a compact, expandable, replay-safe disclosure row.
Status Preview · Version 0.1.1 · Branch main
✨ Features
- 📦 Collapse any Tool call, including tools contributed by third-party plugins.
- 👀 Keep the tool name and a useful argument summary visible while collapsed.
- 🔍 Expand exact arguments, results, errors, and the trajectory inspection action.
- 🔄 Derive state only from logged call/result blocks so live rendering matches replay.
- 🧠 Add no model tools, system instructions, or request tokens.
🚀 Quick Start
dsh plugin --profile web add github:havingautism/dsh-ultra-ui
dsh web
🧪 How to Verify
Open DSH Web and ask the model to call any tool, such as reading a file, running a command, or using a third-party plugin:
- The Tool call initially appears as a compact one-line summary.
- Click it or press Enter/Space to expand arguments and results.
- Running, successful, and failed calls show distinct states.
- The expanded row can open the matching call in the trajectory inspector.
- Reopening the session preserves the same rendered content.
🛠️ How It Works
The Harness Tool tree routes every root call and subcall through tool.call.presentation. Ultra UI occupies that presentation layer and renders directly from the logged tool name, arguments, results, and errors. It maintains no business-tool allowlist, so tools contributed by other plugins use the same UI.
🧪 Verification and Development
npm run verify
Installable lib/ artifacts are committed; run npm run verify for a syntax check.
⚠️ Known Limitations
- The Harness build must provide the single
tool.call.presentationslot; on older builds without it, the plugin does not take over rendering. - Only one plugin can occupy that presentation slot in a Session.
- Summaries prefer common fields such as
title,question,query,path, andcommand; unfamiliar arguments fall back to the logged JSON prefix.