DeepSeek Harness (DSH) uses a plugin-based architecture. In agent development or complex task orchestration, developers often need to refer to ChatGPT suggestions or flow back finalized plans into the DSH workflow. Traditional copy-paste methods fragment the workflow. The dsh-chatgpt-pip plugin aims to eliminate this fragmentation by providing a picture-in-picture-style auxiliary window and flow-back capability.

Plugin Information

  • Name: dsh-chatgpt-pip
  • Author: alaxrpg
  • Category: Client
  • License: MIT
  • Description: Opens a regular ChatGPT chat mini-window on the left side of the conversation input area and flows back copied ChatGPT plans to execute in a new DSH conversation.

Installation and Enablement

This plugin supports native DSH Lite mini-windows (the shell WKUIDelegate handles window.open).

Version 0.4.0 can be installed by the following methods:
1. Use the “Update” flow in the plugin marketplace to install it.
2. Or select the plugin directory and manually install it via the file: protocol, then restart DSH.

After installation, restart and refresh the GUI. Confirm dsh-chatgpt-pip in the boot manifest, and confirm that /plugins/dsh-chatgpt-pip/client.js returns 200. The rev in the resource URL should equal the first 12 characters of the current client.js SHA-1 hash.

Core Features

Button Location

After entering any DSH conversation, two actions are displayed in conversation.input.left (the left side of the conversation input area):

  1. “Open ChatGPT Mini Window” appears first.
  2. “Execute Copied Plan” appears afterward.

Both buttons use pure linear SVGs, provide tooltips and aria-label, and do not use ChatGPT trademark icons. This slot belongs to session scope, so it is not displayed when there is no conversation.

ChatGPT Mini Window

Clicking “Open ChatGPT Mini Window” opens https://chatgpt.com/ in a named popup:

  • Fixed size: On first open and when reopening, the size is fixed at 520×760 and does not automatically read or remember the size after the user drags the window.
  • Window reuse: If the WindowProxy held by the plugin is accessible and not closed, it only focuses the existing window without navigating, preserving the current chat page.
  • Accidental click prevention: Within 5 seconds after the mini-window is successfully opened, repeated clicks only show the message “Mini-window is already open, please switch to that window” and do not open another new window. After 5 seconds, repeated clicks follow the same-name reopen logic.
  • DSH Lite support: In DSH Lite (macOS native shell), window.open is handled by the shell’s WKUIDelegate as a native mini-window (sharing login state with the DSH main window). If the window already exists, the shell only focuses it and returns nil. The plugin treats this as “reuse succeeded”.
  • Why not iframe: chatgpt.com uses x-frame-options: SAMEORIGIN and cross-origin-opener-policy: same-origin. The plugin uses a named-popup approach to bypass cross-origin restrictions.

Execute Copied Plan

  1. Copy the finalized plan from the ChatGPT response.
  2. Return to an existing DSH conversation and click “Execute Copied Plan” on the left side of the input area.
  3. The modal will attempt to read the clipboard. If reading fails, you can manually paste directly into the text box.
  4. View or edit the full text, verify the character count, and confirm or switch to the target workspace in the “Target Workspace” dropdown. Options display the workspace title and path; paths longer than 48 characters are elided in the middle. Empty text cannot be executed.
  5. Toggle the source explanation switch as needed. When off, the original text is sent, without truncation or rewriting.
  6. Click “Execute in New Conversation”. The plugin creates or reuses a blank DSH conversation and sends the final text as the first message.

No content is sent unless the user explicitly confirms it in the modal. There is no scheduled or background automatic injection path.

Privacy and Security

The plugin does not read, store, or transmit ChatGPT credentials, Cookies, Memory, Custom Instructions, or page DOM. The mini-window opens a regular ChatGPT chat. Login is preserved by the browser profile cookie, so the mini-window uses that account’s Memory, Custom Instructions, and persona settings. Conversations are recorded in the account history. The plugin also does not operate ChatGPT via APIs.

Applicable Scenarios and Notes

  • Browser recommendation: Chrome is recommended. Safari or permission denial may cause automatic clipboard reading to fail. In that case, the manual paste path remains available.
  • Security notice: The plugin runs with the permissions of the current dsh process. Check the source code and license before installation.
  • Troubleshooting:
    • Cannot see the two buttons: First enter any DSH conversation. When there is no conversation, session-scope actions are not displayed. Then force refresh and check the boot manifest and that client.js returns 200.
    • Clicking the mini-window button shows that popups are blocked: In a regular browser, allow popups for the current DSH address in the address bar and retry. In DSH Lite, confirm that the shell has been upgraded to a version with WKUIDelegate native mini-window support (0.x+).
    • After reopening, the size is not the last dragged value: This is expected behavior. First open and reopening are fixed at 520×760 and do not automatically remember dragged sizes.

Summary

dsh-chatgpt-pip provides a solution for seamlessly integrating ChatGPT suggestions into the DSH workflow. By using native mini-window reuse and clipboard flow-back mechanisms, it reduces friction from manual operations.