← 返回列表
未验证
在终端里驱动智能体,流式查看推理与工具调用
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 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 - 主页 _为始终开启的终端而打造_
扫码进群