DSH Plugins Marketplace

DSH Plugins

Plugins

/

UI & Experience

/

DSH-EasyRewrite

R

DSH-EasyRewrite

Manifest valid★ 128

DSH Web's most seamless message recall & re-edit plugin — native experience, strong compatibility, simple toggleable features, rich settings, modern lightweight UI framework. The most seamless message recall & re-edit plugin for DSH Web — native experience, strong compatibility, simple toggles, rich settings, modern

UI (client)hasBundlePatch
dsh-easyrewrite

DSH-EasyRewrite

English | 日本語

npm version license stars downloads dshfind

#dsh #deepseek-harness #撤回 #气泡编辑 #重编辑 #版本翻页器 #i18n #多语言

Edit and recall your own messages inline, right inside DeepSeek Harness Web — lazy, traceless, zero-loss.

Click your message bubble to edit in place; click the recall button next to copy to recall that message and everything after. All changes take effect only after you confirm — before pressing "Confirm" (edit) or "Send" (recall), the conversation, context, and logs stay untouched.

Compatible with DeepSeek Harness Web (2.4.0 requires dsh 0.1.2-rc.1+; users on host 0.1.1-rc.2 or earlier should stay on 2.3.1 — the final release of that line, fully functional, just no longer receiving new features). Implemented purely via official extension points; DSH source code is not modified.


📸 Visual Tour

双区拖拽与协同舒展

✨ 独创双区拖拽与协同舒展:气泡编辑拖入文件智能分流(释放到上方气泡添加至正在编辑的消息,释放到底部 2.5x 平滑放大的输入框暂存新对话,双区隔离零串发)


Quick Start

# npm一键安装
dsh plugin --profile web add dsh-easyrewrite

Implemented Features

In-Place Bubble Editing (Rewrite) — Implemented (M2/M4)

  • Click to Edit: Single-click your own message bubble to enter in-place editing mode directly (preserving the original Markdown source). Esc to cancel / Ctrl+Enter to confirm.
  • Three editing width presets: Compact (starts at bubble width, capped at 360px) / Standard (fixed 360px) / Expanded (fills the message row) / Custom, with auto-height and smooth internal scrolling.
  • In-place model & reasoning-level switching: The edit box includes a native model selection dropdown, allowing you to switch the resend model and reasoning depth (Reasoning Effort) for the current message.
  • Full image-message editing and drag-and-drop add/remove: Multi-image messages are laid out in equal-width thumbnail rows, supporting individual × removal, clipboard paste, and drag-in for new images; edit progress is preserved as-is after refresh.
气泡原位编辑    模型与推理等级切换
带图消息编辑

Recall — End-to-End Complete

  • Seamless native interaction: A recall button sits next to the official copy button on every user message, appearing on hover.
  • Inline confirmation capsule: dsh official-style minimalist gray-white capsule(撤回这条消息及其后 x 条提问? + 「确定/取消」),with a live count of questions to recall (0 shows「是否撤回这条消息?」).
  • Lazy commit &「正在修改」banner: Confirming only backfills the draft to the bottom input box and shows an「正在修改」banner; truncation runs only on「发送」. Click × to cancel and restore the original draft — session and context stay untouched.
  • Traceless replacement & folding: In edit/recall mode, history replies after the target are auto-folded; after resend the old session is archived and a same-named new one takes its place, feeling native.
消息悬停操作    行内确认胶囊
撤回编辑中与上下文隐藏

Version Pager (< X >) — Implemented (M3)

  • Seamless multi-version switching: After each recall or edit-resend, a ‹ X/N › native-style pager is embedded in the action area of that query's last answer.
  • Context linkage: Click arrows (or ←/→) to switch branch versions; the entire downstream context auto-refreshes to follow.
  • Viewport anchoring and archive swap: Viewport stays anchored without jumping; only one active session is kept, and all archived versions can be restored from Settings.
版本翻页器

Settings Center & Personalization (Settings) — Implemented (M3/M4)

  • Official-style collapsible config card: Seamlessly integrated under Settings → Plugins → EasyRewrite, with UI language auto-syncing with the system (中文 / English / 日本語).
  • Rich granular options:
    • Master toggle for bubble editing, fallback recall button when bubble editing is off
    • Edit width (Compact / Standard / Expanded / Custom)
    • Recall confirmation capsule toggle, show images on pending review, three recall visual modes (Simple / Minimal / Info)
    • Shortcut recording (one-click recall of the most recent message when input is unfocused)
    • Backfill conflict mode (overwrite mode fully restores the original draft after send/cancel, zero loss)
    • Version history tree browsing and one-click manual restore
    • Built-in self-update detection and one-click upgrade
