Requirements and installation context
dsh-tianshu-tui is loaded by the official @deepseek-ai/dsh CLI, not run as an independent program. The README requires:
@deepseek-ai/dsh version 0.1.0-rc.7
- Node.js
^22.19 || >=24
pnpm available on PATH, because dsh plugin forwards package operations to it
The intended profile is tui. The harness data home is DSH_HOME; its documented default is ~/.dsh. The README advises using the versioned npx form of the official CLI when an older dsh executable may already be present on PATH.
Runtime behaviour
The UI consumes agent state from the session event stream and renders it with an ANSI terminal engine. It handles terminal keyboard input, including Ctrl+Q for exit, Ctrl+C for interruption, Esc for interruption or the rewind panel, Ctrl+X for cycling sessions, and Alt+1 through Alt+9 for direct session selection.
The command surface includes:
| Command |
Behaviour |
/exit |
Exits the TUI |
/restart |
Restarts the same process |
/help |
Lists registered commands; /help <cmd> shows one command |
/theme |
Opens theme selection; an argument can select a theme |
/model |
Opens model selection without an argument; an argument retains the parameterised form |
/session |
Opens session selection without an argument |
/cost |
Shows accumulated usage and estimated cost by model |
Updates and companion services
For npm installations, startup checks npm latest and can write a newer package into the profile. Set DSH_TUI_SKIP_UPDATE=1 to skip the online update check. The package manager used for updates is selected from the profile’s lock file. Updates can restart automatically when no session work has begun; /restart is available for a manual restart.
The optional vision-ask/ companion adds image-questioning capability. The community dsh-lsp plugin adds LSP model tools; the TUI can consume its lsp service for diagnostics and shares its LSP server set.
Known limits
The plugin must be used with official DeepSeek Harness packages and should not be placed in the oh-my-tianshu or @huiliyi37 TUI profile. The README does not describe this package as a standalone CLI.
Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub