- Home
- Plugins
- UI Enhancements
- dsh-tui-app
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).
Install
dsh plugin --profile web add github:kouyichi/dsh-tui-appREADME
๐ dsh-tui-app
DeepSeek Harness ็็ป็ซฏไธป็้ข โโ ไธๆก่้ฒธ๏ผๆๆฅๅ จๅฎถ
ไธไธชๅบไบ 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
โจ๏ธ ๅฝไปคไธๅฟซๆท้ฎ
| ๅฝไปค | ไฝ็จ |
|---|---|
/mode | Agent ๆจกๅผ๏ผๆ ๅ / PTC / ๆ็ฎ / ๅ้ ๏ผๆฐไผ่ฏ็ๆ๏ผ |
/model | ๆจกๅ้ๆฉๅจ + ๆจ็ๅๅบฆ๏ผe ๅๆข๏ผ |
/config | ็ถๆๆ ็ป่ฎกๅผๅ ณ๏ผ็ฉบๆ ผๅๆข๏ผๆไน ๅ๏ผ |
/jobs | ๅๅฐไปปๅก้ขๆฟ๏ผ็ฉบๆ ผๆฅๅฟ ยท k ๅๆญข๏ผ |
/search <่ฏ> | ไผ่ฏๅ จๆๆ็ดข๏ผFTS๏ผ |
/trajectory | ไบไปถ่ฝจ่ฟนๅๆพ |
/feedback up|down [ๅคๆณจ] | ๆถๆฏๅ้ฆ |
/tab new | /tab <n> | ๅคไผ่ฏ Tab |
/agents | A2A ็ซฏ็นๆขๆต |
/goal | ็ฎๆ ็ถๆ๏ผ้ถๆฎต/่ฝฎๆฌก/ๅ้ปๅๅ ๏ผ |
@hermes/@claude/@codex/@dsh <ไปปๅก> | A2A ๆดพๆดป |
| ๅฟซๆท้ฎ | ไฝ็จ |
|---|---|
| Shift+Enter | ๅค่ก่พๅ ฅ |
| Esc | vim ๆจกๅผ |
| 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 ๆๆ๏ผๆฌ้กน็ฎไธบ็ฌ็ซ้ๅฎๆนๆไปถใ