设置卡片(上半部分)    设置卡片(下半部分)

Auto-Backup of Drafts — Implemented (M3)

  • When a pending draft has been untouched for more than 10 seconds and new changes arrive, it is automatically overwritten and backed up to a local file; it is safely deleted the moment “Confirm / Send” completes.
  • Backup location: $DSH_HOME/dsh-easyrewrite/backups/<会话ID>.json.
  • Recovery fallback: restores from backup only when there is no pending state locally — it will never overwrite a draft currently being edited.

What Sets It Apart

Capabilitydsh-easyrewriteOther recall/edit plugins
Recall✅Basic feature
Traceless replacement (achieving a "natively supported" feel, invisible edit-resend)✅Basic, but we do it more thoroughly
Lazy commit (context actually changes only after confirm, zero modifications if cancelled mid-way)✅Some competitors modify directly, causing various cache-hit/context issues
In-place bubble editing (Rewrite)✅No competitor currently offers this
Version pager < X > (switch history versions, a golden design validated countless times by Chatbox)✅No competitor currently offers this
Draft persistence + timeout auto-backup + crash recovery (robust recovery logic protecting every thought)✅No competitor currently offers this
Edit-resend preserves image attachments✅No competitor currently offers this
Purely official extension points (zero source patches, uninstall restores everything)✅Competitors rely on source patches, hard to uninstall, complex dependencies
Trilingual UI & i18n support✅Almost no thorough i18n support; we natively support multilingual with 3 preset languages
All features individually toggleable✅No competitor does this better than us

Design Philosophy

1. Simple & Compatible — easy to use, easy to learn, great compatibility

  • Intuitive: click a bubble to edit, undo sits next to the copy key — no new concepts or entry points.
  • Sensible defaults: defaults are optimal for most cases; works out of the box, no config needed.
  • Compatibility is a hard promise: only official extension points are used (keyed slot overrides, official fork RPC, official components and design tokens); no source modifications, no reliance on fragile internal APIs; we proactively adapt when DSH upgrades — never trade "modifying your install" for features.
  • Uninstall restores everything: no leftover config, no changes to official files.

2. Faithful, Seamless & Invisible — restore the original experience, traceless and imperceptible

  • UI language fully follows dsh native style (gray-blue palette, rounded corners, capsules, official icons), with dark/light theme auto-adaptation — looks like an official feature, not "another plugin skin".
  • Original interactions preserved as-is: copy button, hover send-time, bubble appearance — nothing missing.
  • Imperceptible: in daily use you barely notice the plugin exists — every feature is where you expect it, every result matches intuition; no popups, no interruptions.
  • Lazy commit is the foundation of restoring the experience: entering edit or confirming recall are just local draft states; context is only truly modified on "Confirm" (rewrite) or "Send" (recall) — close dsh and nothing has changed.
  • Traceless replacement: after recall, the perception is "the original conversation was edited" — old session archived, same-named new session replaces it, modified text auto-sent, with no jarring "a new conversation popped up" feeling.
  • Bubble editing (coming soon): click to edit in place, WYSIWYG — a natural extension of the same traceless philosophy.

3. Persistent & Accident-Proof — persistent retention, zero loss on mishaps

  • Edit/undo drafts are persisted per session: switch chats, refresh, restart dsh — progress resumes as-is, no "lost halfway through."
  • In override mode, the original pre-refill draft is restored on send or cancel — no data loss on any path.
  • Idle pending drafts auto-back up to a local file (deleted on completion), providing a safety net even in extreme cases.
  • Every key step has confirm and undo paths: confirm pill, × cancel, single-pending constraint — typos recoverable, no data loss.

4. Comprehensive Logging — log everything, diagnose fast

  • Full-chain instrumentation: every key client step (load, confirm, pending, send hook, fork, resume) is auto-reported to host, unified into $DSH_HOME/dsh-easyrewrite.log.
  • Uniform JSON-line format (time / level / tag / message / data) — one reproduction locates the issue, no repeated problem descriptions needed.
  • Host behavior is also logged (requests, rejection reasons, exceptions); front-end and back-end form one auditable chain.
  • Logs only record local behavior; no data is uploaded.

5. Keep Moving — continuous updates, proactive compatibility

  • Follows DSH version releases (rc.x → stable); upstream API changes are adapted to promptly.
  • Semantic versioning + CHANGELOG; every change is traceable; breaking changes are announced in advance.
  • Community-driven: issues/PRs actively addressed; new ideas and scenarios continuously folded into the roadmap.

Installation

# npm 已发布(推荐)
dsh plugin --profile web add dsh-easyrewrite
# 或从 GitHub
dsh plugin --profile web add github:Renzic-Stone/DSH-EasyRewrite

