Introduction

When developing agents in a DeepSeek Harness (DSH) environment, controlling the input stream directly affects workflow efficiency. The default input behavior (for example, pressing Enter while a session is busy) often cannot meet the needs of refined orchestration. The dsh-steer-button plugin overrides the input behavior of a running session and provides a more intuitive way to manage the queue.

What Is This

dsh-steer-button is a DeepSeek Harness plugin maintained by developer lyuwen. It addresses the lack of explicit queue control in the Composer input box while an agent is running. The plugin provides three delivery modes, allowing developers to clearly manage when messages are sent and how their context relationships are handled.

Core Features

The plugin primarily provides the following features:

  1. Three delivery modes

    • Queue mode: Press the Enter key to enqueue a message. The message will be sent in the next LLM request along with the observations after the current step completes and submits its observations. The current step will not be interrupted.
    • Steer mode: Press Cmd/Ctrl + Enter to abort the current in-progress LLM streaming output, preserve part of the output as an interruption message, and then continue the conversation with a new request.
    • Backlog mode: Press Cmd/Ctrl + Shift + Enter to use DSH’s native whole-turn queue mode. The message waits until the current turn’s conversation ends, then runs as an independent next turn.
  2. Queue visualization and interaction

    • Queue strip: All pending messages are displayed in the queue strip above the text box.
    • Editing and recall: The edit button moves the text back into the text box for free editing; the up arrow (↑) can pull the most recently queued message back into the text box.
    • Stop operation: Press the Esc key to stop the currently running agent and cancel the pending queue, resubmitting the extracted message as a steering prompt.
  3. State control

    • The button automatically hides when the agent is idle, in an empty session, or in a deleted session.
    • Esc only applies to the currently visible session and only responds while that session is running.

Installation and Enablement

The plugin depends on specific DSH versions and a React environment.

Dependency requirements:
* DeepSeek Harness version: 0.1.5-rc.1 or 0.1.5-rc.2
* React: 18.2.0 or higher
* @deepseek-ai/cordis: ^4.0.1

Notes:
* After installing or updating the package, you must restart the Profile; a page refresh will not take effect.
* The plugin runs with the permissions of the current DSH process. Review the source code and license (MIT) before installation.

Typical Usage

  1. Queue a message: While the agent is thinking, enter text and press Enter. The text enters the queue and waits for the current step to finish.
  2. Steer mid-run: Enter an instruction and press Cmd/Ctrl + Enter to force interruption of the current thought and apply the new instruction immediately.
  3. Send a full turn: Enter text and press Cmd/Ctrl + Shift + Enter to place the message in the native backlog queue.
  4. Stop and process: Press Esc to stop execution, extract pending messages from the queue, and use them as new steering prompts.
  5. Modify a draft: Press ↑ in the text box to pull back the most recent queued message for editing.

Use Cases

Suitable for developers who need to dynamically adjust the input stream while an agent is running and require fine-grained control over context injection timing (for example, injecting after observations). It is also suitable for scenarios where developers are accustomed to using the native backlog queue but prefer a more intuitive editing interface.

Brief Conclusion

dsh-steer-button standardizes the Queue, Steer, and Backlog modes by overriding input behavior. For developers who need to precisely manage agent input streams, this is a practical tool.

  • GitHub: https://github.com/lyuwen/dsh-steer-button
  • Catalog: https://www.skillhub.cn/plugins/lyuwen/dsh-steer-button