DeepSeek Harness 插件

deepseek-harness-tui-yangeyu

Claude Code-inspired terminal client bundle for DeepSeek Harness(英文原文)

跳到安装方式

来源信息

GitHub 仓库
Yangeyu/deepseek-harness-tui
最近更新
2026年8月15日
分类
模型与服务商
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/Yangeyu/deepseek-harness-tui
插件名:deepseek-harness-tui-yangeyu
作者:Yangeyu

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

@yangeyu/deepseek-harness-tui

> [!IMPORTANT] > Development has moved to Yangeyu/deepseek-harness-community. Install the maintained TUI with npm install --global https://github.com/Yangeyu/deepseek-harness-community/releases/download/v0.1.1/yangeyu-dsh-tui-0.1.1.tgz, then run dsh-tui. This repository and its original release remain available for historical installs.

A keyboard-first, scrollback-preserving terminal client bundle for DeepSeek Harness.

This is a third-party integration package. It deliberately lives beside the Harness checkout instead of under deepseek-harness/packages/:

Workplace/
├── deepseek-harness/       # upstream project
└── deepseek-harness-tui/   # this package

Keeping the repositories separate makes the ownership boundary explicit and lets the TUI follow Harness through its public plugin and ApiProxy interfaces.

Current status

The initial terminal client supports:

  • creating, resuming, and switching sessions;
  • streaming assistant text, reasoning, tool calls, and tool results;
  • terminal Markdown rendering for headings, emphasis, lists, links, quotes,

tables, and fenced code blocks;

  • collapsed-by-default thinking blocks with an eight-line viewport, foreground

hover highlighting, click-to-toggle, and wheel scrolling;

  • Claude Code-style edit cards with exact changed-line counts, contextual lines,

absolute line numbers when the applied hunk can be located, syntax colors, and red/green changed-line backgrounds;

  • last-turn rewind with a changed-file checkpoint preview, workspace restore,

conversation fork, and original-prompt refill;

  • Codex-style user prompts with highlighted foreground text, a marker, and

no persistent speaker labels;

  • queueing input while a turn is running and steering the active turn;
  • cancelling a running turn;
  • model and reasoning-effort selection;
  • a Codex-style model surface that temporarily replaces the composer and moves

from model selection to a separate reasoning-effort step;

  • approval and structured-question dialogs;
  • reconnect and history resynchronization;
  • the same durable turn/step timing, decode throughput, cache-hit, token-usage,

and context-pressure projections shown below the Harness Web composer;

  • bounded tool output with expandable details; and
  • terminal scrollback instead of an alternate-screen application.

The UI follows the low-chrome interaction style of coding-agent terminals, but it does not copy Claude Code internals. The renderer is @earendil-works/pi-tui behind a transport-neutral controller, so it can be replaced without moving session logic into UI components.

Install

The package supports DeepSeek Harness >=0.1.0-rc.5 <0.2.0. Install the tagged GitHub release directly into a tui profile, then start it:

dsh plugin --profile tui add github:Yangeyu/deepseek-harness-tui#v0.1.0
dsh --profile tui

The repository commits its verified lib/ artifacts, so installing from a tag does not run a package build on the target machine. To install the downloadable release tarball instead:

dsh plugin --profile tui add ./yangeyu-deepseek-harness-tui-0.1.0.tgz
dsh --profile tui

The bundle's cordis.patch.yml layers the required Host services and terminal entry point over the automatically installed dsh-base profile.

Develop

pnpm install --frozen-lockfile
pnpm run check

For a local end-to-end run from a neighboring Harness checkout:

cd ../deepseek-harness
pnpm dsh plugin --profile tui add ../deepseek-harness-tui
pnpm dsh --profile tui

Command-line options

dsh --profile tui [options]

--resume <session-id>  Resume an existing session
--cwd <path>           Start a new session in this directory
--no-color             Disable ANSI color
-h, --help             Show help

Keyboard and input behavior

InputBehavior
EnterSend while idle; steer while running
Alt+EnterQueue explicitly
EscCancel the active turn
Ctrl+CCancel while running; exit while idle
Ctrl+OToggle expanded tool details
Shift+TabCycle supported reasoning efforts
Esc EscPreview and confirm the last-turn workspace and conversation rewind

The model selector uses / (or 19) in both the model and reasoning effort steps. Enter advances or applies the complete selection to the current session; the Harness Host also saves it as the default for new sessions, matching the current Web client behavior.

Thinking blocks highlight on pointer hover and toggle on click. The pointer wheel scrolls expanded thinking and long inline diffs inside their bounded viewports. Mouse tracking keeps keyboard focus in the editor and preserves the main-screen scrollback model; hold the terminal's mouse-bypass modifier (usually Shift) when native terminal text selection is needed.

Rewind snapshots the Git worktree immediately before the first step of each user-authored turn. Esc Esc shows the changed paths and line counts, then one confirmation restores the checkpoint, forks the conversation before that turn, and returns the original prompt to the editor. The implementation never runs git reset and never changes the user's Git index. Checkpoints are process-local and cover Git-tracked plus non-ignored untracked files; ignored files and submodule contents are outside the current restore scope.

Slash commands: /help, /new, /resume, /model, /details, /status, /rewind, and /exit.

Architecture

Cordis bundle entry
  -> in-process ApiProxy client
     -> HarnessController (session and stream state)
        -> pi-tui application (input, dialogs, rendering)
           -> TranscriptComponent (pure event/view projection)

The TUI consumes tool-provided presentation intent (generic, terminal, diff, and related cards) rather than branching on tool names. New tools can therefore add render behavior through Harness's existing presenter extension point without changing the terminal controller.

Applied diff line numbers are resolved asynchronously against the workspace and cached outside the renderer. Missing, deleted, or ambiguous historical hunks still render correctly without inventing an absolute line number.