DeepSeek Harness Hub
← 返回列表

终端智能体面板songqikong/dash

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

在终端里驱动智能体,流式查看推理与工具调用

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/17 · 已提供中文文档

DASH — Deepseek Agentic Service Harness,Deepseek Harness 的 TUI 插件

综合分
28.5
GitHub 分
28.5
用户评分
★ Stars
2
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add songqikong/dash
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

DASH — Deepseek Agentic Service Harness

License

一个用于官方 dsh CLI 的终端 TUI,
像 dsh-tui 一样以 dsh profile 的方式启动,
但按键绑定、编辑语义、状态栏和设置面板
遵循 oh-my-pi 的约定。内核是纯 DSH:该插件通过官方 ctx.agents.create() 工厂创建真正的
agent,用 agent.followup() 驱动轮次,用 agent.cancel() 中断,并渲染流式的
session/event 事件流。工具调用、推理、会话持久化、
压缩和 agent 预设全部走 DSH 的官方服务。UI 是
零依赖的原始 ANSI 终端渲染(没有 React/Ink)——整个插件
都在单个 index.ts 中。

安装

前置条件:官方 dsh CLI(npm install -g @deepseek-ai/dsh)。

git clone https://github.com/songqikong/dash.git
cd dash
npm install          # first time: installs typescript and other build deps
sh install.sh        # compiles src/.ts → dist/, creates ~/.dsh/profiles/dash + ~/.local/bin/dash
dash                 # launch (equivalent to dsh --profile dash)

DASH_PROVIDER / DASH_MODEL 环境变量会覆盖默认
模型;LLM provider 配置完全复用 $DSH_HOME/settings.yaml
(与 Web Models 页面写入的是同一个文件)——无需单独设置。

一个 TUI,_官方 DSH 端到端_

01 · 原生终端渲染,零依赖

整个 UI 都是原始 ANSI:diff 渲染只重绘发生变化的行,kitty
键盘协议(CSI-u)提供逐键精度,SGR 鼠标支持(滚轮
滚动、在列表浮层中移动选择),备用屏幕加上
隐藏的硬件光标。没有 React/Ink,没有 node_modules 负担——插件主体
就是一个文件,其唯一的运行时依赖是官方 DSH 包。

02 · 完整的 oh-my-pi 风格编辑

多行输入(kitty Shift+Enter / Ctrl+J)、按词/按行移动和删除、
kill-ring(Ctrl+Y / Alt+Y yank-pop)、撤销(Ctrl+-)、字符跳转(Ctrl+] /
Ctrl+Alt+])、Ctrl+G 外部编辑器往返、粘贴、@ 文件补全
(递归进入目录)。所有按键绑定都来自 oh-my-pi 的 action
表,并可在 ~/.dash/keybindings.yml 中重新映射;/hotkeys 显示
当前生效的绑定。

03 · 流式转录

Markdown 渲染(标题/列表/引用/代码高亮/表格/链接,
流式安全——未闭合的代码块和表格会降级为普通段落
而不会破坏画面)、流式推理折叠(Ctrl+T 切换)、
工具卡片(⛭/✓/✗ 状态,参数折叠 Ctrl+O,结果摘要)、消息
元数据(时间/时长/模型)、固定提示词头部,以及在浏览历史时
显示 ↓N 未读胶囊。

04 · 状态栏仪表盘

omp 风格状态行:A(输入框上方)显示 ⬢ model · preset · ◉
thinking effort · in/out tokens,C(输入框下方,底行)显示
活动(spinner + ⛭ 工具名 / ⏵ 模型自报工作 / ✓ 回合统计)、
队列、状态提示,以及 /help。两行都位于主题背景带上,
左右分段均衡——右侧承载 TPS 迷你走势图、缓存
命中率、会话已用时间、恢复的上下文窗口指示器(使用量/总量
+ 10 格条形),以及 git 分支 / cwd / 会话标题。

05 · 模型角色系统

四种角色——default / smol / plan / task——其值支持
provider/model:effort 后缀,持久化到
~/.dash/config.yml 中的 modelRoles。三列选择器(Alt+M,Tab 移动列 · j/k
移动 · Enter 深入),Ctrl+P 循环当前角色的模型,Alt+P
换入临时模型,Shift+Tab 循环思考强度。默认
强度可在设置面板中配置。

06 · 会话工作流

