Retro Coding (dsh-gufa-code): Transform the DSH Main Panel into a VS Code-style IDE

Preface

People using DeepSeek Harness often encounter an awkward situation: agents modify files, run terminals, and request approvals in the right-side session, but you can only see text descriptions in the dialogue window. You can’t see exactly which lines were changed or what the diff looks like, nor can you easily open a terminal next to it to verify. To get a real editor, you have to switch to an external IDE, and the session, context, and approvals break.

The plugin introduced below, liujiangnanchenjbguo/dsh-gufa-code (“Ancient Coding Method”), solves this: it allows you to enter a VS Code-style IDE mode in DSH with a single click. On the left is the Monaco editor + Git + SSH + a real terminal; on the right, the official DSH session body is docked as-is. The plugin is maintained by liujiangnanchenjbguo, and the author’s philosophy is written in the comments: AI is the assistant, the human is the primary responsible party.

What is it

A DSH plugin. Click “Ancient Coding Method” in the “…” menu of a workspace row; the main panel switches to a three-column IDE:

  • Left: Activity bar + Resource Manager / Source Control / SSH / Terminal;
  • Middle: Monaco Editor (tabs, breadcrumbs, status bar, two-file diff, Git diff);
  • Right: The official DSH session panel is docked as-is; tool calls, auto read/write files, approval popups, slash commands, context references, and session history are all still there.

The IDE opens the workspace from which it was launched, and the right side automatically shows the session you are currently chatting in on that workspace. There is only one exit point: the “Return to Classic Mode” button in the top right of the title bar.

The repo currently has 1 star, category “Client”, license MIT, implementation language JavaScript.

Core Features

Editor

  • Monaco editor distributed offline with the package, no internet needed for download;
  • Multi-tab, syntax highlighting by extension, breadcrumbs, status bar (branch / lines / save state);
  • Save uses disk version conflict detection + atomic write, with unsaved markers;
  • Resource manager right-click supports new / rename / delete / copy / paste / open containing folder / two-file diff;
  • Supports Ctrl/Cmd multi-selection, soft delete, and ⌘Z undo.

Git & Diff

  • Source Control panel: Branches, ahead/behind (click to push/pull), change list, stage/unstage, commit (⌘⇧↵, auto-stage unstaged changes);
  • Git Graph: Swimlane view + commit files + view files of a specific commit, supports undo last commit, discard all, restore file by file;
  • Git diff uses Monaco diff view, strong red/green contrast, automatically locates the first change, the working side can be edited and auto-saved;
  • Two-file diff can select any two files, both sides editable (local draft, saved back to disk).

SSH & Terminal

  • SSH panel parses ~/.ssh/config, click once to execute ssh <alias> in the terminal;
  • Terminal is a real PTY + xterm: multi-tab, new/close, auto resize, light/dark theme, SSH and any command can run.

Right-side Session

What’s docked is the official DSH session body, not a screenshot, not a simplified version. The toolbar provides new session, session list, open full conversation, collapse. You can switch workspaces directly in the session popup: click the workspace name in the top right of the popup, the session list switches accordingly, clicking a session opens it, and the IDE project switches to that workspace.

Chat Box & Resource Manager File Interoperability

  • Files copied from Finder can be directly ⌘V pasted into the Resource Manager (written to the selected directory, duplicates automatically get “Copy”), or dragged directly into the file tree from Finder;
  • After copying a file in Finder and pasting ⌘V in the right-side dialogue input box, it will automatically match the file with the same name and content in the project and insert an @relative_path reference (images are still handled as DSH default attachments).

Shortcuts

Only effective in IDE mode, referencing VS Code: ⌘S Save, ⌘K Clear Terminal, ⌘J / ⌃\ Toggle Terminal, ⌘B Left Panel, ⌘W Close Tab, ⌘⇧E / ⌘⇧G Resource Manager / Source Control, ⌘⇧U SSH, ⌃⇧\ New Terminal, ⌘/ Line Comment (shortcut list for non-editor areas). Classic mode shortcuts are not affected.

