dsh-scratchpad
Scratch pad: one shared floating text surface in the middle of the screen, opened by other plugins through the client service scratchpad.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 28, 2026
- Updated
- Aug 29, 2026
Introduction
dsh-scratchpad
A DeepSeek Harness (DSH) plugin: one shared floating text surface in the middle of the screen that any plugin can open, for reading big text or editing it in place.
There is no UI of its own to visit. Other plugins open the pad through the
client service scratchpad:
// consumer client half — inject: ['scratchpad', 'slots', …]
ctx.scratchpad.open({
title: 'Section preview', // optional header text
text: bigText, // required string
editable: true, // false (default): read-only viewer
onSave: (text) => { … }, // edit mode: the ONLY channel back
})
Modes
- Read: text is not editable, there is no Save, Close is the only
action; a backdrop click also closes. Selecting and copying work
(
readOnly, neverdisabled). - Edit: Save + Cancel. Save calls
onSave(editedText)and closes. A backdrop click does not close (no stray-click data loss). Editable withoutonSaveis allowed: a draft pad, where Close discards. Escapecloses (discarding edits in edit mode);Ctrl/Cmd+Entersaves.
Contract
openreplaces whatever the pad shows (one pad per tab).- Validation:
textmust be a string of at most 2 MB;onSavewithouteditable: truethrows. Fail loud at the door. - No return value; no persistence. A throwing
onSavekeeps the pad open with the error surfaced in the footer. - Pad state survives session switches (module scope) but not page reloads.
How to install
Requires a DeepSeek Harness checkout and a profile, here web. The plugin
has no dependencies:
mkdir -p ~/dsh-plugins && cd ~/dsh-plugins
git clone https://github.com/joao-paulo-santos/dsh-scratchpad.git
# from the harness checkout
pnpm dsh plugin --profile web add ~/dsh-plugins/dsh-scratchpad
# verify the profile still composes
pnpm dsh --profile web --dump-config
Restart the harness. Plugins that inject the scratchpad service can now
open the pad.
Dependencies
- dsh-diff-view renders
mode: 'diff'pads (optional; without it a diff pad degrades to a plain before/after view)
Plugins dependent on this
- dsh-granular-prompt opens the pad for full-text viewing, section replacement, and diff review