dshplugin.devDeepSeek Harness Plugins
DSH Claude TUI plugin logo
DeepSeek Harness Plugin

DSH Claude TUI

2
Published by cogine-ai

Claude-Code-Styled TUI for DeepSeek Harness

Developer Toolsdsh-plugindsh-plugins

Get this plugin

Review the source, then continue to the publisher.

Get this plugin
Share on X ↗

About this plugin

Source snapshot 8/16/2026

DSH Claude TUI

A Claude Code-style terminal workflow, powered by DeepSeek Harness.

English · 简体中文

Start in one command. Use real DSH models, Sessions, tools, approvals, and subagents
through a familiar, high-fidelity terminal interface.

GitHub stars CI npm version MIT license Claude Code 2.1.227 target 118 tests

DSH Claude TUI terminal preview

[!NOTE] This is an independent community project. It is not affiliated with, endorsed by, or sponsored by Anthropic or DeepSeek. “Claude Code” identifies the version-pinned interaction target; no Anthropic source code is included. See the trademark and compatibility notice.

Start in one command

Requires Node.js 22.19+ or 24+.

npx dsh-claude-tui

That command installs and opens the TUI. You do not need a global dsh, a repository checkout, pnpm, or manual profile setup. The current release is dsh-claude-tui@0.1.1.

A real model request needs credentials for the DSH provider you select. Use /provider to inspect or enter credentials and /model (or Option+P / Alt+P) to switch among models and effort levels exposed by DSH.

For repeat use:

npm install --global dsh-claude-tui@0.1.1
dsh-claude-tui

Resume work with dsh-claude-tui --resume for the session picker, or --resume <session-id> for an exact Session.

What you get

AreaUser-facing behavior
Familiar terminalClaude-shaped welcome panel, prompt, menus, transcript, status rows, approvals, questions, and Agent states
Real Harness runtimeDSH-owned models, durable Sessions, commands, approval policies, tools, structured questions, and subagents
Live model setupProvider/model catalog, advertised effort levels, saved defaults, masked API-key entry, and credential-source visibility
Productive promptingMultiline editing, submit or steer, cancellation, history search, slash completion, and bounded @ file mentions
Clear executionReasoning and tool activity, compact/expanded results, cache hit rate, token totals, TTFT, throughput, and turn outcome
Session and Agent flowNew or resumed Sessions, graceful flush, foreground/background subagents, and an active-agent roster
Verified runtime identityWelcome panel shows the actual TUI/Harness version, bundled or system runtime, DSH Home, and tool mode

The TUI reads runtime capabilities from DSH rather than shipping hardcoded model, effort, credential, or approval behavior.

Everyday controls

Key or commandAction
EnterSubmit while idle or steer a running Agent
Shift+EnterInsert a newline
Esc / Ctrl+CInterrupt the active turn
Ctrl+RSearch prompt history
Ctrl+OExpand or compact tool details
Option+P / Alt+P or /modelOpen the live DSH model picker
/providerInspect or update DSH provider credentials
Left ArrowHide or show the active-agent roster
Ctrl+DPress twice on an empty prompt to exit cleanly

Run /help inside the TUI for the current command list.

Works with an existing DSH setup

The default launcher mode is designed to get users into the TUI without making them choose an installation strategy:

  1. Reuse a compatible DSH already associated with the selected $DSH_HOME, or a verifiable dsh on PATH.
  2. Probe it in an isolated, credential-free temporary Home.
  3. Fall back to the bundled, shrinkwrap-pinned DSH 0.1.0-rc.6 when no external runtime qualifies.

Compatible external DSH currently means >=0.1.0-rc.6 <0.1.1 plus a successful Agent/Session probe. When a Home can be shared safely, existing credentials, Sessions, settings, and unrelated profiles remain available. The launcher does not overwrite an unowned profile. An unsafe implicit default can fall back to ~/.dsh-claude-tui with a visible notice; an explicit DSH_HOME conflict fails with an actionable error instead of silently moving data.

Useful environment controls:

VariableBehavior
DSH_CLAUDE_TUI_RUNTIME=autoDefault: try compatible system DSH, then bundled DSH
DSH_CLAUDE_TUI_RUNTIME=systemRequire a compatible external DSH
DSH_CLAUDE_TUI_RUNTIME=bundledAlways use the packaged DSH
DSH_HOME=/pathUse an explicit DSH data Home
DSH_TOOLS_MODE=native|code|bothDSH tool presentation shown as Standard, PTC, or Both

Do not run different Harness versions concurrently against the same $DSH_HOME; use separate Homes for concurrent processes. Harness is pre-release, so move data only through an explicitly supported Harness migration path. See Launcher environment compatibility for the full selection and recovery contract.

Compatibility and verification

The interaction target is the observed Claude Code 2.1.227 TUI. Harness remains the source of truth; Claude-only model behavior, cloud services, account state, and private permission semantics are not simulated.

Current qualification:

  • macOS arm64 and Linux x64;
  • true-color, xterm-compatible terminals;
  • 24 independently captured PTY reference frames and 22 automated visual/semantic anchors;
  • 118/118 tests, including 80x24, 100x30, packed-tarball execution, Session resume, approvals, questions, and foreground/background subagents.

The Windows launcher path exists but is not yet release-qualified. Read the full visual and semantic qualification report or the v0.1.0 artifact-hardening baseline.

Develop and contribute

corepack pnpm install --frozen-lockfile
corepack pnpm check

The check gate runs TypeScript validation, all Vitest terminal tests, and the production build. Focused issues and pull requests are welcome; visual-parity changes should include an independently captured reference or a documented Harness-semantic boundary.

Near-term work includes richer attachments and completion, broader Session management, more plan/todo/background-job states, and qualification across more terminals and operating systems.

License

Original project code is available under the MIT License. Product names and marks remain the property of their respective owners; the MIT License does not grant rights to third-party trademarks.