Slacking Mode (Desktop Floating Layer, Experimental Feature)

Click the “Slacking” button on the IDE title bar to pop up a running App list. After selecting an App, “Ancient Coding Method” will bring that App to the foreground and make “Ancient Coding Method” appear as a borderless, semi-transparent, always-on-top independent floating window, snapping to that App’s current window, position and size match, following real-time when window moves/resizes; fixed snapping only stays in the Space / screen where the attached App is. The floating window title bar has an “Opacity 20%–100%” slider to adjust the whole window opacity in real-time and remember settings. Click “Exit Slacking” to bring the last state back to the main window. Global shortcut ⌃⌥⌘G toggles click-through.

Platform Support:

  • macOS Apple Silicon / Intel works out of the box (npm package contains arm64 + x86_64 universal helper); first launch depends on macOS “Accessibility” permission, System Settings → Privacy & Security → Accessibility → Check DeepSeek Harness, restart DSH once to take effect;
  • Windows available (experimental): npm package contains desktop/float/bin/win-x64/gufa-float-win.exe, prerequisites Windows 10/11 + WebView2 Runtime; first version window is opaque (opacity slider doesn’t affect window background), exe not code-signed may be blocked by SmartScreen;
  • Linux available (experimental, only X11): package contains desktop/float/bin/linux-x64/gufa-float-linux, depends on GTK3/WebKit2GTK runtime libraries; cannot follow/hide other windows under pure Wayland, falls back to X11 backend automatically when XWayland is present;
  • There is an “Self-Check” button at the bottom of the selector, which exports platform / helper / WebView2 / accessibility / X11 environment info in one click. When reporting issues, copy it first.

Installation & Activation

The plugin package is published on npm, installation command from README:

dsh plugin add dsh-gufa-code

You can also search for “Ancient Coding Method / dsh-gufa-code” in “Plugins → Plugin Marketplace” in DSH Desktop / dsh web.

Requirements: DeepSeek Harness 0.2.1 or higher, supports Desktop and dsh web in browsers. After installation, click the second item “Ancient Coding Method” in the “…” menu of the workspace row to enter the IDE.

After entering IDE, verify a few things: is the right-side session still the session for the current workspace, can the terminal run a command, can the Git panel read the branch. If all are normal, the plugin is compatible with the current dsh version.

Applicable Scenarios & Notes

Suitable for those who want to keep official session context in DSH while also wanting Monaco editor and real terminal: daily code changes, viewing diffs, committing, connecting SSH, running commands can all be done inside IDE mode, no need to switch out.

Points to note:

  1. The plugin runs with the permissions of the current dsh process, can read/write files in its workspace and run terminals, so before installing, read the source code (repo is public) and confirm the license (MIT);
  2. Slacking Mode is an experimental feature, restrictions vary by platform (Windows first version window is opaque, Linux pure Wayland not fully supported), if you encounter problems, use self-check to export JSON and logs for positioning;
  3. Slacking Mode requires macOS Accessibility permission or Windows/Linux corresponding runtime libraries, if permissions aren’t granted, the function is unavailable, but it won’t affect other IDE functions;
  4. “Slacking” manipulates the foreground/background and windows of other Apps, this is a highly invasive function, it is recommended to try it in a personal environment first;
  5. The author’s “Author’s Note” section expresses personal views on AI-assisted programming, does not represent any organization, and does not affect the plugin functionality itself.

Ending

The value of “Ancient Coding Method” lies in putting the editor and the official session in the same interface: AI works in the open, you verify in the open, every change can be diffed and undone. For those who want to stay in DSH to complete editing and verification, it fills the gap of “cannot see code / no terminal”.

  • Directory page: https://www.skillhub.cn/plugins/liujiangnanchenjbguo/dsh-gufa-code
  • GitHub: https://github.com/liujiangnanchenjbguo/dsh-gufa-code

For the complete release process, see docs/RELEASE.md in the repo; platform acceptance checklist in docs/FLOAT-ACCEPTANCE.md.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye