kouyichi/dsh-tui-app
DeepSeek Harness terminal UI plugin (Ink/React)
Listed
1
Ui
Bundle verified
What it does
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).
Best for
- Terminal-first DSH users who want streaming chat, tool cards, approvals, background jobs, and Markdown rendering without a browser UI.
- Operators managing several sessions or dispatching work to local Hermes, Claude, Codex, and DSH agents from one terminal.
- Users who need full-text session search, trajectory replay, detailed runtime statistics, or keyboard-driven navigation.
Not ideal for
- Users who prefer a graphical Web interface or primarily work on touch devices.
- Environments below DSH 0.1.0-rc.6 or Node.js 22.
- A2A dispatch workflows where the referenced local agent endpoints are not installed or reachable.
README
๐ 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 ๆๆ๏ผๆฌ้กน็ฎไธบ็ฌ็ซ้ๅฎๆนๆไปถใ
Frequently Asked QuestionsFAQ
Use the verified command dsh plugin --profile default add github:kouyichi/dsh-tui-app in a DSH-enabled shell. The command resolves the public package metadata and keeps the plugin attached to the catalog identity shown on this page.
Compatibility follows the bundle and profile status shown above. If a profile is not detected, keep the plugin disabled there and check the repository documentation before enabling it in production.
The GitHub link and activity metadata are the source of truth for releases and maintenance. Revisit this page after a new release to confirm the catalog has observed the latest version.