
mervyn-teo/dsh-plugin-terminal
31Last commit Aug 15, 2026
dsh-plugin-terminal DSH plugin
dsh-plugin-terminal adds a fully functional PTY-based terminal to the DSH Web interface. It runs an actual shell (PowerShell, bash, etc.) in a node-pty, rendered via xterm.js in a collapsible footer panel. The plugin supports live resize, keyboard shortcuts, and runtime settings for theme, font, and shell.
How to install the dsh-plugin-terminal DSH plugin
dsh plugin --profile web add github:mervyn-teo/dsh-plugin-terminalCopying does not run this command. Review the repository and version before installing the dsh-plugin-terminal DSH plugin.
dsh-plugin-terminal DSH plugin data source
dsh-plugin-terminal DSH plugin snapshot date: Aug 16, 2026
discovered
What the dsh-plugin-terminal DSH plugin can do
- Runs a real interactive shell (PowerShell on Windows, $SHELL or /bin/bash on other platforms) in a PTY.
- Renders ANSI colors, cursor movement, and full-screen applications (vim, htop, top) via xterm.js.
- Provides a VS Code-style collapsible footer panel with drag-to-resize top edge, restart button, and collapse toggle.
- Supports keyboard shortcut Ctrl+` to toggle the panel.
- Offers a Terminal settings card under Settings → Plugins for runtime configuration of theme, font size, panel height, opacity, start-collapsed, shell, and working directory.
- Has a graceful fallback: if xterm.js cannot load (offline), a plain streaming view still exposes the real shell.
Where the dsh-plugin-terminal DSH plugin fits
- Developers who need quick access to a shell while working in the DSH web interface.
- Running command-line tools, scripts, or monitoring tools (like htop) directly within the harness UI.
- Testing shell commands or debugging server-side processes without leaving the browser.
- Using the terminal as a persistent environment for long-running tasks (though session restarts on harness restart).
- Customizing the terminal appearance and behavior to match personal workflow preferences.
Who the dsh-plugin-terminal DSH plugin is for
- DSH users who prefer an integrated terminal instead of switching to a separate terminal emulator.
- Developers and system administrators who frequently use command-line operations within the harness environment.
dsh-plugin-terminal DSH plugin limitations
- The terminal renders xterm.js from jsDelivr CDN; first expansion requires network access (plain fallback works offline).
- Sessions are process-local and do not survive a harness restart.
- On Windows, the default shell is powershell.exe; to use Command Prompt, you must set shell to cmd.exe with shellArgs: [].
- The WebSocket route is loopback-bound, like the rest of the Web GUI.
dsh-plugin-terminal DSH plugin: from the repository README
Quoted from the mervyn-teo/dsh-plugin-terminal README, the upstream source of the dsh-plugin-terminal DSH plugin. Copyright remains with the original authors.
English | [中文](README.zh.md) A [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH) Web plugin that adds a **real** interactive terminal — a VS Code-style collapsible panel docked to the footer. This plugin runs an actual shell in a PTY and streams the raw terminal bytes to the browser. It is a persistent bundle plugin (a host half plus a browser half) that loads on every boot. ## Demo <p align="center"> <img src="assets/demo.gif" alt="dsh-plugin-terminal demo — a real terminal in the footer" width="640"> </p> ## What it does - **Actual terminal** — a real interactive shell (PowerShell on Windows, `$SHELL`/`/bin/bash` elsewhere, by default) running in a PTY via the harness's `subprocess.spawnTerminal` primitive (node-pty). - **Full terminal rendering** — xterm.js renders ANSI colors, cursor movement, full-screen apps (`vim`, `htop`, `top`, …), and 256-color output. - **VS Code-style footer panel** — a collapsible bottom panel with a header, drag-to-resize top edge, restart button, and collapse toggle. - **Keyboard shortcut** — `Ctrl+`` `` toggles the panel (the VS Code default). - **Live resize** — the PTY reflows when you resize the panel. - **A
Read the full READMERepository license: MIT
dsh-plugin-terminal DSH plugin questions
How do I install the terminal plugin?
Run `dsh plugin --profile web add github:mervyn-teo/dsh-plugin-terminal` in your DSH environment, then restart `dsh web`. The plugin is a bundle that loads at boot. You can also check the `cordis.patch.yml` file for default settings.
Can I use the terminal without internet access?
Yes, but with a limitation. The first time the terminal panel expands, it tries to load xterm.js from jsDelivr CDN. If the network is unavailable, a plain streaming view will still expose the real shell, though without full ANSI rendering. You can also pre-download the xterm.js assets to avoid the online requirement.
How do I change the shell from PowerShell to Command Prompt on Windows?
In the Settings → Plugins → Terminal card, set the 'Shell' option to `cmd.exe` and set 'Shell Args' to an empty array `[]`. Alternatively, you can modify the default in `cordis.patch.yml` before starting DSH. The plugin defaults to `powershell.exe` on Windows.
Does the terminal session persist after I restart DSH?
No. The terminal session is process-local tied to the current harness instance. After a restart, the session is lost and you will need to open the terminal again. This is a known limitation of the plugin.
What keyboard shortcut opens the terminal?
The default shortcut is `Ctrl+` (backtick), which matches the VS Code toggle terminal shortcut. If you have multiple plugins using the same key combination, you may need to adjust the shortcut in your DSH configuration.