qichuang321/dsh-web-terminal

qichuang321★ 2JavaScriptLast synced: 2026-08-14

Open on GitHub

README excerpt

dsh-web-terminal A terminal dock merged into the DSH web GUI: hideable , split-screen with the chat column when visible, and integrable with terminal-designed TUI plugins . - Hide / show : header button or Ctrl+ — the dock, the xterm instance and the PTY session all survive the toggle (nothing is torn down; VS Code style). - Split-screen : the dock is absolutely docked into the bottom band of the center column; the chat keeps its own scrollport above; height is draggable (120–900 px) and persisted in localStorage ( dsh.webTerminal.v1 ). - TUI integration : any terminal-designed TUI runs unchanged inside the PTY (vim, htop, tianshu-tui, …), plus an extension API so plugins can register their own views. Install The plugin mounts via cordis.patch.yml (bundle patch layer, dsh-ssh pattern): host half = lib/index.js (node-pty PTY + WebSocket bridge + registry service), browser half = lib/client.js (the dock). Architecture Piece File Notes Plugin entry (host) src/index.ts webServer inject, routes + webTerminal service under ctx.effect Routes + WS terminal src/routes.ts loopback fence, WebSocketServer({noServer:true}) , 1MB/512KB backpressure PTY layer src/pty.ts node-pty direct ( ^1.1.0 ,…

View full README on GitHub →
Terminal / TUIdeepseek-harnessdshdsh-plugintuiterminal

Category