Skip to content

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-terminal

Copying 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.