@lijian-ui/dsh-term
Panel-style local + SSH terminal for the DSH web GUI: real PTY sessions (node-pty), multi-tab terminal panel with xterm.js, workspace-cwd shells — hot-pluggable via a profile bundle without any dsh source changes
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:lijian-ui/dsh-term说明文档
阅读完整 README ↗@lijian-ui/dsh-term
Panel-style local terminal for the DSH web GUI.
- Real PTY sessions via
node-pty— a genuine local shell, not a curated command runner. - Multi-tab terminal panel built on xterm.js, docked in the right-side panel (alongside
@lijian-ui/dsh-file-manager). - Workspace cwd — each session starts in the current workspace root.
- Hot-pluggable — loaded as a profile bundle; no changes to DSH source are required.
This is the A edition: local user terminal only. A planned B edition adds SSH connections and per-session shell selection.
Install
dsh plugin add @lijian-ui/dsh-term
Or add @lijian-ui/dsh-term to your profile's bundles / dependencies and reference it from cordis.yml.
Behavior
- Default state is collapsed (closed). Open it from the right-side panel launcher (the "终端" button) — it docks as the rightmost column next to the file-manager panel.
- Sessions are managed by a host-side service (
src/host/pty-service.ts) exposed over loopback-only HTTP + SSE routes (src/host/routes.ts). The client renders them with xterm.js and syncs resize/input.
Development
npm install
npm run build # tsc -b && tsdown -> lib/
npm run watch # rebuild on change
npm test # vitest
License
Apache-2.0