Saltar al contenido principal
K

dsh-tui-app

kouyichi/dsh-tui-app

Interactive terminal chat app for dsh: streaming conversation, tool cards, jobs panel, full-text search, trajectory replay, multi-session tabs, and A2A dispatch (Ink-based).

Instalar

dsh plugin --profile web add github:kouyichi/dsh-tui-app

README

🐋 dsh-tui-app

DeepSeek Harness 的终端䞻界面 —— 䞀条蓝鲞指挥党家

license dsh node

䞀䞪基于 InkReact for CLIClaude Code 同欟技术栈的 dsh profile 插件Claude Code 圢态的亀互匏终端界面DeepSeek 品牌鲞鱌 䞀䞪终端同时指挥 hermes / claude / codex / dsh 四䞪 Agent。

✹ 界面预览

██████╗ ███████╗ ██╗  ██╗                                  ▄▄▄▄▄        ██
██╔══██╗ ██╔════╝ ██║  ██║                  ▄▄▄▄▄▄▄▄▄▄▄▄██████▀        ████
██║  ██║ ███████╗ ███████║               ▄████████████████████         ██████▄▄
██║  ██║ ╚════██║ ██╔══██║             ████████████████████████▄       ▀███████▄
██████╔╝ ███████║ ██║  ██║           ▄████████████████████████████▄     ██████████
╚═════╝ ╚══════╝ ╚═╝  ╚═╝           ████████████████████████████████▄    ▀██████▀
╭───────────────────────────────╮    ████▀▀▀▀▀▀████████████████████████▄  ▄█████
│  DeepSeek Harness            │    ████     ▀▀██████████████▀▀▀▀██████████████
│  model     deepseek-v4-flash │    ████         ▀████████████▄▄  ▀████████████
│  mode      标准暡匏           │    ████▄           ▀████████  █    ███▀██████
│  session   session-41bbb
    │     █████             ▀██████   ▀█▄▄ ▀███████▀
│  stats     skills 15 · pl 92 │      ██████▄      ▄▄▄       ▄  ▄█████████▀
│  /help · /config · /quit     │       ▀██████▄▄  ██████▄▄▀   ▀█████████▄▄
╰───────────────────────────────╯           ▀███████████████▄▄▄▄▄███████████

🎯 䞺什么甚它

  • 🐋 DeepSeek 品牌鲞鱌匀屏figlet 倧标题 + 官方 logo 圢状鲞鱌品牌蓝 #4D6BFEHermes 匏并排垃局
  • 🌐 A2A 掟掻蟓入 @hermes 垮我查  / @codex 修䞪 bug —— 䞀䞪终端指挥本机党郚 Agent结果卡片化返回
  • 📊 实时统计蜮次/步数、LLM 时闎、工具时闎、猓存呜䞭率、TPS、token 总量/config 空栌匀关
  • 🎭 四种暡匏标准 / PTC / 极简 / 创造 —— 侎 web 同欟讟眮/mode 切换
  • 📝 Markdown 枲染标题、列衚、匕甚、代码、粗䜓斜䜓盎接可视化
  • 🔍 党文搜玢SQLite FTS 玢匕党郚䌚话/search 秒级定䜍历史
  • 🎬 蜚迹回攟/trajectory 逐步回看每䞀步思考䞎工具调甚
  • 📑 倚䌚话 Tab/tab new 或 PgUp/PgDn 热切换每䌚话独立记忆
  • 🛠 完敎工具面后台任务面板、ask_user_question 浮层、plan 审批流、goal 状态、消息反銈
  • ⌚ äž­æ–‡ IME、vim 暡匏、倚行蟓入、呜什联想、@文件 补党、历史浏览

🚀 快速匀始

前眮dsh ≥ 0.1.0-rc.6、Node ≥ 22含 corepack/pnpm。

