dsh-ctui0.1.1
Oh My Pi (OMP) style interactive TUI for DeepSeek Harness agents — /mode agent presets, MCP & skills management, double-Esc rewind. npm 一键安装。
Built for omp
The author tagged this package oh-my-pi.
Reports 0
No reports yet.
Readme
dsh-ctui — Oh My Pi 风格的 DeepSeek Harness TUI
DeepSeek Harness 官方没有终端 TUI——
dsh-ctui来补位:Oh My Pi(OMP) 视觉语言的全屏交互终端,覆盖 DSH-TUI 家族(dsh-cc-tui)的全部能力, 并新增/mode四模式(agent preset,可靠持久化)、TUI 内直接管理 MCP 与 Skills、npm 一键安装。
界面一览(OMP 风格)
- OMP 主题色系:accent 金
#febc38、链接蓝#0088fa、暖色用户消息底#221d1a、VS Code Dark+ 语法高亮、markdown 标题金色/行内代码浅紫。 - OMP 布局骨架:无鲸鱼/大字顶栏,启动即消息区;用户消息是整块暖色
铺底(无
❯指针、无气泡框),助手消息为纯 markdown(无●圆点), 工具调用为单行活动行(spinner/状态图标 + 工具名 + 参数,成功/失败用 toolSuccessBg/toolErrorBg 底色,结果缩进展示)。 - 状态行在编辑器边框内(OMP "main status in editor border"):输入区是
带边框的多行编辑器,顶边框下第一行就是分段状态栏——
#121212深色条 + 分段色(模式金 · 模型粉 · 路径青 · git 绿/黄 · 上下文紫 · spend 青 · cost 橙),上下文分段进度条 + 实时 TPS 仪表保留,下面才是输入行。 - 思考边框色阶:thinking 块左侧边框按推理力度着色(off 灰 → low 蓝 →
medium 亮蓝 → high 紫 → xhigh 浅紫);流式时折叠为 OMP 思考 dots 脉冲
(
✻✼❉❊✺✹✸✶),回合结束自动收起为静态 glyph,Ctrl+O 展开全文。 - 双击 Esc 时间回溯(rewind):把对话回滚到任意一条历史消息,DSH 会话 fork 后原样重放,消息自动回到输入框可编辑重发。
- 完整交互细节:
/命令菜单(竖排、Enter 执行、Tab 补全)、?快捷键菜单、 Ctrl+R 历史搜索、@文件补全、/全文搜索、Shift+Enter 多行、消息选择 模式(Shift+↑)、滚动置顶「当前提示词」与「↓ N 新消息」药丸、鼠标选择即 复制(全屏模式)。
npm 一键安装
前置:官方 dsh CLI 与 pnpm(npm install -g @deepseek-ai/dsh 与
npm install -g pnpm)。
# 一条命令装全局 CLI
npm install -g dsh-ctui
# 启动(首次运行自动初始化 profile,之后秒开)
dsh-ctui
# 恢复上次会话
dsh-ctui --resume
dsh-ctui 启动器做的事:检测 dsh CLI → 首次运行自动执行
dsh plugin --profile ctui add dsh-ctui(官方 CLI 自动初始化
$DSH_HOME/profiles/ctui,pnpm 安装并把本包追加为 bundle 层)→
dsh --profile ctui 启动。全程一条命令,无需改任何配置文件。
等价的手工路径(不装全局 CLI 也可以):
sh install.sh # 或手工:dsh plugin --profile ctui add dsh-ctui
dsh --profile ctui
Windows 用户可用仓库根目录的 dsh-ctui.cmd(等价,且 --resume 恢复上次
会话)。
/mode — 四种模式(agent preset)
/mode 切换的是 DSH 的 agent preset(官方 dsh-agent-presets
名册),四种出厂模式:
| 模式 | preset | 说明 |
|---|---|---|
standard 标准 |
功能完整的编码 Agent:文件编辑、Shell、文件/网页检索、Skills、计划、目标、子代理、工作流 | |
code 代码 |
标准模式的全部能力 + Code Mode SDK:模型用一个 TypeScript 程序组合多步操作 | |
minimal 极简 |
仅持久 bash 与 str_replace_editor 的双工具 Agent | |
cordis 创造 |
标准能力 + 读写自身运行时的 Cordis 工具集,用于创作新 preset |
用法:
/mode # 打开选择器(↑/↓ 选择,Enter 切换)
/mode code # 直接切换
/mode status # 查看当前模式与持久化状态
持久化保证(单真源,绝不回退):
- 选择先写盘后生效:写不进
~/.dsh-ctui/mode.json的切换会被拒绝,界面 永远不会显示一个重启后就消失的模式。 - 写入是原子写(临时文件 + rename),崩溃也不会留下截断文件。
- 空白会话(尚未产生任何轮次)立即生效;已开始的会话受官方 blank-only
规则锁定,选择会保存为默认并显示为
mode: A · 会话:B,/new或下次启动 生效——已选 A 绝不会悄悄变回 B。 - 重启后新会话用
~/.dsh-ctui/mode.json里的模式创建;cordis.yml里显式 配置的mode键优先于运行时选择(部署优先)。 - 旧版 dsh-cc 的选择(
~/.dsh-cc/agent-preset.json或~/.dsh-ctui/agent-preset.json,preset键)会自动迁移。 - 验证:
pnpm test里的verify-mode-prefs覆盖写入/读取/原子性/损坏文件/ 重启不回退全部用例。
MCP — TUI 内直接管理
/mcp 打开交互管理器,管理 ~/.dsh-ctui/mcp.json(TUI 管理的服务器):
/mcp # 面板:列出服务器(● 启用 / ○ 停用 · 工具数)
/mcp status # 文本报告
面板操作:a 添加(表单:传输方式 1=stdio / 2=streamable-http → serverName
→ command/url → args)、space/x 启停、d 删除(再按 y 确认)、r
刷新工具列表、Esc 关闭。
- 即时生效,无需重启:启用/添加的服务器通过官方
@deepseek-ai/dsh-mcp-client动态挂载,工具以mcp__<服务器>__<工具>注册进运行时;停用/删除立即断开。 - 与
/mode同一持久化契约:先写盘后挂载,写失败拒绝操作。 - 经典部署方式(profile 的
cordis.patch.yml里 insert mcp 行)不受影响,/mcp status同样能看到这些服务器。
Skills — TUI 内直接管理
/skills 打开技能管理器,列出注册表里的全部技能(ctx.skills.list()):
/skills # 面板:● 启用 / ○ 停用 · 描述 · 可调用性
/skills status # 文本报告(总数/启停清单)
面板操作:space/x/Enter 启停、r 刷新、Esc 关闭。
- 停用即时生效:被停用的技能从模型可见目录(loadedContext.skills)移除,
模型不再看到它;启用后立即恢复。状态持久化在
~/.dsh-ctui/skills-state.json(原子写,先写盘后生效)。 - 技能本体不动:
~/.dsh/skills、项目.dsh/skills、.agents/skills、 各 preset 自带的 skills 目录照常被扫描。
快捷键
| 按键 | 功能 |
|---|---|
Esc Esc |
时间回溯(rewind 选择器) |
/ |
命令菜单(/mode /mcp /skills /new /compact /resume …) |
? |
快捷键帮助 |
Ctrl+R |
历史搜索 |
Ctrl+O |
展开/折叠全部 thinking 与工具详情 |
Ctrl+T |
切换加载上下文面板 |
Ctrl+E |
展开折叠的早期消息 |
Ctrl+C |
中断当前回合(双击退出) |
Ctrl+D |
退出 |
@ |
文件补全 |
Shift+Enter |
多行输入 |
Shift+↑ |
消息选择模式 |
↑/↓ |
历史 / 选择器导航 |
Tab |
命令补全 |
主题
OMP 色系内置三套:dark(默认,OMP dark 移植)、light(OMP light 移植)、
dark-ansi(16 色终端回退)。启动时自动探测终端背景。
/theme # 选择器
/theme light # 直接切换
自定义主题放 ~/.dsh-ctui/themes/<名字>.json(base 必填,colors 覆盖
任意主题键;所有主题键见 src/theme.ts 的 Theme 接口)。选择持久化在
~/.dsh-ctui/theme.json。
配置(profile cordis.patch.yml)
$DSH_HOME/profiles/ctui/ 下只有 cordis.patch.yml(你的补丁层,顶层
YAML 数组,!!js 可用)。常用覆盖:
- id: ctui
config:
provider: deepseek-official # LLM 路由
model: deepseek-v4-flash # 模型
effort: max # 顶栏/状态栏启动显示的思考深度
activity: true # 工作状态行开关
activityFrames: claude # 指示器预设:claude/moon/comet/dots/…
cwd: !!js process.cwd() # 工作目录
fullscreen: true # 备用屏幕全屏模式
mode: standard # 部署级 mode(优先于 /mode 运行时选择)
构建与测试
pnpm install
pnpm build # tsc
pnpm test # 模式持久化 / MCP 存储 / skills 状态 验证脚本
pnpm tui # 从仓库直接启动(等价于 bin/dsh-ctui.js)
许可证
BSD-3-Clause。本项目是 dsh-cc-tui 的派生(同许可证),视觉语言致敬 Oh My Pi(OMP)主题体系 (can1357/oh-my-pi)。