UI Enhancements

dsh-writing-pad

linhx1999/dsh-writing-pad · ★ 2

linhx1999Curated

Session-scoped Markdown writing pad docked beside the conversation, with edit/preview modes, selection-based AI rewrites, diff review, undo, and draft recovery.

License
MIT
Added
2026-08-16
Maintenance
active
Install kind
github
Manifest details
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-08-19
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add github:linhx1999/dsh-writing-pad

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. Highlights
  2. Install
  3. Release
  4. Usage
  5. Language
  6. Data and recovery
  7. Uninstall
  8. License

npm version npm downloads license

简体中文文档 English documentation

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.

The dsh-writing-pad side panel in the DeepSeek Harness web GUI

Highlights

  • Open it anytime: open or close the writing pad from the composer toolbar and keep it open while switching sessions or sending a new session's first message.
  • 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_draft for a complete candidate; selection edits use rewrite_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: while the writing pad is non-empty, the complete draft travels as separate context beside the main-composer message; the message remains the user's original text and is never labelled as an 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 the current plugin, run the latest dsh release from npm's latest tag, reinstall the plugin, and 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

  1. Click “Writing Pad” in the composer tool row.
  2. Enter or paste Markdown and switch between edit and preview as needed.
  3. Select the passage to change; focus moves to the additional-instruction editor.
  4. Enter instructions. Press Enter to send or Shift+Enter for a new line, and optionally save the text as your default.
  5. 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.
  • While the writing pad is non-empty, every real user message from the main composer carries a separate complete-draft context, with the user's original text outside that context. Selection rewrites retain their own additional-instruction field and also carry the full draft. Both paths produce one user message whose full draft stays hidden in the UI.
  • Draft, additional-instruction, and selection elements use a multiline XML layout for readable transcript inspection without changing the original CDATA text.
  • After a restart, the plugin recovers the latest accepted draft and pending writing-tool candidate; legacy writing_draft events remain recoverable, and this browser replays stored review decisions.
  • Manual edits that have not travelled with any user message do not survive a Host-process restart.

Uninstall

dsh plugin --profile web remove dsh-writing-pad

License

MIT