DSH Hub
dsh-rewind-plugin cover

SiriLee/dsh-rewind

dsh-rewind-plugin

UIWeb UI11 GitHub stars· updated 2026-08-22

DeepSeek Harness plugin: in-place conversation rewind in the same session window (Claude Code /rewind semantics) + optional file restore

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-rewind-plugin

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-rewind-plugin DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-rewind.svg)](https://dshhub.dev/plugins/dsh-rewind)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from SiriLee/dsh-rewind, cleaned of badges and images.

dsh-rewind

In-place conversation rewind for DeepSeek Harness: Claude Code's /rewind semantics inside the same session window — cut the model context back to an earlier user message, and optionally restore workspace files from disk-persisted before-backups.

English | 中文

A deliberately focused plugin with one job: rewind to any earlier user message, in place.

ModeConversationWorkspace files
Rewind conversation onlyCut back to the target messageUntouched
Rewind conversation and codeCut back to the target messageRestored to their state before it (modified files written back, later-created files deleted)

Rewinding is time-travel: the target message and everything after it (agent replies, tool calls) are withdrawn from the model context and the rendered transcript — no new session, no window switch — and the target's text is offered back in the composer so you can edit and re-send it.

The plugin never rewrites the append-only session log and never touches your git repository.

Preview

Each user message gains a compact ↶ rewind action in its action row. Clicking it opens a mode-selection popover; "conversation and code" first shows the exact restore / delete list for confirmation (the option is hidden when there are no tracked changes — like Claude Code's code-restore visibility).

<td align="center"><img src="assets/screenshots/rewind-button.png" width="440" alt="Per-message ↶ rewind button"><br><sub>Per-message ↶ rewind button</sub></td>
<td align="center"><img src="assets/screenshots/mode-popover.png" width="440" alt="Mode-selection popover"><br><sub>Mode-selection popover</sub></td>
<td align="center"><img src="assets/screenshots/impact-list.png" width="440" alt="Impact list"><br><sub>"Conversation and code" impact list</sub></td>
<td align="center"><img src="assets/screenshots/rewind-candidates.png" width="440" alt="/rewind candidate picker"><br><sub>/rewind candidate picker</sub></td>

Install

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

Restart dsh web (--profile web) after installing.

⚠️ The npm name dsh-rewind belongs to another author's package — install with dsh-rewind-plugin.

For contributors: install from a local checkout or a pinned commit — dsh plugin --profile web add /path/to/dsh-rewind or dsh plugin --profile web add github:SiriLee/dsh-rewind#<sha>. A git install fails on first run until you add an allowBuilds key to the profile's pnpm-workspace.yaml (pnpm blocks git dependencies from running build scripts); after that it runs the plugin's prepare and installs it.

Usage

  1. Hover any user message you sent — a ↶ rewind button appears in its action row.
  2. Click it. The target is that message; a small popover offers the two modes ("conversation and code" is hidden when no tracked file changes exist after the target).
  3. The rewind executes as an in-session command; a result message confirms, and the withdrawn message's text is filled back into the composer for editing and re-sending.

Command-line entry: type a bare /rewind and press Enter to open the candidate picker; selecting a target continues the same flow as the button.

Both the candidate picker and the mode popover support the keyboard: ↑↓ to move, Enter to confirm, Esc to cancel/back.

Related plugins