In the Web GUI of DeepSeek Harness (DSH), when agents process files within a session workspace, they often need to switch to a terminal or external editor for viewing and version control. The dsh-workspace-files plugin adds a “Files” tab to the session view, providing directory browsing and VS Code-like Git operations directly in the browser.

Core Features

The plugin primarily provides the following capabilities:

  • Directory tree browsing: Supports lazy loading and muted display of hidden files.
  • File viewing: Supports UTF-8 text and binary detection; very large files are automatically truncated.
  • Git integration: Displays file status badges (M/A/D/R/?) and line-level diffs.
  • Git source control: Supports stage/unstage/discard changes/commit/pull/push/branch switching.
  • AI-generated commit messages: Uses the current session model to automatically generate commit messages based on diffs.
  • Theme adaptation: Keeps consistent with the overall DSH theme.
  • Security isolation: Restricts operations to the session workspace root directory to prevent path traversal.
  • Graceful degradation: Automatically degrades to plain file browsing mode for non-Git directories or when git is missing.

Installation

Install the plugin using the DSH CLI:

dsh plugin --profile web add github:sqfcyily/dsh-workspace-files

After installation, reopen the DSH Web GUI. A “Files” tab will appear at the top of the session view.

Usage

  1. In the Web GUI, enter any session and click the “Files” tab at the top.
  2. Browse the directory tree on the left: click a directory to expand it, or click a file to view its content.
  3. Stage files in the “Changes” section, or perform operations in the “Staged Changes” section.
  4. Commit: Enter a commit message, or click the AI generation button. Press Ctrl/⌘+Enter for quick commit.
  5. Push and branches: Use the pull/push buttons in the toolbar and the branch dropdown menu.
  6. Discard changes: Click ↩ to discard changes. You must confirm in the popup dialog (this action is irreversible).

Security and Implementation Details

  • Operation scope: All file system and Git operations are strictly limited to the workspace root directory of the current session. Path traversal attempts return a 403.
  • Symbolic links: The plugin does not follow symbolic links and reports them according to their own type.
  • Binary handling: Files containing a NUL byte within the first 8,000 bytes are identified as binary. Their content is not returned; only the binary: true flag is returned.
  • Request methods: Read-only browsing operations (listing, reading, diffing) use GET requests; Git write operations (staging, committing, pushing, etc.) use POST requests.
  • Git invocation: Git commands are invoked directly through execFile, without going through a shell, to avoid command injection risks.
  • Destructive operations: Discarding changes requires a second confirmation. Once executed, the operation is irreversible.

Ecosystem Background

DeepSeek Harness follows the “everything is a plugin” philosophy. This plugin is maintained by the community and is not part of the official DeepSeek or High-Flyer application store.