Session-scoped Markdown writing pad docked beside the conversation, with edit/preview modes, selection-based AI rewrites, diff review, undo, and draft recovery.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:linhx1999/dsh-writing-pad
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A session-scoped Markdown writing pad for the DeepSeek Harness web GUI. It docks beside the conversation, keeping drafting, preview, and focused AI rewrites in one workflow.

Highlights
- Open it anytime: open or close the writing pad from the composer toolbar and keep it open while switching sessions.
- Focused rewrites: select text, enter multi-line instructions, save reusable defaults, and resize the instruction area.
- Proactive writing-pad delivery: when users ask to draft, write, continue, or generate usable text, the model prioritizes
write_full_draftfor a complete candidate; selection edits userewrite_selected_text. A tool call opens the writing pad automatically, then the candidate reveals its Diff at the first change. - Visible state: the UI reports saving, copying, generation, pending review, and failure states.
- Host-synchronized language: client UI copy switches immediately with dsh's 中文/English setting.
- Clean conversations: the complete draft reaches the model, while the visible message bubble shows only the selected passage and additional instruction.
- Session-scoped state: drafts remain isolated by session, with edit/preview modes, full-draft copy, clear, and up to 50 undo steps.
- No workspace writes: drafts are staged in Host memory and never create or overwrite project files automatically.
Install
Install the dsh CLI first, then add the latest stable release to the web profile:
dsh plugin --profile web add dsh-writing-pad
Start the web GUI:
dsh web
For local development, package and reinstall the current version, then start the web GUI with:
pnpm dev
Release
Update and commit the version in package.json, make sure npm login is complete and the working tree is clean, then run:
pnpm publish
The prepublish hook runs type checks, tests, and package verification before publishing directly to npm without an extra confirmation prompt. The postpublish hook verifies the version and creates the local v<version> tag. It does not push the tag; review the release and follow the printed command to push it manually.
Usage
- Click “Writing Pad” in the composer tool row.
- Enter or paste Markdown and switch between edit and preview as needed.
- Select the passage to change; focus moves to the additional-instruction editor.
- Enter instructions. Press Enter to send or Shift+Enter for a new line, and optionally save the text as your default.
- Review the highlighted Diff and accept or reject it. Leaving review without choosing accepts the candidate by default.
Language
The writing pad's client controls, status feedback, and writing-request summaries follow the dsh Host language setting (中文/English). When additional instructions are empty, the plugin chooses the default rewrite instruction in the active UI language at send time and includes it in the request. User-saved default instructions always retain their original text. Host tool descriptions, tool-result markers, the XML wire format, and replay parsing retain their existing Chinese conventions and do not change with the UI language.
Data and recovery
- Edits are debounced into the current Host process's memory.
- A rewrite request carries the complete current draft in the same XML user message; the UI hides that XML.
- After a restart, the plugin recovers the latest accepted draft and pending writing-tool candidate; legacy
writing_draftevents remain recoverable, and this browser replays stored review decisions. - Manual edits that have not travelled with a rewrite request do not survive a Host-process restart.
Uninstall
dsh plugin --profile web remove dsh-writing-pad
License
MIT
Links
More in this category
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2842
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
omdsh-dev/DSH-better-sidebar★ 1343
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
ccch1mneyyy/dsh-TUI★ 1323
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/dsh-at-file★ 228
Codex-style `@file` mentions: search workspace files in the composer and attach their contents to prompts.
huiliyi37/dsh-tianshu-tui★ 175
A terminal UI (TUI) for DeepSeek Harness.
Nagi-ovo/dsh-visualize★ 126
In-conversation generative UI: the model renders interactive HTML cards into the chat stream, with streaming preview and sandboxed rendering.