Rewind complete conversation turns and checkpointed file edits, then restore the input draft.
Install
# from a prebuilt release tarball
dsh plugin --profile web add "https://github.com/gulagala001/dsh-undo-plugin/releases/download/v0.1.1-dsh.0.2.1-rc.2/gulagala001-dsh-undo-plugin-0.1.1-dsh.0.2.1-rc.2.tgz"
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:gulagala001/dsh-undo-plugin
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 — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Quick start
Required environment: DSH 0.2.1-rc.2, Node.js 22.19+.
File restoration only covers retained checkpoints. Older messages may support conversation-only rewind. External changes are checked before restoration; double Esc during generation retains the host Stop behavior.
1. Install
Open Plugins → Add plugin in the DSH instance you use, then paste:
https://github.com/gulagala001/dsh-undo-plugin/releases/download/v0.1.1-dsh.0.2.1-rc.2/gulagala001-dsh-undo-plugin-0.1.1-dsh.0.2.1-rc.2.tgz
Wait for active tasks to finish, then follow the host’s activation/restart prompt. Keep your existing profile and data. See the installation guide · SHA256SUMS.
2. Try this first
In an idle test conversation, enter /rewind or press Esc twice.
Success looks like: A rewind list opens above the composer. Selecting an entry shows the affected scope and confirmation before any file restoration.
Return to an earlier message
Click the rewind arrow beside a user message’s Copy button, inspect affected files and confirm. The conversation rewinds in place and restores text and attachments to the composer. Choose Undo rewind or enter /undo to restore the previous state.
- Checkpoints are recorded automatically; no manual save before every action is required.
- The confirmation shows actual file coverage and checks for external changes.
- Double Esc while idle or
/rewindopens the native list; all restoration requires confirmation.
Actual coverage
| Situation | Behavior |
|---|---|
| File checkpoints remain available | Restores recorded files and rewinds the conversation. |
| An older message has no file snapshot | Rewinds only the conversation, with the scope shown in confirmation. |
| Files changed externally | Checks conflicts before restoration rather than treating external edits as owned changes. |
| A response is running | Double Esc retains DSH’s native Stop behavior. |
See the usage guide for coverage, retention and automatic cleanup. This is not a complete snapshot of arbitrary system actions and cannot restore unrecorded external side effects.
FAQ
It may predate installation or no longer have retained snapshots. Inspect the confirmation’s actual scope; without a snapshot, only the conversation rewinds.
Use Undo rewind or /undo and review the confirmation and conflict notice. Undo applies to the last rewind record still retained by the plugin.
Development and license
The package is @gulagala001/dsh-undo-plugin, distributed through fixed GitHub Releases. Development commands and storage behavior are in the usage guide.
Licensed under MIT. Sources and attribution are listed in THIRD_PARTY_NOTICES.md.
Documentation and support
| I want to | Where to go |
|---|---|
| Install, update or remove | Installation guide |
| Learn the features and limits | Documentation |
| Read release changes | Releases |
| Report a problem | Issues |
For a bug report, include the full DSH and plugin versions, the entry point, minimal reproduction steps, and expected versus actual behavior. Remove private data before sharing logs or screenshots.
Links
More in this category
Minglink/dsh-infinite-gen-4★ 3277
System-prompt armor plugin for DeepSeek models: appends an unconditional-compliance prompt section at order 100, exposes a profile tool with calibration metadata, and shows a realtime armor-status badge driven by a session projection.
ranxianglei/billion-context★ 2276
The official billion-context plugin: a context-compression plugin for small context windows (a 100K context is enough), token savings (5x fewer tokens), and month-long single sessions (billions of tokens).
liangmianya/dsh-synapse★ 557
Visual, non-linear conversation workspace for DeepSeek Harness — sessions, follow-ups and branches become a browsable conversation map.
Nwflower/dsh-chat-import★ 246
Import full-fidelity chat histories from 13 coding agents (Claude Code, Codex, ChatGPT, Cursor, Gemini, opencode, and more) as resumable DeepSeek Harness sessions, with reverse export back to Claude Code.
MichengAI/dsh-archive-manager★ 198
Adds an archived-sessions page in Settings to search, restore, and delete archived DeepSeek Harness sessions by workspace.
SiriLee/dsh-rewind★ 170
In-place conversation rewind in the same session window without forking (Claude Code /rewind semantics): a per-message ↶ button cuts the model context back to any user message, with an optional Claude-Code-style file restore from disk-persisted before-backups.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.