Introduction

The plugin-based architecture of DeepSeek Harness allows developers to extend environment interaction capabilities. dsh-plugin-ssh adds SSH/SFTP capabilities, enabling agents to execute commands and transfer files directly in the host environment, and to use the host AI model to assist with troubleshooting. It does not require a standalone SSH client and is integrated directly into the Harness workflow.

Plugin Purpose

This is an SSH/SFTP workspace plugin for DeepSeek Harness, providing multi-host terminal access, file transfer, and an AI command assistant. It is maintained by techflag and released under the MIT license.

Installation and Activation

Before installing, ensure that DeepSeek Harness Web is installed and that the version is no lower than 0.1.2-rc.1. Run the following command in the download directory to install the plugin:

npx @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add ./dsh-plugin-ssh.tgz --ignore-scripts

After installation, refresh the browser. You will see the SSH entry in the sidebar. Click it to open the workspace.

Core Features

Host Management

You can add, edit, and delete server hosts. Before connecting, verify the server’s SHA256 fingerprint to ensure security. You can select “Remember password”; the password is encrypted with AES-256-GCM and stored locally on the host. Private keys and private key passphrases are not saved. Deleting a host also clears the corresponding saved password.

SSH Terminal

This provides an interactive PTY terminal with multi-session tabs. Closing a tab disconnects the corresponding SSH connection. Terminal dimensions are synchronized with the local terminal.

SFTP Files

You can browse remote directories, with colors used to distinguish file types. Drag and drop or select multiple files to upload to the current remote directory. Selected files can be edited as UTF-8 text or downloaded.

Workspace Layout

The file area and terminal area are arranged vertically by default. You can drag the divider to adjust the ratio. The file preview and terminal can also be resized vertically by dragging.

AI Assistant and Transfer Management

  • AI Assistant: Select terminal content and click “Use AI to Resolve Selected Content” for analysis.
  • Transfer Management: Both manual uploads and direct AI transfers display byte progress, percentage, and speed. You can cancel transfers and clear records.

Typical Usage

Invocation in Chat

In the host input box, type @server, select the target from the candidate menu, and describe the task directly. For example: “Check the Java environment and deploy this jar.” Upon submission, the task is serialized into an SSH context visible to the model.

Full Workspace

Enter /ssh to open the full SSH workspace. In this interface, the file and terminal layout is more flexible and supports drag-based resizing.

AI Command Operations

Single-line Shell code blocks generated by the AI in its responses can be inserted by clicking Insert into Terminal or executed by clicking Execute. Before execution, confirm the target host, and ensure that the terminal is at an empty command prompt. Multi-line code blocks are for viewing only.

Notes and Limitations

Network and Routing

SSH routing accepts only the local address http://127.0.0.1:<port>. Accessing Harness remotely or using localhost addresses is not currently supported.

Files and Performance

  • The maximum size for a single file download is 32 MB.
  • UTF-8 text files within 64 KB are editable; files over 64 KB are read-only previews; files over 512 KB display only the last approximately 512 KB.
  • Up to 12 concurrent SSH sessions are supported.

Feature Boundaries

The following features are not currently supported: jump hosts, recursive directory transfers, transfer resumption, automatic reconnection, terminal splitting, host grouping, and syntax highlighting.

Data Security

  • Passwords are stored in the local file system, protected by the current user’s permissions, and do not depend on the system keychain.
  • Deleting transfer records does not delete the remote files.
  • The default command timeout is 60 seconds, and the maximum output size is 128 KB.

References