/resume 选择器(按 mtime 排序,并行加载标题,Enter 通过
事件日志回放恢复,d 删除 dash- 会话)、/rename、/new、
持久化(~/.dsh/sessions)、autoResume 在启动时恢复最近的会话。
双击 Esc 进入时间回溯:从
会话日志分叉出一个种子会话,把那条消息放回编辑器,编辑并重新发送
(omp 的回溯语义)。

07 · 官方 agent 预设模式

DSH 的四种官方 agent 模式可直接使用:Standard(全功能)、
PTC(Code Mode SDK)、Minimal(仅持久 bash +
str_replace_editor)、Creative(预设创作)。通过
/preset 选择器或「Session mode」设置项切换;空白会话立即重建,
有历史的会话在 /new 后生效;选择会
持久化为 preset.id。加载使用官方
discoverPresets / mountPreset,位于 agent 工厂的 setup 钩子中。

08 · omp 风格设置面板

/settings 是 oh-my-pi 的 SettingsList 交互的完整移植:四个标签页
(appearance / model / interaction / session),带分组侧边栏(两个或
更多分组左右分列,非活动分组变暗),跨标签页的输入即搜索模糊
搜索(Tab 跳到下一个匹配的标签页),Enter/Space 循环
取值,3 行描述区域,变更标记,Esc 在关闭前先退出搜索。
12 个真实旋钮(语言、主题、色盲模式、spinner
帧、默认思考强度、隐藏推理、advisor、双击 Esc、队列
投递、回合提示音、静默启动、autoResume)——全部实时应用并写入
~/.dash/config.yml。

08½ · 启动欢迎屏

会话开始前,你会看到一个 omp 风格的欢迎屏:一个尖角
单列框(无圆角元素,一切居中),带有粗体 DASH
字标(ANSI Shadow 艺术字)+ 模型/提供商,然后是一个 Tips 区块(所有提示都
位于框内)、当前 agent 预设(高亮——它也出现在
输入框上方的状态行 A 上),以及最近会话(实时读取自
~/.dsh/sessions,带相对时间)。一旦发送第一条消息,它就会让位给
对话记录。

09 · Agent Hub
Alt+A / /hub 打开子代理树:缩进、标签、模式、
运行/非活动状态、过滤;Enter 显示详情,s 向
子代理发送消息(跟进),x 中断它(祖先授权)。

10 · Advisor — 第二模型旁观者

/advisor on 启用它:每轮结束后,第二模型对该轮发布一条简短
评论(前缀为 advisor:),在主记录中可见。

11 · TTSR — 时间旅行流式规则

在 ~/.dash/rules.yml 中编写正则 → 提示词对。当流式输出命中
某条规则时,DASH 通过 agent.steer() 注入提示词并标记一个 ⚠ 卡片 —
每轮去重,在不增加上下文负担的情况下纠正行为。

12 · DSH 命令注册表 + 技能 + 项目指令

/plan /goal /compact 等会自动转发到 DSH 命令
注册表;/skills 列出可用技能;/init 将
AGENTS.md/CLAUDE.md 作为指令注入;/think /focus 注入
推理/专注引导。可选的回合结束提示音(notify.turnEnd)。

13 · 智能 / 命令菜单

在提示符处输入 / 会在输入框上方打开命令菜单。输入以
模糊过滤,↑↓ 选择。Tab 补全高亮的命令(不会出现
双斜杠),Enter 直接运行高亮的命令。带
参数的命令支持 zsh 风格补全:输入 /models  然后按 Tab,提供者
列表会出现;选择一个提供者,再按 Tab,其模型会显示出来。同样
适用于 /lang 、/theme 、/role 、
/advisor  和 /preset  — Tab 接受一个候选项,并且当
存在更深层级时,会保持菜单打开以输入下一个参数。

键位绑定(oh-my-pi 约定)

| 按键 | 行为 |
|---|---|
| Enter | 发送(流式传输时作为跟进排队) |
| Ctrl+Enter / Ctrl+Q | 将跟进消息排队 |
| Esc / Ctrl+C | 中断生成(空闲时:Ctrl+C 退出,Esc 请求确认) |
| Ctrl+P / Alt+P | 循环切换模型 |
| Alt+M | 模型选择器(j/k 移动 · Tab 切换列 · Enter 选择) |
| Alt+R | 重新发送上一条指令 |
| Ctrl+R / ↑ | 输入历史 |
| Ctrl+N | 新会话(/new) |
| Ctrl+T | 切换推理 |
| Ctrl+O | 展开/折叠工具参数 |
| Ctrl+L | 重置显示 |
| PgUp/PgDn · Alt+↑/↓ | 滚动历史 / 出队 |
| Mouse wheel | 滚动历史;在列表浮层中移动选择(SGR 鼠标,自动启用) |
| / + Tab / Enter | 补全 / 运行高亮的命令;Tab 补全参数 |
| /help /clear /models /new /exit /model / /status | 斜杠命令 |
| /plan /goal /compact 等 | 转发到 DSH 命令注册表 |

