Bundle
@realchenwenqiao/dash
DASH — a pi-tui terminal front door for DeepSeek Harness agents, installed as a dsh bundle plugin
- Source
- realchenwenqiao
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 11 days ago
Readme
# DASH — DeepSeek Awesome Harness [](https://github.com/topics/dsh-plugin) [](https://github.com/realchenwenqiao/dash/stargazers) [](LICENSE)  **DASH** 是 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 的终端原生前端:同一套「一切皆插件」的 agent 内核与多模型切换能力,跑在你的 shell 里。 `dash` 是一个挂载在官方 `dsh-base` 之上的 Cordis 插件(bundle),通过 `dsh plugin add` 一键安装。**DASH** = **D**eepSeek **A**we**S**ome **H**arness。 > 英文版请见 [README_EN.md](README_EN.md)。 ## 为什么是终端? - 从命令行到编码 agent,只差一次回车。 - **多模型**同一会话 —— `/model` 无需离开 TUI 即可切换 provider。 - 可脚本化、可管道、SSH 下照常可用。 ## 特性 - **全屏 TUI**:ANSI Shadow 的 DASH logo、滚动回看(banner、提示、正文、输入框作为同一条内容流滚动)、底部信息栏(`cwd (branch)` + 累计 token + session id)。 - **多行编辑器**:历史、撤销、kill-ring —— `Enter` 发送,`Shift+Enter` 换行。 - **Markdown 渲染**:代码块、列表、行内代码、表格。 - **思考折叠**:推理默认隐藏,`Ctrl+O` 展开为暗色块。 - **工具输出折叠**:每个工具结果折叠为一行 `↳ N lines` 摘要,`Ctrl+T` 展开为代码块;错误保持内联。 - **斜杠命令**:带搜索框菜单 + accent 高亮。 - **多模型**:`/model` 选择器(共享 llm 目录)。 - **API key**:`/login` 通过凭证 seam 存储并激活 provider 路由。 - **工具卡片**:参数摘要;输出折叠,展开才显示。 - **会话恢复**:`/resume` 在输入区打开选择器;`dsh tui --resume <id>` 直接恢复。 - **回滚(时间旅行分叉)**:双击 `Esc` 在输入区打开**行为账本**——每条用户消息、工具调用、助手回复各一行,带 `[user]`/`[tool]`/`[assistant]` 标识 + turn 号 + 实测时长。选中一行即分叉回该 turn 边界——非破坏性分支,不是 undo 栈。 - **实时工作状态 footer**:累计 token · 流式 TPS(`64t/s`)· 上下文占用预警(≥80% 黄、≥95% 红)· 运行中工具(`⚙ 工具名`)。 - **`@` 文件补全**:输入 `@` + 路径前缀,用 `fd`/`fdfind` 模糊补全文件路径。 - **鼠标选择即复制**:拖拽选择文本,松开自动复制到剪贴板(OSC 52),双击选词、三击选行、滚轮滚动。 ## 从 dsh 继承了什么 `dash` 完整复用 `dsh-base` 插件树——agent 相关的任何东西都没有重写: - **一切皆插件的内核** —— Cordis 运行时、agent loop、工具注册表、会话日志,全部来自上游。 - **多 provider 的 llm** —— `/model` 在共享 `ctx.llm` 目录上切换。 - **技能系统** —— `skill-filesystem` 扫描 `~/.agents/skills` 与 `<project>/.agents/skills`,与 Claude Code / Codex / Grok 共享的技能,dash 的模型经 `skill` 工具直接可用。 - **工具** —— bash、fs、web、subagent、todo 等原样经 `ctx.tools` 注册。 - **会话持久化与恢复** —— `--resume <id>` 与 `/resume` 恢复持久化会话。 - **plan 模式、命令、凭证、设置** —— 宿主 seam 及其 handler。 ## 我们的理解 dash 增加的不是新能力,而是一个新 surface——以及几个我们觉得终端比浏览器表达得更好的想法: - **终端是 agent 的汇编语言。** dsh 的「一切皆插件」是把 Unix 哲学用在 agent 上;dash 想让组装一个 agent 的感觉,像组装一个 shell 环境。 - **回滚是分叉,不是撤销栈。** 双击 `Esc` 打开行为账本——每条用户消息、工具调用、助手回复各一行。选中一行分叉回该 turn 边界,旧分支(fork 谱系)被保留而非销毁。只有 append-only 的行为日志能表达这一点;纯聊天的 harness 只能回滚消息。 - **行为账本,而不是消息列表。** 对齐 web 版 Trajectory 视图:`[user]` / `[tool]` / `[assistant]` 行带 turn 号与实测时长,让插件/工具活动可见。 - **输入框跟随内容流。** 没有 dock 固定的输入框——编辑器随历史一起滚走,Claude Code 式。 - **同一色系。** 所有品牌相关元素都落在 DeepSeek 靛蓝→天蓝渐变(`#4D6BFE → #3982FF → #2498FF`)上。 ## 安装 dash 以 dsh bundle 插件的形式安装到官方 dsh CLI 上: ```sh # 1. 安装官方 dsh CLI(已装可跳过) npm install -g @deepseek-ai/dsh # 2. 把 dash 插件装入 tui profile(`dsh plugin add` 会自动识别 # package.json 里的 `dsh.bundle.patch` 并挂进 bundle 层) dsh plugin --profile tui add @realchenwenqiao/dash # 3. 启动 dsh --profile tui ``` > npm 发布前,也可从源码运行: > > ```sh > git clone https://github.com/realchenwenqiao/dash.git > cd dash > pnpm install > pnpm run build > pnpm dash tui > ``` 需要 Node.js 与 pnpm。退出时用 `dash tui --resume <session-id>` 恢复(id 会在退出时打印),或在 TUI 内用 `/resume`。 ## 用法 输入提示词,回车。会话流式输出回复与工具活动,底部信息栏显示累计 `↑ in ↓ out R reasoning`、缓存命中率、上下文占用与当前 session id(供 `--resume` 使用)。 ### 斜杠命令 | 命令 | 作用 | |------|------| | `/model` | 切换模型——遍历 llm 注册表里每个 provider 的选择器。 | | `/login` | 为某 provider 添加 API key,激活其路由。 | | `/logout` | 清除当前 provider 存储的凭证。 | | `/resume` | 选择已保存会话,在其 workspace 中恢复。 | | `/new` | 开始全新会话。 | | `/clear` | 清空正文。 | | `/export` | 把会话日志导出为 markdown 文件。 | | `/status` | 显示会话状态(session / cwd / model / plan / token / 账本行数)。 | | `/cost` · `/tokens` | 显示 token 用量与缓存命中。 | | `/thinking` | 切换思考展开/折叠。 | | `/help` | 显示快捷键与命令清单。 | | `/audit` `/bug` `/review` `/practice` `/pr_comments` `/release-notes` `/vuln-check` | 技能命令——向模型发送激活提示(随包内置对应 SKILL.md)。 | | `/exit` · `/quit` | 退出。 | | `/compact` `/plan` `/goal` `/feedback` `/permission` | 宿主命令,与 web UI 共享同一注册表。 | ### 快捷键 | 键 | 动作 | |----|------| | `Enter` | 发送 | | `Shift+Enter` / `Ctrl+J` | 换行 | | `↑` / `↓` | 输入历史 | | `Ctrl+O` | 展开 / 折叠思考 | | `Ctrl+T` | 展开 / 折叠工具输出 | | `Shift+Tab` | 切换 plan 模式 | | `Esc` `Esc` | 打开回滚账本(分叉回之前的 turn) | | `Ctrl+C` | 取消打开的浮层;无浮层时退出 | **鼠标**:拖拽选择即复制 · 双击选词 · 三击选行 · 滚轮滚动。 ## 色卡 一套靛蓝→天蓝品牌族、一组中性色、三种常规状态色: | 角色 | 出现位置 | |------|----------| | logo · brand · accent · code | DASH logo、标题、斜杠命令、选中项、行内代码 | | dim | 工具正文、footer、推理 | | `bgQuote` | 用户消息块(深靛蓝底) | | success · warning · error | diff 新增 · 待处理 · diff 删除 | ## 生态 `dash` 是 [DeepSeek Harness 插件生态](https://github.com/topics/dsh-plugin)的一员——在 `dsh-plugin` topic 下浏览所有社区插件,或查看精选清单 [awesome-dsh-plugin](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin)。 ## 架构 `dash` 是一个 Cordis bundle——`@realchenwenqiao/dash`——通过 `tui` profile 挂载在 `dsh-base` 之上,与 `web`、`headless` bundle 同构。TUI 驱动稳定表面(`agents.create` / `agent.followup` / `agent.whenIdle` / `session/event`),用 [pi-tui](https://github.com/earendil-works/pi-tui) 组件渲染。上游保持原样,TUI 只是多了一个 surface。 ## 开发 从 [docs/development.md](docs/development.md) 与 [AGENTS.md](AGENTS.md) 开始。 ## License [MIT](LICENSE)。第三方声明:[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。
Install
dsh plugin --profile web add github:realchenwenqiao/dash
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install realchenwenqiao-dash from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.