# 1. 建 profile
mkdir -p ~/.dsh/profiles/tui && cd ~/.dsh/profiles/tui
cat > package.json <<'EOF'
{
  "name": "dsh-profile-tui",
  "private": true,
  "dependencies": {
    "dsh-tui-app": "github:kouyichi/dsh-tui-app"
  },
  "dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base"] } }
}
EOF
printf 'packages:\n  - .\n\nnodeLinker: hoisted\nautoInstallPeers: false\n' > pnpm-workspace.yaml

# 2. 装䟝赖
corepack pnpm install

# 3. 写 profile patch泚入插件行 + 沙箱 + 搜玢玢匕见 README 完敎版
cat > cordis.patch.yml <<'EOF'
- id: system-prompt
  config:
    persona: >-
      You are a coding agent powered by the {{model}} model. Your working directory is {{cwd}}.
- id: hmr
  disabled: true
- id: sandbox-policy
  config: { mode: danger-full-access, workspaceRoot: !!js process.cwd() }
- id: approval
  config: { policy: never }
- id: web-search-deepseek
  config:
    apiKeyEnv: DEEPSEEK_API_KEY
    baseURL: http://127.0.0.1:8899/anthropic/v1
- insert:
    - id: tui-startup
      name: 'dsh-tui-app/startup'
    - id: session-stats
      name: '@deepseek-ai/dsh-session-stats'
    - id: agent-presets
      name: '@deepseek-ai/dsh-agent-presets'
      config: { default: standard }
    - id: tui-runner
      name: 'dsh-tui-app'
      inject: [tuiStartup]
      config: { sessionId: !!js ctx.tuiStartup.sessionId }
EOF

# 4. 启劚
dsh --profile tui

⌚ 呜什䞎快捷键

呜什䜜甚
/modeAgent 暡匏标准 / PTC / 极简 / 创造新䌚话生效
/model暡型选择噚 + 掚理力床e 切换
/config状态栏统计匀关空栌切换持久化
/jobs后台任务面板空栌日志 · k 停止
/search <词>䌚话党文搜玢FTS
/trajectory事件蜚迹回攟
/feedback up|down [倇泚]消息反銈
/tab new | /tab <n>倚䌚话 Tab
/agentsA2A 端点探测
/goal目标状态阶段/蜮次/受阻原因
@hermes/@claude/@codex/@dsh <任务>A2A 掟掻
快捷键䜜甚
Shift+Enter倚行蟓入
Escvim 暡匏
Tab / ↑↓呜什联想选择
↑↓无联想时历史浏览
Ctrl+O思考/工具卡片折叠
PgUp/PgDn切换䌚话 Tab
Ctrl+Cäž­æ–­ / 退出

🏗 架构

dsh-tui-app (cordis 插件, 纯 Node ESM, 零构建)
├── lib/index.js            agent 驱劚 + 䌚话 Tab + 菜单路由 + 统计
├── lib/runtime/            Ink 挂蜜 / 自定义蟓入层IME·vim·粘莎/ store
├── lib/channel/            事件園䞀化 + A2A 客户端50ms 批量枲染
├── lib/components/         splash / 消息流 / 工具卡片 / 各面板 / TabBar
├── lib/markdown.js         蜻量 Markdown 枲染零䟝赖
├── lib/theme/              品牌蓝 palette唯䞀 SGR 来源
└── test/                   node:test 单测

栞心原则TUI 是薄界面 —— agent/䌚话/工具党郚来自 @deepseek-ai/dsh-base agent.ctx.on("session/event") 是唯䞀数据源䞍萜盘、䞍倍制逻蟑。

🧪 匀发

node --test test/input.test.js test/palette-events.test.js   # 21 项单测
printf '䜠奜\n/quit\n' | timeout 60 script -qec "dsh --profile tui" /dev/null  # 冒烟

📄 讞可

MIT —— DeepSeek 标志園 DeepSeek 所有本项目䞺独立非官方插件。

Plugins relacionados