Restart dsh web, then hard-refresh the page with Ctrl+Shift+R.

Recall timing note: DSH's fork can only truncate at closed-turn boundaries; messages within an unfinished turn cannot be recalled yet — wait for the reply to complete. (The UI will show "The turn containing this message has not ended yet…")


Debugging

Every client step is reported to host and written to the unified log:

$DSH_HOME/dsh-easyrewrite.log   # 例如 ~/.dsh/dsh-easyrewrite.log

JSON line format: { t, level, tag, message, data }.


Project Structure

dsh-easyrewrite/
├── lib/index.js          # host half:边界解析 + /bubble/recall、/bubble/log
├── src/client.src.js     # client 模板(图标构建期内联)
├── assets/               # 撤回/编辑图标(PNG,深色模式 CSS invert 自适应)
├── build.mjs             # assets → data-URL → lib/client.js
├── DESIGN.md             # 完整交互设计(v1.0,20 项产品决策)
├── PROJECT_PLAN.md       # 路线图、架构、git 工作流
└── docs/                 # api-facts、m0-verify

License

MIT

Compatibility

DSH 0.2.1-rc.4: failedDSH 0.1.6-alpha.1: failedDSH 0.1.7-rc.1: failed

Versions

Latest versionPublishedSize
0.2.0——
0.3.0——
0.4.0——
1.2.2——
1.2.1——
1.0.0——
1.3.1——
1.3.2——
1.3.3——
1.3.4——
1.3.5——
2.4.1——
2.4.0——
2.0.0——
2.2.0——
2.3.0——
2.5.1——
2.5.3——
2.5.4——
2.5.0——

Comments

Loading…

Similar plugins

dsh-message-recall

by kyle123740

每条消息可撤回 / 删除 / 删除此处及之后 —— DSH 插件(append-only 墓碑,模型上下文与界面同步)。Per-message recall & delete for DeepSeek Harness. Requires dsh >= 0.1.7.

Development & InfrastructureSessions & MessagesManifest valid

★ 3

↓ 37/wk

MIT

JavaScript

Oct 23, 2026

dsh plugin --profile web add dsh-message-recall

by hg1048596-pixel

DeepSeek Harness (DSH) 插件:在模型读取前撤回已发送的文字消息,支持单条与全部撤回。A DeepSeek Harness plugin that recalls sent-but-unread text messages before the model reads them — one-by-one or all at once.

UI & ExperienceManifest valid

★ 126

MIT

JavaScript

Oct 3, 2026

dsh plugin --profile web add dsh-recall-unread

by JoukoPuro

一个 DeepSeek Harness(DSH)插件: 在 Web 输入框的工具行中添加一个 ✨ 图标按钮。点击后选择打磨风格,已接入的大模型 会把你草稿中的提示词改写得更专业、更易被 AI 理解 。A DeepSeek Harness plugin: icon-only composer button that rewrites your prompt via the connected LLM

Sessions & MessagesManifest valid

★ 8

↓ 101/wk

MIT

JavaScript

Oct 17, 2026

dsh plugin --profile web add dsh-prompt-polish

by yakoylp

DSH 本地通知栏插件:侧边栏【通知】入口 + 全屏通知中心(时间筛选/搜索/未读已读/删除/详情一键复制),notify_add agent 工具 + CLI 写入,JSON 持久化,实时刷新,界面跟随 dsh web 语言切换。Local notification center for DeepSeek Harness: notify_add agent tool & CLI, live re

Notifications & IntegrationsDevelopment & InfrastructureManifest valid

★ 0

MIT

JavaScript

Sep 10, 2026

dsh plugin --profile web add dsh-localnotify

by SiriLee

DSH 插件:真正便捷无感的同窗口内对话回退,从不新建分支;自带轻量工作区备份,可一并还原文件(完整 Claude Code /rewind 语义)。 · DSH plugin: genuinely effortless in-window conversation rewind — never forking a new session; ships a lightweight workspac

Sessions & MessagesManifest valid

★ 211

↓ 5.6k/wk

MIT

TypeScript

Oct 28, 2026

dsh plugin --profile web add dsh-rewind-plugin

by jh1016248

DSH(DeepSeek Harness)插件:会话标题栏一键导出当前会话 —— 「保存 MD」下载纯净 Markdown,「保存 HTML」下载带左侧目录、表格与代码块渲染的网页。自动过滤模型思考过程与工具调用记录,只保留用户与助手的正文,适合归档、分享与撰写报告。安装:dsh plugin --profile web add dsh-save-session

Development & InfrastructureManifest valid

★ 0

↓ 690/wk

MIT

JavaScript

Sep 11, 2026

dsh plugin --profile web add dsh-save-session