dsh-TUI README

The project's README from github.com/ccch1mneyyy/dsh-TUI. As one markdown file: README.md.

dsh-TUI - DeepSeek Harness terminal interface

简体中文 | English

npm CI MIT License Public beta 官方收录

dsh-TUI

一个面向 DeepSeek Harness 的交互式终端界面插件:提供像素鲸鱼顶栏、实时工作状态行、流式思考展示、双击 Esc 时间回溯、上下文进度条与 TPS 仪表。 零核心改动,纯插件挂载。安装插件即可启用,卸载后不会留下核心补丁。

An interactive terminal UI plugin for DeepSeek Harness: pixel-whale header, live work status, streaming thinking display, double-Esc time rewind, a context progress bar, and a TPS gauge. Zero core changes, pure plugin mounting. Install to enable; uninstall leaves no core patches.

🎉 官方收录

本插件被 DeepSeek Harness 官方公众号 推文收录,也被 dshfind 插件目录与 GitHub Trending 收录,同时登上了Github Treding日榜第七

DeepSeek Harness 官方公众号推文收录 dsh-TUI
DeepSeek Harness 官方公众号推文收录
dsh-TUI on dshfind
dshfind 插件目录收录

Trendshift
dshfind Github Treding榜第七

核心能力

Windows Terminal 支持 Sixel 时,全屏会话记录可直接显示内嵌缩略图,点击后打开大图预览;非全屏 inline 模式仍保留文字回退。 Sixel 使用最多 256 色的自适应调色板,透明像素与背景合成;Worker 缓存量化结果,滚动时仅编码可见部分,移出视野或被浮层覆盖时擦除旧图。 附件读取与解码最多两路并发;最后一个使用者离开后取消读取,未启动的解码不再执行。多图缓存、排队任务与单帧传输均有容量上限,超限时保留文字回退。 自动探测优先 Kitty,其次使用 DA1 声明的 Sixel 能力。DSH_TUI_IMAGE_PROTOCOL=auto|kitty|sixel|none 可覆盖协议选择; DSH_TUI_DISABLE_TERMINAL_IMAGES=1、无障碍模式、非 TTY 输出以及 tmux/screen 仍禁用图形。 缺少图片依赖或编码失败时保留文字回退;强制协议也不会启用 inline Sixel。 浅色主题的面板和图片预览默认使用白底,图片预览边框使用中性色。 大图预览以对话区约 95% 宽高为预算,最长边可达 2048 像素,仍限制总像素量和后台开销;缩略图大小不变。 预览支持适应窗口、100% 原像素与 200%/400%/800% 放大,拖动、滚轮或方向按钮平移;100% 需终端报告字符格像素尺寸。 底部「打开原图」链接直接调用系统看图程序,打开未经重编码的原始附件,包括从历史会话恢复的图片。 大图弹窗用 ←/→ 或底部 ‹/› 切换上一张、下一张,显示当前张数,首尾不循环;切图回到适应窗口。

界面预览

首屏:像素鲸鱼顶栏
首屏:像素鲸鱼顶栏

快速开始

前置条件:安装Nodejs与deepseek-harness,注册DEEPSEEK_API_KEY。

安装命令:

npm install -g @deepseek-ai/dsh @deepseek-harness-tui/dsh-tui

启动命令:

# 完整命令
dsh-tui
# 如果你不想按键盘七次
dst

如果你想手动安装,可以使用仓库根目录的 install.sh:

sh install.sh
# 或:dsh plugin --profile dsh-tui add @deepseek-harness-tui/dsh-tui
# 之后 dsh-tui 与 dsh --profile dsh-tui 等价

新用户提示:若 dsh plugin 安装时报 ERR_PNPM_IGNORED_BUILDS(pnpm ≥11 默认阻止带安装脚本的依赖,如 @google/genai、protobufjs——这些脚本运行时不需要,忽略即可),在 profile 的 pnpm-workspace.yaml 里加入:

allowBuilds:
  '@google/genai': false
  protobufjs: false

/update 与 dsh-tui update 会自动写入这份配置,无需手工处理。

更面向零基础的安装流程、profile 叠加机制、源码构建与常见问题见安装与快速开始。

插件扩展与开发指南

想为 dsh-TUI 做插件/扩展?欢迎加入生态!

接缝稳定性参考

按当前实现成熟度给出的非正式分级,帮助插件作者评估投入;正式状态与兼容性协定以 准入与开发指南为准:

分级 接缝
稳定候选(形态冻结;如有破坏性变更,先在次版本弃用告警再移除) 六 设置区块 · 八 全屏场景 · 十 托管对话框 · 十一 状态行 · 十二 键盘快捷键 · 十三 条目渲染器
实验性(仍可能随 dsh-std / 准入规范演进调整) 九 决策事件 · toast 通知(ctx.tuiToast,新增)
跟随上游(稳定性由 cordis / dsh 官方机制决定) 一 会话事件 · 二 官方 prompt 槽位 · 三 技能打包 · 四 主题 · 五 system prompt 段 · 七 profile 组合

