DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

dsh-plugin-tui

Plugin Tui

DeepSeek Harness 的交互式终端 UI:基于可恢复编码代理会话的 Claude Code 风格 REPL

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

npx -y @deepseek-ai/dsh plugin --profile web add github:ghbhiee/dsh-plugin-tui#d9df7b31c3a9aa0f25c5f840c28013e74b4cc001
README兼容性版本

兼容性与来源证明

Plugin Tui 以 dsh-plugin-tui 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/8/28

版本

0.1.0stable
2026/8/28

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Better Sidebardsh-better-sidebarDSH web 插件:类似 VSCode 的右侧边栏(资源管理器 / 编辑器 / 终端 / git / 浏览器),按对话会话隔离。提供服务,供其他插件注册侧边栏标签页和文件查看器。Find Plugindsh-find-plugin在代理中查找 DeepSeek Harness 插件——实时搜索 GitHub 上的 dsh-plugin 主题,并按星标数排序。DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。Plugindsh-pluginDeepSeek Harness 社区插件市场,遵循官方插件规范——无需离开应用即可浏览、搜索并安装 9000+ 个由人工精选的社区插件。· DeepSeek Harness 社区插件市场(遵循官方开发规范):9000+ 人工精选社区插件,每日更新。

README

dsh-plugin-tui

An interactive terminal UI for DeepSeek Harness: a Claude Code-style REPL over one resumable coding-agent session. Where dsh-plugin-cli-session drives a single turn and exits, this runner keeps the terminal for the whole conversation — streaming token deltas, tool-call lines, and turn errors as they commit, and answering approval requests from the keyboard.

Install

dsh plugin --profile tui add github:ghbhiee/dsh-plugin-tui

Or from a local clone (a link:, so a local rebuild is picked up):

dsh plugin --profile tui add ./dsh-plugin-tui

The tui profile needs only two bundle layers — this plugin restates the few rows dsh-headless would have contributed, so do NOT add the headless bundle:

// ~/.dsh/profiles/tui/package.json
"dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "dsh-plugin-tui"] } }

Usage

dsh --profile tui                       # start at the prompt
dsh --profile tui "explain this file"   # send a first message, then stay interactive
dsh --profile tui -r                    # resume the latest tui session here
dsh --profile tui -s <id>               # resume a specific session
dsh --profile tui -w ./scratch          # new session in another directory
dsh --profile tui -l                    # list this profile's sessions here
dsh --profile tui -p danger-full-access # full access from launch (no sandbox, no prompts)
dsh --profile tui -p workspace-write -y # sandboxed, but approvals auto-allowed

Inside the REPL:

InputMeaning
/exit, /quit, Ctrl-Dleave (flushes the session first)
/sessionprint the session id
/sessionspick a session interactively (↑/↓ move, Enter switches, Esc cancels); /sessions list prints the static list
/resume <n|id>switch to another session in place (index from /sessions list, or an id prefix)
/history [n]reveal n earlier exchanges of the current session (switching in shows only the most recent ones)
/newstart a fresh session, releasing the current one
/title [text]show the session title, or rename it (a rename pins the title)
/model [id]pick a model interactively (↑/↓, Enter, Esc) or hot-switch by name (id or provider/id) — takes effect from the next step
/effort [id]pick reasoning effort interactively, or set by name (/effort default restores the provider default)
/helpbuilt-ins plus every harness-registered command
Ctrl-C while a turn runscancel the turn, stay in the REPL
Ctrl-C twice while idleleave
y / N at an approval promptallow / reject one gated tool call
/approvals [ask|auto]auto allows every request with a dim audit line (the sandbox still applies); ask restores prompts. dsh --profile tui -y starts in auto
a number (or free text) at a ⁇ questionpick an option / answer in your own words; multi-select takes comma-separated numbers

A status bar pinned to the terminal's bottom row shows the live model and effort, the approvals mode, the session title, and the working directory — it refreshes as those change and survives resizes; the transcript scrolls above it. Thinking is collapsed by default — the spinner area shows a live three-line window over the reasoning stream, and ctrl+o toggles the full dim stream. /model and /effort choices are remembered per profile (tui-model.json beside the profile; the machine-wide default is never touched) — /model default clears the preference. Tool calls always render as one task-summary line (⏺ Group counts (+14 lines)); the full command or script goes to the same per-turn detail stream ctrl+o reveals. The toggle only ever covers the current (or just-finished) exchange — starting a new one clears it. Resuming or switching to a session replays its recent exchanges statically (never re-running anything); /history pages further back, and your terminal's own scrollback covers the rest. The prompt appears in well under a second — MCP servers connect in the background and their tools join late. While a turn runs, a braille spinner covers quiet stretches; token deltas are micro-batched (~16ms) so heavy streams stay smooth. Answer text renders as markdown, a line at a time — bold headings, colored bullets and inline code, green fenced code blocks. Tool calls render through each tool's own presenter — ⏺ $ ls -la — List files, ⏺ Write foo.txt — with the ⏺ colored by the call's category (read, edit, execute, …), falling back to a compact raw-arguments line for tools without one. Todo snapshots draw as a ☑/◐/☐ checklist, each exchange ends with a dim ↳ 1.2k in · 89 out accounting line, and prompt history persists across runs (up-arrow recalls earlier inputs).

Ctrl-C works as a keystroke because raw-mode readline owns the terminal; the launcher's own SIGINT handler still answers an external kill -INT with a full teardown, which is the behavior you want from outside the TUI.

Develop

pnpm install
pnpm run check   # typecheck → vitest → tsdown build

Because lib/ is versioned (it is what a git install serves), rebuild and commit it with every source change.

Harness slash commands are dispatched through ctx.commands, so /help also lists whatever the composition registers — here that is /compact, /feedback, /goal, /permission, and /plan. /permission workspace-write switches the live session to the sandboxed ask-mode preset; gated tool calls then surface as the y/N approval prompt.

Status / known gaps

  • One-shot approvals only: the harness approval seam carries no tool arguments and no allow-always vocabulary, so there is no per-command allowlist yet.
  • Plan review (/plan → exit_plan_mode) renders through the generic question flow — the plan markdown prints as the question's detail — rather than a dedicated diff-style view.
  • Token deltas are written unbatched; heavy streams may want coalescing.
  • Any sibling plugin in the profile that logs to stdout will paint over the REPL. Rows inserted by the machine-wide ~/.dsh/cordis.patch.yml cannot be overridden from a profile patch (the global user layer applies above it), so silence chatty MCP proxies in the global file itself — e.g. wrap the command as sh -c 'exec npx … 2>>"$HOME/.dsh/mcp-<name>.log"'.
  • ctx.commands.execute has a signature drift between the installed 0.1.1-rc.2 (agent, line, images, signal) and the published rc.6 types (agent, line, signal); the runner dispatches on arity.