dsh-MT
基于vim哲学设计的dsh的终端会话管理器;A terminal session manager for dsh, designed with Vim philosophy.
- Stars
- 1
- Language
- Rust
- Created
- Aug 20, 2026
- Updated
- Aug 20, 2026
Introduction
dsh-mt 基于vim哲学的终端会话管理器
你好,我是老王。dsh-mt 的
m是 manager,t是 terminal UI / TUI。
dsh-mt 是 DeepSeek Harness (dsh) 的终端前端:Rust + ratatui 实现 UI,Node Cordis bundle 实现 harness 集成。
项目定位
dsh-mt 有两条主线:
-
会话管理(Manager)
- 左侧会话树、归档、删除、恢复。
- 每个恢复的会话都会打开一个 tab,可以同时监视多个会话。
- 右侧轨迹面板展示目标、工具调用、待办任务。
- 下方任务回调窗口汇总已完成会话。
-
Vim 哲学
- 完整模式设计:Normal / Insert / Visual / Command / Search。
i进入对话,v进入选择,:操作程序本身,/操作当前会话。- 光标不是摆设,
h/j/k/l、n/N、gg/G都真实工作。 - 主页也向 Neovim 致敬——相似不是巧合,是诚实。
快速安装
npm install -g @zhuxi/dsh-mt
dsh-mt
dsh-mt 会自动安装依赖的 @deepseek-ai/dsh。首次运行需要 pnpm 初始化 profile。
快速使用
dsh-mt # 欢迎页 / 新草稿
dsh-mt "先跑一下测试" # 新会话并发送任务
dsh-mt -c # 继续当前目录最近会话
dsh-mt -r <session-id> # 恢复指定会话
dsh-mt --list # 只浏览会话列表
界面预览
主界面

主界面为三栏布局:左侧会话树,中间转录与消息输入,右侧轨迹详情。
会话列表

会话按工作目录分组,支持标题补全、归档视图与子代理标记。
多标签页

顶部 tab 栏展示已打开会话;gt / gT 或 :tabnext / :tabprevious 切换。
核心键位
| 按键 | 作用 |
|---|---|
i | Insert 输入 |
Esc | Normal |
h / j / k / l | 移动光标 |
Ctrl+h / Ctrl+l | 切换聚焦面板 |
: | Command 命令 |
/ | Search 搜索 |
n / N | 搜索下一个/上一个 |
gt / gT | 下一个/上一个 tab |
Esc Esc | Rewind 会话回溯 |
Space+e / Space+b | 折叠侧栏/详情 |
常用命令
:preset 选择工作模式
:model 选择模型
:thinking high 思考强度 max|high|off
:permission 权限模式
:subagents 子代理列表
:tabnext / :tabprevious
:lang en 英文界面
核心特性
会话管理
- 三栏布局:会话树 / 转录 / 轨迹。
- 侧边栏:新建、恢复、归档、删除会话。
- Tab 会话:
gt/gT一次监视多个会话。 - 轨迹面板:目标、工具调用、待办任务、子代理、轮次。
- 任务回调窗口:已完成会话直接 Enter 进入。
- Rewind:双击
Esc回到已完成回合。
Vim 体验
- Normal / Insert / Visual / Command / Search 模式。
/补全与 dsh web 当前 preset 一致。:只管理 dsh-mt 程序自身。- 全匹配搜索高亮,
n/N跳转并移动光标。 settings.yamlNeovim 风格键位。
其他
- 流式 rendering 与 Markdown。
- 动态 preset 与 slash 命令。
- 权限 / 思考强度 / 模型切换。
- 子代理管理。
- 中英文切换。
作者的话
这个项目目前主要由老王一个人维护,主要在 Linux 上使用,所以 Linux 侧会更稳定;Windows 没有测试机,适配会弱一些。
如果你也喜欢 Vim、喜欢 TUI,欢迎一起维护:提 issue、交 PR,或者在视频评论区留言。
文档
| 文档 | 内容 |
|---|---|
| docs/architecture.md | 架构与协议 |
| docs/conventions.md | 开发约定 |
| docs/commands.md | 全部命令 |
| docs/installation.md | 安装与构建 |
| docs/plugin-boundaries.md | 插件边界 |
| docs/dsh-web-alignment.md | 与 dsh web 对齐情况 |
| docs/keybindings.md | 自定义键位 |
| docs/rewind.md | 实验性 Rewind |
开发
cargo fmt --check
cargo clippy --quiet
cargo test --quiet
Troubleshooting
损坏会话日志不要同时被 dsh web 和 dsh-mt 打开。遇到 corrupt session log 时:
python3 scripts/repair_session_log.py <session.jsonl.zstd>