另:@deepseek-harness-tui/dsh-tui/api(纯类型入口)为实验性公开面。 @deepseek-harness-tui/dsh-tui/test-utils 公共子路径已移除——它包含可注入真实 activationId 的测试助手,不适合作为公共生产 API;需要 headless 测试请复制仓库内 scripts/lib/plugin-test-utils.ts 的思路,在自己的测试环境走正式准入流程。

公共面的导入迁移:

平台已知边界(Shadow 门禁不承诺覆盖)

TUI 的 shadow/门禁只覆盖自有托管接缝;以下由 Cordis/上游 DSH 拥有的路径属于已写死的 平台边界,不会被门禁描述为全路径覆盖:

这些路径在 verify-adapter-shadow 中以 platform-known boundary 显式列出。 此外,verify-adapter-shadow 还显式记录两类门禁已知边界:未列入 NON_SERVICE_POLICY 的内部 TUI 状态/视图辅助类,以及 src/screens/ src/components 的 React UI 状态与事件处理——它们不是 adapter capability 入口,门禁不将其描述为已覆盖。

Adapter live-probe 诚实性与 P2 边界

本轮把 Command / LocalStorage / MessageObserver 从“无实探的 staged” 推进到了“有可逆实探的 live”(在 legacy/new 模式下异步执行),并实现最小 KernelRuntime 与 passive/replay harness:

dsh-TUI (ccch1mneyyy/dsh-TUI)

Searching Database…

Что это такое?Плагин с интерактивным терминальным интерфейсом для DeepSeek Harness (DSH): шапка с пиксельным китом, живая строка статуса работы, потоковый показ размышлений, перемотка времени двойным нажатием Esc, индикатор прогресса контекста и измеритель TPS.
Это отдельное приложение или оно подключается к DeepSeek Harness?Это чистый плагин, который устанавливается поверх DeepSeek Harness без каких-либо изменений ядра — установка включает его, а удаление не оставляет никаких патчей в ядре.
Как его запустить?Нужны Node.js, CLI deepseek-harness и зарегистрированный ключ API DEEPSEEK; затем установка одной командой npm install, а в качестве альтернативы — ручной скрипт install.sh в корне репозитория.
Есть ли подводные камни при установке?С pnpm ≥11 установка может завершиться ошибкой ERRPNPMIGNOREDBUILDS — pnpm блокирует зависимости, чьи скрипты установки (например, @google/genai, protobufjs) на самом деле не нужны во время работы. Команды /update и dsh-tui update автоматически записывают исправление в pnpm-workspace.yaml.
Что я реально могу делать прямо в TUI?Работать с сессиями: /resume (просматривать, искать, закреплять прошлые сессии), /agentview для фоновых сессий, /new, /compact, /export, /btw, переключать модели на ходу, использовать нативные субагенты, ветвление сессий, автообновление, режим редактирования /vim, выделение мышью и полноэкранный редактор черновиков (Ctrl+Shift+E).
Будут ли превью картинок работать в моём терминале?Только если терминал поддерживает Kitty graphics или Sixel — сначала определяется Kitty, затем поддержка Sixel, объявленная через DA1; это можно переопределить переменной DSHTUIIMAGEPROTOCOL. В tmux/screen, при выводе без TTY и в режиме доступности используется текст.
Зачем нужен пиксельный кит-талисман?При запуске проигрывается случайная одна из трёх анимаций открытия, а до вашего первого задания можно кликом запускать сердечки и будить спящего кита, пока идут анимации бездействия (взмахи плавниками, удары хвостом, спящие Z). После первого задания он замирает в статичном кадре без каких-либо затрат ресурсов; отключить его можно в /settings → whaleIdle. Рисованная вручную графика из 22 кадров перенесена из dsh-ui-whale от @lhh010.
Что показывает живая строка статуса?Статус работы, TPS, долю попаданий в кэш, уровень рассуждений, количество входных/выходных токенов и информацию Git/сессии, с несколькими доступными темами (по умолчанию — moon8). Многострочные карточки команд могут сворачиваться в одну строку со счётчиком, а в полноэкранном режиме наведение курсора примерно на 600 мс показывает полное содержимое обрезанных карточек или сообщений.
Могу ли я делать на его основе свои плагины?Да — есть руководство по разработке плагинов с требованиями к приёму, сообщество dsh-tui-ecosystem, репозиторий plugin-template, с которым плагин готов примерно за 5 минут, и референсная реализация (dsh-working-activity). Точки расширения разделены по степени зрелости: одни — стабильные кандидаты, другие экспериментальные или привязаны к вышестоящим Cordis/DSH.
Size
46.6 MB
Stars
5K
Age
2mo
Commits · 90 Days