Foreword

The DSH plugin ecosystem emphasizes “everything is a plugin,” and many interface behaviors can be loaded as independent bundles. For users who frequently input and modify commands in the Web GUI composer, lacking the ability to “review sent commands using up and down arrow keys” makes it awkward to re-execute similar commands or return to the previous draft.

dsh-composer-history addresses this issue: it provides command history for the DSH Web interface composer input box, allowing users to browse previously sent commands using ↑ / ↓, and restore the draft before editing at the end of the history.

What is this

baisama-cloud/dsh-composer-history is a plugin for the DSH Web GUI composer. It does not alter the message sending logic but extends the history browsing behavior of the input box: switching between completed user messages via arrow keys, and restoring the currently edited draft after reaching the latest entry.

Core Features

  • Press to switch to earlier sent commands and to switch to newer commands; the current draft is preserved.
  • Pressing again after reaching the latest command restores the draft that was being edited previously.
  • It only counts completed user messages, skipping system-injected reminders.
  • In multi-line draft scenarios, only triggers on the first line, and only triggers on the last line.
  • It does not trigger during IME input composition, when text is selected, or when Ctrl / Cmd / Alt / Shift are held down.

Installation and Usage

The installation command provided in the README is as follows. <owner> in the command is a placeholder; replace it with the actual repository path when using it:

dsh plugin --profile web add github:<owner>/dsh-composer-history

You can also add this repository in the Plugins market section of DSH settings for installation. The repository address is:

https://github.com/baisama-cloud/dsh-composer-history

Typical Usage

  1. Click the composer textarea in any session.

  2. Press to review previously sent commands; press to move forward, and restore the original draft after passing the latest entry.

  3. Send the recalled command after editing it in the usual manner.

Version and Dependencies

The version declared in package.json is 0.1.0, and engines.node requires >=20. The plugin is provided as a DSH bundle with the following peer dependencies:

  • react: ^18.2.0
  • @deepseek-ai/cordis: ^4.0.1

dsh.client.platform in package.json is marked as web. The bundle files include:

  • lib/index.js: The host half; the README states it is intentionally empty, with all behavior on the client side.
  • lib/client.js: The browser half; registered as a Cordis plugin via window.__ModuleLoader__.load. It hooks into the conversation.input.left slot, accessing the composer textarea, draft state (props.input.draft), write action (props.inputActions.setDraft), and session messages (props.session.nodes).
  • cordis.patch.yml: Inserts the plugin loader line.

Both README and package.json state that react and @deepseek-ai/cordis are provided as peer dependencies by DSH installation, rather than requiring users to install them additionally.

Use Cases and Considerations

Suitable for users who frequently input, reuse, or fine-tune sent commands in the DSH Web GUI. It is also suitable for workflows that aim to keep the current draft from being overwritten and return to the state before editing at the end of the history.

Since DSH plugins run with the permissions of the current dsh process, it is recommended to check the source code, license, and dependencies before installation. The license for this plugin is explicitly MIT in both the README and package.json.

Summary

dsh-composer-history completes the operation path of “browsing history commands with arrow keys and restoring the draft at the end” in the DSH Web composer.

  • GitHub: https://github.com/baisama-cloud/dsh-composer-history
  • Directory page provided by the plugin link: https://www.skillhub.cn/plugins/baisama-cloud/dsh-composer-history