Passer au contenu principal
X

dsh-prompt-history

xingxing2013/dsh-prompt-history

Prompt history in the composer: Up and Down recall prompts sent earlier in this browser (newest first), Down walks back and restores the draft you had before the first Up, and the badge in the composer corner opens a numbered list to pick one directly. Only prompts you actually send are recorded — never fragments left by deleting text or cancelling a composition — history is shared across sessions and deduplicated, its badge size is adjustable in Settings → General, and Ctrl/Cmd+Shift+Backspace clears it.

Installer

dsh plugin --profile web add github:xingxing2013/dsh-prompt-history

README

Prompt History (DSH plugin)

Shell-style prompt history for the DeepSeek Harness composer: press Up to step back through the prompts you have already sent, Down to step forward again, and the draft you had before the first Up comes back when you walk past the newest entry.

Keys

KeyWhereEffect
↑composer, empty draftRecall the previous prompt (newest first, then older)
↓composer, while recallingNext newer prompt; past the newest, restore your draft
Esccomposer, while recallingStop recalling, keep the recalled text
Ctrl/Cmd+Shift+BackspacecomposerClear the stored history

A recall only starts from an empty composer, never while a popup that owns the arrow keys is open (the / command menu, the @ file picker, the + command menu), and never while the draft starts with /. Keys belonging to a Chinese/Japanese/Korean IME composition are never touched. While recalling, Up and Down keep stepping through history — press Esc, or click into the text, to go back to normal caret movement.

Behaviour

  • History is global across sessions of this browser, newest first, capped at 100 entries of up to 8000 characters. It is deduplicated by exact text: sending a prompt again hides its older copies and puts it at the front, and duplicates left in storage by older versions are cleaned up on load.
  • A prompt is recorded when you send it: the composer reports the send (its phase goes to sending) or you press Enter or click a button in the card, and the draft then clears. Deleting the last character, cancelling a composition or clearing the draft some other way does not record anything. A draft left behind when you switch sessions is not recorded either.
  • Version 1 of the plugin recorded any draft that emptied, which is how one-character fragments got into the history. On first load of version 1.2.1 those one-character entries are dropped once; from then on a one-character prompt you really send is kept.
  • Storage is localStorage under the key dsh-prompt-history/v1. Deleting that key (or pressing the clear shortcut) resets the history. Like every other client plugin preference it belongs to the Web UI origin.
  • Recalled text is written through the composer's own input facade (setDraft), so it is a normal draft: editable, and sent exactly like one you typed.
  • The composer is a rich-text editor, so a recalled prompt that contained file or session references comes back as the reference's plain text (@path) rather than as an interactive chip. The prompt is still sent correctly.

Badge

Once at least one prompt has been recorded, a small circle with an up and a down chevron sits in the composer's top-right corner. The chevrons show where history is:

  • Up lit — pressing ↑ right now would recall a prompt (history exists, the draft is empty, and no popup owns the arrow keys). While recalling, Up stays lit until you reach the oldest entry.
  • Down lit — you are recalling, so ↓ would step toward newer prompts (and, past the newest, restore your draft).
  • Both dim — neither key would move right now (a non-empty draft, or a menu is open). The badge stays hidden while the history is empty and disappears again after the clear shortcut.

Click the badge to drop a menu of the stored prompts. Each entry is one line — numbered, with a long prompt truncated by an ellipsis and the full text in its tooltip — and the row under the pointer is highlighted. Picking one puts it into the composer as a normal draft, ready to edit or send; the menu closes, and so does it on Esc or on a click elsewhere. The badge renders into the composer's own overlay surface, so it covers no text and adds no height to the card.

Settings

Settings → General → Prompt history badge sets the badge size from 10 to 20 px (default 12). The change applies immediately in every composer; the value is stored in localStorage under dsh-prompt-history/settings/v1.

Install

From the published repository, in the Harness profile that should get it:

dsh plugin --profile <profile> add github:xingxing2013/dsh-prompt-history

While developing against a local checkout, install the same bundle directly:

plugin_manager install_bundle target=<absolute path to dsh-prompt-history>

The install links this directory into the profile, so editing these files and reloading the Web UI picks up changes without reinstalling. Disabling the prompt-history row removes the slot registration and the key listener; the stored history is left untouched.

Plugins associés