完整列表见 FEATURES.md;绑定可在
~/.dash/keybindings.yml 中重新映射。

会话控制

- /new 新会话 · /resume 恢复/重放/删除 · /rename  重命名 · /clear 清屏
- /preset 切换代理预设(standard/PTC/minimal/creative) · /settings 设置面板
- /model / 设置模型 · /role  切换角色 · /theme  切换主题
- /lang  切换 UI 语言(默认英语)
- /plan 计划模式开关 · /goal /compact(DSH 注册表) · /hub 智能体中心
- /advisor  · /skills · /init · /think /focus · /status · /hotkeys

配置

- 默认模型:配置文件 cordis.patch.yml 中的 agent-default-model
(默认为 opencode-go / deepseek-v4-flash;凭据
来自 $DSH_HOME/.credentials.yaml)。
- 启动覆盖:DASH_PROVIDER / DASH_MODEL 环境变量。
- 用户设置:~/.dash/config.yml(语言、主题、spinner、effort、
advisor、preset、autoResume 等,由设置面板写入);
~/.dash/keybindings.yml(键位映射);~/.dash/rules.yml(TTSR 流规则)。
UI 语言默认为英语;可通过 /lang  或
设置面板中的 «Language» 项切换。
- 权限:终端信任模型 —
danger-full-access + policy: never(无审批对话框;终端
即信任边界)。如需收紧,请编辑配置文件的 cordis.patch.yml
(permission 行的 defaultPreset 必须与
sandbox-policy / approval 旋钮匹配,否则启动失败)。

明确不在范围内(它们需要 oh-my-pi 的私有原生技术栈,DSH 不提供)

- 60+ 提供商生态系统(DSH 有自己的提供商注册表)
- LSP(14 个操作)/ DAP(28 个操作)工具(DSH 没有此类技术栈;read/grep/glob
由 DSH 工具覆盖)
- /collab 中继(依赖 omp 服务器)
- STT/语音 /live(无音频后端)
- 图像协议(kitty/sixel 图像显示)、OSC 5522 剪贴板图像
- 原生进程内 ripgrep/brush(DSH 提供等效工具)
- 会话导出/分享对话框、会话树面板(终端使用 /resume)

开发

源代码位于 src/(TypeScript),编译输出位于 dist/。

npm install        # 首次:typescript / @types(构建依赖)
npm run build      # 将 src/.ts 编译为 dist/
sh install.sh      # 重新编译并将 dist/ 复制到 ~/.dsh/profiles/dash/node_modules/dash-tui
dash               # 启动(Ctrl+C 退出)

sh install.sh --no-build 跳过编译,仅执行复制。编辑
src/.ts 后,重新运行 sh install.sh 以应用更改。运行时依赖仅为
官方 DSH 包(@deepseek-ai/dsh-llm、@deepseek-ai/dsh-agent、
@deepseek-ai/dsh-agent-presets),从共享的
~/.dsh/profiles/node_modules 目录解析。

pty 集成测试位于 tests/(b1–b8:真实聊天往返以及
按键驱动的交互):

cd tests && python3 b1.py   # 每个套件独立验证编辑器/对话框/命令/恢复/设置/模式

仓库布局

| 路径 | 用途 |
|---|---|
| src/index.ts | 插件主体(智能体生命周期 + 事件投影 + 渲染 + 输入分发) |
| src/keys.ts | 按键解析(kitty/CSI/legacy)+ oh-my-pi 操作注册表 |
| src/editor.ts | 多行草稿编辑器(kill-ring/撤销/字符跳转/外部编辑器) |
| src/markdown.ts | 流安全的 Markdown → ANSI 渲染器 |
| src/config.ts | ~/.dash 配置读写(扁平点分键,YAML 持久化) |
| src/dsh.d.ts | 官方 DSH API 接口的环境声明 |
| dist/ | tsc 输出(由 install.sh 复制到 profile 中) |
| tests/ | b1–b8 pty 回归测试 |
| cordis.patch.yml | profile 补丁层(模型/权限/沙箱) |

许可证

MIT。参见 LICENSE。

- GitHub
- 主页

_为始终开启的终端而打造_

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群