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.
shellcommands, 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 turnCtrl+C: Interrupt current turn; exit on two consecutive presses in idle stateCtrl+D: ExitCtrl+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