Preface

The philosophy of DSH is “everything is a plugin”; the community directory is a standalone site, not an official app store. For developers who frequently use DeepSeek Harness on corporate jump hosts, headless servers, or high-latency SSH sessions, the interface does not need a browser, mouse, or heavyweight terminal framework. As long as it can run stably in an ANSI-capable terminal, it is sufficient.

dsh-ssh-tui is designed for these scenarios: it places information such as model thinking, tool calls, sub-agents, plan mode, and session state into a pure terminal interface, making it suitable for slow or remote SSH usage. Below, we introduce its positioning, core features, installation method, and configuration items to note.

What is it

dsh-ssh-tui is a DeepSeek Harness terminal plugin maintained by cyjyyd under the MIT license.

Its one-sentence positioning is: A DeepSeek Harness terminal for jump hosts, headless servers, and high-latency SSH.

It uses pure terminal rendering, requiring no browser, mouse, or heavyweight terminal framework. For keyboard-only remote sessions, it compresses key information during DSH execution into the terminal window for display, rather than requiring the user to switch to a browser or desktop environment.

Core Features

Thinking Stream and Response

  • Model thinking stream is collapsed by default and shows a thinking animation.
  • After thinking is complete, it collapses to “Thought Done”.
  • Collapsed thinking content can be expanded individually.

Workspace Markdown

The workspace supports Markdown rendering, including:

  • Multi-level headings
  • Bold
  • Italic
  • Inline code
  • Code blocks
  • Lists
  • Quotes
  • Links

Prompt Injection Cards

Injected content such as system prompts, system-reminder, and AGENTS.md are collapsed into cards by default.

Press Enter to expand and view the full text.

Tool Call Display

Tool calls are displayed in a card-based manner:

  • Edit tools display git-style diffs.
  • shell commands, paths, and JSON parameters/results are readable.
  • Tool call status is visible, facilitating the determination of completed or failed steps within the terminal.

Transcription Area Review

The transcription area supports:

  • PgUp / PgDn
  • Mouse scroll to review
  • Clicking on thinking or tool header rows to expand/collapse

Status Bar

The status bar displays:

  • Link chips
  • Session number
  • Active verbs
  • Working directory

Session Recovery

The historical session launcher allows you to select a session before entering.

When recovering an old session, it switches to the working directory recorded by that session.

Terminal Window Status

The terminal window title bar displays the running status.

When a task is completed, the terminal bell can ring. This terminal bell can be disabled with DSH_TUI_NO_BELL=1.

Approval, Questioning, Planning, and Sub-agents

dsh-ssh-tui supports the following interactions and status displays:

  • Approval
  • ask_user_question
  • Plan mode
  • Sub-agent progress
  • /mode
  • /model
  • /resume
  • /disconnect

Each sub-agent is an independent collapsible card with a spinning animation while running.

Plan mode, pending plans, and user questions also display corresponding cards and bottom prompts.

Installation and Enabling

Prerequisites

Before use, you need:

  • Node.js ≥ 22.19
  • DeepSeek Harness CLI
  • pnpm
  • An ANSI-capable terminal

dsh-ssh-tui must run in a real terminal or SSH session. When there is no TTY, the TUI will exit directly.

Installation Command

It is recommended to first confirm the current DSH CLI is available, then use the profile installation command:

dsh plugin --profile tui add dsh-ssh-tui@latest

After installation, start it:

dsh --profile tui

The current dsh requires --profile. If written as a plugin add command without a profile, it may report a missing option error.

Update Command

When updating, @latest must be included:

dsh plugin --profile tui add dsh-ssh-tui@latest

If @latest is not included, it may stick to the version pinned in pnpm-lock.yaml. Verified sources mention that a common situation is pnpm-lock.yaml stopping at 0.3.7, while package.json shows the version as 0.4.1.

Uninstall Command

To uninstall, use:

dsh plugin --profile tui remove dsh-ssh-tui

Typical Usage

Launching and Creating Sessions

Default launch:

dsh --profile tui

Explicitly create a session:

dsh --profile tui --new

Specify model:

dsh --profile tui --model deepseek-v4-flash

Specify provider:

dsh --profile tui --provider <id>

Disable colors:

dsh --profile tui --no-color

Recovering Historical Sessions

Open historical session selector:

dsh --profile tui --resume

Recover a specific session:

dsh --profile tui --resume <session-id>

The selector allows you to select a historical session before entering. When recovering an old session, it switches to the working directory recorded by that session.

Common Keys

  • Esc: Cancel selection, return to bottom, or cancel current turn
  • Ctrl+C: Interrupt current turn; exit on two consecutive presses in idle state
  • Ctrl+D: Exit
  • Ctrl+L: Redraw entire screen

Slash Commands

Verified slash commands include:

/help
/find
/model
/provider
/language
/view
/disconnect
/submodel
/subeffort
/mode
/resume
/status
/subagents
/usage
/setup
/clear

Use Cases and Notes

Who is it for

It is suitable for these scenarios:

  • Corporate jump hosts
  • Headless servers
  • High-latency SSH
  • Slow links
  • Remote sessions relying only on keyboard and terminal

If your work environment requires a browser, mouse, or desktop-level layout, this plugin is not the primary target.

Session Locks and Host Process

A second instance of the Host cannot be opened simultaneously with the same sessionId.

Lock file location:

$DSH_HOME/tui-locks/

Display channel location:

$DSH_HOME/tui-socks/

Disconnect Strategy

By default, disconnection pauses the current turn.

If you want the Host to continue running the current turn in the background, you can use:

/disconnect continue

You can also configure:

ssh-tui.disconnect: continue

Or set the environment variable:

DSH_TUI_DISCONNECT=continue

When there is no display and it has been idle for more than 6 hours, the Host will exit automatically. The idle threshold is controlled by the following configuration:

DSH_TUI_DETACHED_IDLE_MS

Other Configurations

Disable terminal bell:

DSH_TUI_NO_BELL=1

Disable startup update check:

DSH_TUI_NO_UPDATE_CHECK=1

Subscription Companion

SuperGrok / X Premium subscriptions require the installation of a companion plugin:

dsh-llm-xai-oauth

The access token expires after about 1 hour.

Pre-installation Checks

dsh-ssh-tui will be added to the DSH profile’s dependencies and will start with the current DSH environment. Since it may perform operations related to the permissions of the current DSH process, you should check the source code and MIT license before installation to confirm that the version, dependencies, and command behavior meet expectations.

Links

Directory page:

https://dshfind.com/zh/plugins/cyjyyd/dsh-ssh-tui

GitHub repository:

https://github.com/cyjyyd/dsh-ssh-tui