{"full_name":"ccch1mneyyy/dsh-TUI","owner":"ccch1mneyyy","name":"dsh-TUI","url":"https://github.com/ccch1mneyyy/dsh-TUI","description":"DSH's officially top-recommended TUI plugin — high performance, low overhead, cute pixel whale, smooth mouse interaction. One-command install via npm. / DSH 官方首推的 TUI 插件，高性能低占用，可爱像素鲸鱼，流畅鼠标交互，npm 一键安装","homepage":"https://dshtui.com/","topics":[],"language":"TypeScript","license":"MIT","avatar":"https://avatars.githubusercontent.com/u/268149062?u=6b8c7bba58214354b91e45e6cbbfae95ab85eabc&v=4","created_at":"2026-08-13T12:49:31Z","pushed_at":"2026-11-10T09:36:47Z","metrics":{"stars":7367,"forks":351,"watchers":10,"issues":782,"prs":1015,"releases":38,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":109},"growth":{"day":{"stars":90,"forks":0,"base_day":"2026-11-09"}},"history":{"dates":["2026-11-09","2026-11-10"],"stars":[7277,7367],"forks":[351,351],"watchers":[10,10],"issues_open":[null,null],"prs_open":[null,null]},"boards":{"daily_rate":134,"new":78},"same_owner":[{"full_name":"ccch1mneyyy/dsh-Go","name":"dsh-Go","boards":{"daily":19,"weekly":4,"monthly":32,"daily_rate":15,"weekly_rate":3,"monthly_rate":7,"new":23}}],"issues":[{"number":1777,"title":"[Bug] Edit/Write diff 看不出变更：单栏不做行级比对，双栏不裁剪上下文","comments":4,"created_at":"2026-10-26T11:27:34Z"},{"number":1899,"title":"[Bug] 0.19.0 + dsh 0.2.2-rc.1：preset 仍引用已移除的 @deepseek-ai/dsh-tool-subagent-control/list-agents，启动即失败","comments":2,"created_at":"2026-11-06T10:25:19Z"},{"number":1839,"title":"[Bug] 一长串没有空白的文本会让路径链接退化成 O(n²)，btw / 子代理输出能把界面卡住数秒","comments":2,"created_at":"2026-11-01T05:23:00Z"},{"number":1819,"title":"[Bug] host 发现不识别 vite-plus 的单一分发 shim，DSH 内核被判成「没有可用的已装 dsh」","comments":2,"created_at":"2026-10-31T17:22:43Z"},{"number":1797,"title":"[Bug] 正文超链接单击无反应：折叠 onClick 抢先消费点击","comments":2,"created_at":"2026-10-28T07:52:50Z"},{"number":1651,"title":"[Bug] Disposed/completed foreground sessions remain busy and leave follow-up prompts queued indefinitely","comments":2,"created_at":"2026-10-20T09:08:14Z"},{"number":1608,"title":"[Bug] HMR 重载后创建会话崩溃：TypeError: Cannot redefine property: execute","comments":2,"created_at":"2026-10-18T08:39:40Z"},{"number":1272,"title":"[Bug] 全屏下拖选超过一屏：拖到视口边缘视图不滚动，复制缺少滚出视口的部分","comments":2,"created_at":"2026-10-02T16:05:53Z"}],"discussions":[{"number":1910,"title":"[建议] 增加 DSH_TUI_MODEL_ROUTE / DSH_TUI_EFFORT 启动级覆盖（默认仍遵循 /model 的 last-used）","comments":0,"category":"Ideas","created_at":"2026-11-07T14:27:20Z"},{"number":1909,"title":"[建议] 长会话上翻时历史记录在眼前消失：渲染窗口 RENDERED_ROW_CAP 可配置（默认 120）","comments":0,"category":"Ideas","created_at":"2026-11-07T13:01:30Z"},{"number":1908,"title":"[功能] /vim 开关可持久化：把 vim 模式做成可保存的启动选项","comments":0,"category":"Ideas","created_at":"2026-11-07T05:15:25Z"},{"number":1904,"title":"Tool cards: let a settled card fold to its header, like thinking blocks","comments":1,"category":"Ideas","created_at":"2026-11-06T20:57:55Z"},{"number":1878,"title":"[Idea] 把 OSC 9;4 接上，让 Windows Terminal 任务栏显示运行进度","comments":0,"category":"Ideas","created_at":"2026-11-04T07:23:35Z"},{"number":1873,"title":"Ollama Cloud built in provider implemented","comments":0,"category":"Ideas","created_at":"2026-11-03T21:47:55Z"},{"number":1871,"title":"Add a /copy command to copy the latest assistant response to the clipboard","comments":0,"category":"Ideas","created_at":"2026-11-03T11:41:01Z"},{"number":1869,"title":"[Idea] Claude 娘 / Codex 娘 的伙伴动画：两套 22 动画素材包（内置皮肤还是插件皮肤？）","comments":2,"category":"Ideas","created_at":"2026-11-03T08:41:05Z"}],"latest_release":{"name":"v0.19.0","tag":"v0.19.0","published_at":"2026-11-06T03:32:50Z","body":"自 v0.18.0 以来，dsh-TUI 跟上 DSH `0.2.2-rc.1` 验证线，让一次 `/update` 同时对齐 TUI、全局 dsh 引擎与全局启动器，\n并修好会话恢复、btw 输入、子代理失败提示与 Codex 后端命令输出等一批问题。\n\n## 亮点\n\n- **适配 DSH `0.2.2-rc.1`** — npm 上的 DSH `latest` 已是 `0.2.2-rc.1`，而 v0.18.0 的精确 peer 只到 `0.2.1-rc.5`，升级 DSH 后 TUI 会被判 incompatible 并 skip。本版把 `0.2.2-rc.1` 加入验证线与 peer 范围，`0.2.1-rc.5` 及其之前的验证线继续保留；模型选择改用上游的会话级 `Agent.model` 接缝、工具限制落到每个 Agent 的作用域、适配 cordis 4.1 生命周期与固定动作审批，旧宿主继续走原来的选择引用与请求瀑布。([#1886](https://github.com/ccch1mneyyy/dsh-TUI/pull/1886) by @Lucas2011wastaken)\n- **一次 `/update` 对齐 TUI、dsh 引擎与全局启动器** — 以前 `/update` 只换 profile 里的 TUI，全局 dsh 与启动器留在原地，可能出现新 TUI 的 peer 范围装不上当前引擎。现在预检为三层解析同一份计划，按 TUI → 引擎 → 启动器串行执行：引擎只选目标 TUI peer 范围内已发布的最高版本（永不降级、不选 alpha 线），装完用 profile 模块解析与 `dsh --version` 验证；启动器只动能证明归属的全局安装，多成员 pnpm 组、项目内依赖与有歧义的别名一律不改。TUI 已是最新时也不再短路，仍会补齐引擎与启动器；引擎安装失败后只有能证明启动的入口才允许重启，跳过原因会留在下一次挂载的屏幕与警告里。([#1847](https://github.com/ccch1mneyyy/dsh-TUI/pull/1847)、[#1849](https://github.com/ccch1mneyyy/dsh-TUI/pull/1849) by @Lucas2011wastaken；[#1889](https://github.com/ccch1mneyyy/dsh-TUI/pull/1889) by @AdamPlatin123)\n- **子代理通道整体失败会明说** — 同一 provider 的已结算运行至少失败 2 次且失败过半时，子代理列表上方出现通道降级提示，并建议切换 provider；只有可切换的 `claude-code` / `codex` 通道会提示，内建 `subagent`、workflow 与 teammate 行不误报。([#1794](https://github.com/ccch1mneyyy/dsh-TUI/pull/1794) by @MomentDerek)\n\n## 需要留意的行为变化\n\n- **权限问卷只提供固定动作** — 在 DSH 0.2.2 上，`approval` 类问题只提供调用方声明的选项，不再有自由文本入口；普通问卷仍可自由输入。([#1886](https://github.com/ccch1mneyyy/dsh-TUI/pull/1886) by @Lucas2011wastaken)\n- **`/update` 的拒绝语义与逃生开关** — 新 TUI 要升级、而**当前运行**的引擎不在它的 peer 范围内时，即使引擎可以自动升级也会先拒绝，并打印「先升级引擎，再重新 `/update`」的命令（官方加载校验按运行中的 dsh 判定）；引擎装完校验不通过时不重启，但保留已升级的 TUI。`DSH_TUI_UPDATE_ENGINE=0` 钉住引擎，`DSH_TUI_UPDATE_LAUNCHER=0` 跳过启动器，`DSH_TUI_DSH_PM=npm|pnpm` 覆盖包管理器判定。([#1849](https://github.com/ccch1mneyyy/dsh-TUI/pull/1849) by @Lucas2011wastaken；[#1889](https://github.com/ccch1mneyyy/dsh-TUI/pull/1889) by @AdamPlatin123)\n- **`/restart` 带回图片，被后端丢弃的输入不再自动重发** — 交接文件从纯文本改为带图片的输入；被判定「确定没执行」的输入会暂存为未送达，由用户决定是否重发。([#1764](https://github.com/ccch1mneyyy/dsh-TUI/pull/1764) by @MomentDerek)\n- **长会话不再重放打字动画，代价是随历史线性增长的内存** — 已完成行的记账不再有 2048 条上限（几万行量级约十几 MB），随会话释放。([#1796](https://github.com/ccch1mneyyy/dsh-TUI/pull/1796) by @MomentDerek)\n- **btw 输入框恒为一行** — 长草稿围绕光标开窗、被裁一侧显示 `…`，不再折行；只支持左右查看，不支持多行编辑。([#1866](https://github.com/ccch1mneyyy/dsh-TUI/pull/1866) by @Lucas2011wastaken)\n- **Linux 进程名显示为 `dsh-tui`** — `ps -o comm`、`top` 与系统监视器不再显示 `MainThread`；`/proc/<pid>/cmdline` 保持不变。([#1841](https://github.com/ccch1mneyyy/dsh-TUI/pull/1841) by @Lucas2011wastaken)\n- **rio 与 Orca 启用扩展键编码** — 两者加入 `CSI >1u` 白名单，`Shift+Enter` 与修饰键组合可用；名单出问题时可用 `DSH_TUI_FORCE_EXTENDED_KEYS=1` / `DSH_TUI_DISABLE_EXTENDED_KEYS=1` 强制或禁用（disable 优先）。([#1821](https://github.com/ccch1mneyyy/dsh-TUI/pull/1821) by @Plintash；[#1840](https://github.com/ccch1mneyyy/dsh-TUI/pull/1840) by @Lucas2011wastaken)\n\n## 修复\n\n- **会话与恢复**：会话管理页去掉每个 project 下方重复且容易截断的路径、全部来源统一单行列表，并修好快速连点两个 project 时第二击被当成选词的问题（多击判定现在要求同一个 `onClick` 祖先）；从整屏界面返回或 `/resume` 后历史消息不再逐条重新「打字」；会话自身收尾的回合显示「会话已停止」而不是用户中断；Linux 上被其他进程复用的旧线程 ID 不再让空闲会话被误判为被占用。([#1755](https://github.com/ccch1mneyyy/dsh-TUI/pull/1755) by @xuzijian2019；[#1796](https://github.com/ccch1mneyyy/dsh-TUI/pull/1796)、[#1764](https://github.com/ccch1mneyyy/dsh-TUI/pull/1764) by @MomentDerek；[#1769](https://github.com/ccch1mneyyy/dsh-TUI/pull/1769)、[#1770](https://github.com/ccch1mneyyy/dsh-TUI/pull/1770) by @FlameTN7)\n- **输入与面板**：窄侧栏 btw 草稿不再被挤成 0 宽或按未截断的草稿撑高，尾部和硬件光标留在框内；不带 bracketed-paste 标记的整块文本也先压平成单行。([#1866](https://github.com/ccch1mneyyy/dsh-TUI/pull/1866) by @Lucas2011wastaken)\n- **子代理与后端**：Codex 后端下 `/usage`、`/diff` 查询成功后会显示输出，补全菜单里按 `Enter` 直接执行而不用先补空格。([#1775](https://github.com/ccch1mneyyy/dsh-TUI/pull/1775) by @MomentDerek)\n- **终端兼容**：Orca 与 rio 的扩展键、Kitty 小键盘码位 57416–57426 补齐，CSI-u 的非打印键不再被当作文本插入。([#1840](https://github.com/ccch1mneyyy/dsh-TUI/pull/1840)、[#1841](https://github.com/ccch1mneyyy/dsh-TUI/pull/1841) by @Lucas2011wastaken；[#1821](https://github.com/ccch1mneyyy/dsh-TUI/pull/1"},"readme":true,"readme_zh":true,"news":[{"title":"3小时破千！DeepSeek Harness移动端应用来了","url":"https://news.qq.com/rain/a/20261030A0E65W00","source":"腾讯网","lang":"zh","date":"2026-10-30"},{"title":"2860星的DSH终端界面火了！Claude Code同款鲸鱼顶栏，但这3个坑90%的人会踩","url":"https://blog.csdn.net/weixin_63007863/article/details/164450291","source":"blog.csdn","lang":"zh","date":"2026-09-07"},{"title":"dsh-tui：将AI编程助手无缝集成到终端工作流的实践指南","url":"https://blog.csdn.net/weixin_34268753/article/details/92759968","source":"blog.csdn","lang":"zh","date":"2026-08-21"},{"title":"太快了！聊聊 DeepSeek Harness 必装的插件。","url":"https://www.eet-china.com/mp/a517835.html","source":"电子工程专辑","lang":"zh","date":"2026-08-16"},{"title":"开发者打造 dsh-tui：为 DeepSeek Agent 提供终端可视化调试界面","url":"https://www.80aj.com/2026/08/16/deepseek-agent-tui-debug/","source":"80aj","lang":"zh","date":"2026-08-15"},{"title":"DeepSeek Harness插件在GitHub上引发创新热潮","url":"https://www.sohu.com/a/1063330851_122066678","source":"搜狐","lang":"zh","date":"2026-08-15"},{"title":"DeepSeek Harness必装的10个插件","url":"https://news.google.com/rss/articles/CBMiU0FVX3lxTFBTaklXbTdXaER5RE43NFhsX2pMYmM0OVY2c3dEdTJjSHdRTHN4d3RzUXdOOG41WEstaWJ5SzZsNE5GM1pJT1lIS3dtVVRvVDVSRnB3?oc=5","source":"电子工程专辑EE Times China","lang":"zh","date":"2026-08-25"},{"title":"16 个超火的 DeepSeek Harness 插件，大肥鱼已经落后 2 个版本了","url":"https://news.google.com/rss/articles/CBMiV0FVX3lxTE82WGVDRF9aanFZckhzRUxMUE1tQXV1NDhuV3BnRzB6cGktNWFQNjRtVm1LbVp0TUkzQmJkVVlLckM1amhONE5zNENWSm1PbzExd0c2dTQ5WQ?oc=5","source":"view.inews.qq.com","lang":"zh","date":"2026-08-21"},{"title":"DeepSeek Harness Plugins: Install, Add & Build Your Own","url":"https://news.google.com/rss/articles/CBMiZkFVX3lxTE0yTDJEOHVJeno5VExrdEVMamxaUUh2dTJmVnRxRE9aNUxCY1E0eXVNcEhxNHByZk14ZEpkSDJrS18tLUxzR21mV3JITmxwdmI1ZnozMUh6d04xZ050MTFhaWRYSkI0QQ?oc=5","source":"OrcaRouter","lang":"en","date":"2026-08-17"},{"title":"DeepSeek Harness on Windows: How to Run dsh (Desktop App or CLI)","url":"https://news.google.com/rss/articles/CBMia0FVX3lxTFBIcXVPdDVvMERoaGhLSU1DVXZOQVNOYXBnSnRoS1lzY2ZSQ2ktWnNMcWpZUzg1WUJFNExWNFlvZ0dad3ZScVJidDlZQWVRaVA0eFZTa0JjS3NxclJJS19RQU5wNE1KVFRuWEhn?oc=5","source":"OrcaRouter","lang":"en","date":"2026-08-17"},{"title":"DeepSeek Harness插件一夜燃爆GitHub：长期记忆、电子宠物、4399小游戏全来了","url":"https://news.google.com/rss/articles/CBMiSEFVX3lxTFA5dmpZc3d3TC1HczNYOG1KNF9sN0psU0FLVm10Q2dHMGtYdjV4UXZZR3N4azBwSFhnYU5ZX2tpbF84OEYzZ01KRA?oc=5","source":"智源社区","lang":"zh","date":"2026-08-16"},{"title":"最新！DeepSeek Harness桌面版和CLI来了！","url":"https://news.google.com/rss/articles/CBMiU0FVX3lxTE1jSmdxMU9CR3d4VFJFeHpNcXRscW1YYjFDLWV3cElsTVF1WFczcGRDN3B4Vk5keFFGTzhGLWVMc2JDejVWRG5IdDI2bGU3azJMR2pv?oc=5","source":"搜狐网","lang":"zh","date":"2026-08-16"}],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}