Introduction

DeepSeek Harness (DSH) is a command-line tool, and its native interaction is usually limited to text input and output. To improve the user experience, this post introduces xp266/dsh-tui, a terminal UI plugin based on the Ink framework that aims to take over the entire terminal interaction interface of DSH.

What Is It?

xp266/dsh-tui (command name dshtui) is a Terminal User Interface (TUI) plugin for DeepSeek Harness. It is mounted as a Bundle plugin in the dsh configuration profile and provides a graphical interaction environment through the Ink framework. The project is maintained by developer xp266 and is released under the MIT license.

Core Features

The plugin has the following capabilities:

  • Full terminal takeover: Based on the Ink framework, it takes over the entire terminal interaction interface.
  • Streaming interaction: Supports streaming chat output.
  • Information display: Provides collapsible tool cards and dialog boxes.
  • Extensibility: Provides a plugin contribution API, allowing all visible surfaces to be overridden.

Installation and Enabling

Before using this plugin, ensure that the DeepSeek Harness CLI (@deepseek-ai/dsh) is installed and that the Node.js version requirement is met (^22.19.0 or >=24.0.0).

Install and run globally:

npm install -g @xp266/dshtui@latest
dshtui

Install the plugin manually:

Add the plugin to any dsh configuration profile:

dsh plugin --profile <name> add @xp266/dshtui@latest
dsh --profile <name>

Build and run from source:

git clone https://github.com/xp266/dsh-tui.git
cd dsh-tui
pnpm install
pnpm build
npm install -g .
dshtui

Typical Usage

When the dshtui command is run for the first time, the plugin automatically resolves and installs the configuration profile. It then starts dsh --profile <name>, takes over the current terminal session, and allows users to stream chat, view tool cards, and use dialog box features in the TUI interface.

Use Cases and Notes

This plugin is suitable for developers who want to operate DeepSeek Harness with a graphical interface. Because the plugin takes over the current terminal, make sure to confirm that the source code and license meet your expectations before installation.