A terminal chat for the DeepSeek Harness: the conversation is the screen, the agent's tools fold into single lines, and what it asks to do you approve with a click.
curl -fsSL https://auth-com-br.github.io/dsh-tui/install.sh | sh
Then type dsh — no --profile — and choose a model with /models. No sudo: everything goes into your home folder.
✓ bash ls src • 0.1s composer.js index.js terminal.js ui.js • Found the files. Updating the other project's README. ⠸ Running edit {"path":"/home/you/site/README.md"… ─ ⠏ Working 12s · ~40 tok/s ─────────────────── esc interrupt ─ ▲ approval needed · edit {"path":"/home/you/site/README.md","old":"…","new":"…"} escalate sandbox: the file is outside the workspace › 1. Allow once (y) 2. Reject (n) ↑↓ · enter or click · y allow · n/esc reject deepseek-v4-flash · ~/project ctrl+t thought ctrl + c quit
No boxes, no chrome: the transcript is anchored at the bottom, always in view, with the model and folder in a quiet footer.
Each command the agent runs is one line: ⠋ Running while it runs, ✓ or ✗ when done, its output summed up below.
When the agent wants to reach outside its workspace, the answers are listed: pick one with the arrows, Enter, a click, y or n.
The model's reasoning stays folded; a click or ctrl+t opens and closes it. esc interrupts an answer at any time.
ctrl+j breaks the line, as in Claude Code and OpenCode; Enter sends.
A drag selects the conversation alone and copies it on release; ctrl+v attaches the clipboard's image; /copy copies the last answer.
/models sets up providers: an API key, or a server of your own, local or remote.
Colors are derived from your terminal's background, light or dark, rather than fixed values.
enter | send the message |
ctrl + j | new line in the message (alt + enter too) |
ctrl + ↑ / ↓ | messages sent before |
wheel, ↑ / ↓, page up/down | scroll the conversation |
| drag | select in the conversation, copied on release |
ctrl + v | attach the image on the clipboard |
ctrl + t | open or fold the thinking |
esc | interrupt the answer; back to the latest |
/help | every key and command |
ctrl + c | quit |
~/.local/share/dsh-tui/node, checked against its SHA-256 sum.~/.local/share/dsh-tui/harness.tui profile to it.~/.local/bin a dsh command that opens dsh-tui with no --profile (the harness's own commands, such as dsh web and dsh plugin, still work), and dsh-tui, which always opens it. A dsh of your own already there is left alone.To update, run the same command again. Your settings, sessions and keys in ~/.dsh are left alone. The installer's code is docs/install.sh — read it before you run it, if you like.
To remove it: rm -rf ~/.local/share/dsh-tui ~/.local/bin/dsh ~/.local/bin/dsh-tui. Your sessions and settings stay in ~/.dsh.