ZOYKUHot Board

liguobao/ds-harness-remoteDocumentazione

基于 DeepSeek Harness 插件机制构建的远程访问方案,通过低延迟、端到端加密的 P2P 网络,支持使用 PC、移动端 和 Web 随时访问本地设备上的DSH 、CodeX、Cursor、Claude Code等工作区。 (Built on DeepSeek Harness plugins, this low-latency, end-to-end encrypted P2P solution lets PC, mobile, and web clients access local DSH, Codex, Cursor, and Claude Code workspaces.)

Nota sulla lingua:Documentazione tradotta non disponibile. Visualizzazione dell'originale ufficiale in inglese.
npm i ds-harness-remote

DeepSeek Harness Remote

English  ·  中文  ·  日本語

Documentation Web Android iOS

npm License: MIT Self-hosting dshfind downloads

Connect once. Ready whenever you are.

Continue using your DeepSeek Harness instance from a phone, computer, or browser. Return to the same Harness session from whichever device is with you.

Harness keeps running on your work computer, with the same workspaces, tools, and project setup. DS Harness Remote is simply another window into that environment.

The DeepSeek Harness desktop edition is supported. Install the latest release:

[email protected]

Features

  • Access your local Harness instance remotely from the web, a PC, or a mobile device: DSH first, with Codex, Cursor, and Antigravity support too.
  • DeepSeek Harness Desktop is ready to use after installation, with its native interface and no separate desktop conversation UI.
  • Create workspaces, configure models, and switch conversation models with the same smooth workflow as local use.
  • No public listening port or public IP is required on the Harness Host. Connect from anywhere with internet access over a bidirectional end-to-end encrypted channel.
  • Prefer P2P connections, use TURN relay nodes worldwide, and fall back to multiple Server Relays when needed.
  • Access workspace files, read-only previews, remote terminals, and authorized local development-service previews through the native Harness sidebar.
  • Remote Tool context injection supports Host and workspace discovery, Harness session creation and management, history reading, waiting for execution, interruption requests, and authorized file transfers. Details.
  • Alongside DeepSeek Harness, access native workspaces for Codex, Cursor, Google Antigravity, Pi, OpenCode, Claude Code, Harness Agent, and other tools through ACP integrations, with remote file browsing and terminals.
  • Clients are available across Android, iOS, Web, and native DSH.
  • Multiple clients can connect to the same Harness Host simultaneously, with RPC calls and streams isolated per connection.

Supported clients

Client Form Status Notes
DSH Desktop plugin Remote sidebar Supported Install [email protected]; this computer can also be the Host
Web Browser page Supported Open https://dsh.r2049.cn; reuses the native Harness interface
Android Native app Supported Download the APK from Releases; see the Android guide
DSH Go A standout app by ccch1mneyyy Supported See ccch1mneyyy/dsh-go: an Android client for DeepSeek Harness. Run it directly on your phone or control DSH on your computer remotely.
iOS TestFlight beta Beta Not publicly released; see issue #20
Browser extension Chrome Entry point only Exchanges an already signed-in Web authorization for a separate device credential, lists online Hosts and opens the same-origin Remote Web; it does not host a conversation UI
dsh-TUI Terminal-only CLI Planned Integration is not part of this release and returns in a later version; the installer never creates a Web service for it automatically
Linux Cloud server Supported Sign in on the official website to install with one command.

Several clients can connect to the same Host at once; RPC calls and streams are isolated per connection.

Install

DeepSeek Harness Desktop support

Open Extensions / Plugin management in DeepSeek Harness Desktop, choose installation from npm, and enter this package:

[email protected]

Restart Desktop afterward. Its official dsh launcher can also install the pinned package with dsh plugin --profile desktop add -w [email protected].

On DSH 0.2.2+, npm installations support version checks and updates in Plugin management, with an attempt to restore the previous version if hot updating fails. GitHub and local link installations must switch to npm first; see online updates.

Linux one-command installation

Visit https://dsh.r2049.cn, sign in, and obtain an installation authorization code to install with one command.

Native Android client

Keep conversations connected across multiple workspaces at once, and use Bot mode, powered by Fei2411/DS-Bot.

Download the latest APK from GitHub Releases, and sign in to the same account to see your Hosts.

DSH Go — DeepSeek Harness in your pocket: run it locally on your phone or control your computer remotely.

ccch1mneyyy/dsh-go has built-in support for the ds-harness-remote protocol. You can run DeepSeek Harness locally on your phone or connect to your computer remotely.

After installing the ds-harness-remote plugin in DSH Go on your phone, you can also connect to the phone’s DSH from your computer or the web and use Mobile Use seamlessly.

iOS client

Quick start

  1. Open Remote from the DeepSeek Harness sidebar.
  2. Choose Zhihu, GitHub, or Google authorization, or sign in with an account and password. Account registration requires an invitation code; email the repository author to request one.
  3. On another device, install the same plugin in DeepSeek Harness and sign in as described in steps 1–2. Alternatively, use Remote Web, iOS, Android, or DSH Go directly without installing a plugin.
  4. Select an online Host, then choose an existing workspace or browse remote directories to open one.

By default, Remote uses this project's hosted Server at https://dsh.r2049.cn.

For self-hosting, use the repository's minimal Server. The current version includes WebRTC LAN/P2P/TURN coordination (TURN requires your own coturn deployment) and an encrypted Relay Server, but does not provide the full hosted Remote Web experience.

Screenshots

Desktop

On another computer, select an online Host and open its workspace. The workspace opens in the native Harness interface, with the active Host and encrypted connection status in the header.

Remote workspace picker listing online Hosts A Harness conversation running through an encrypted remote connection

To prevent this computer from controlling other Hosts, open the Host list at https://dsh.r2049.cn/ and enable Controlled only. This device will no longer see other devices under your account, while Web and other clients can still connect to it remotely.

Android

Use text or image prompts, switch models, and access supported workspace files and terminals.

Android client listing online and offline computers Sending an image prompt from the Android client Viewing the image response in the Android client

Mobile Settings includes a global Compact conversations switch, off by default and applied when a conversation is next opened.

Supporting Hosts reduce historical tool details while preserving messages and tool status. Turn the setting off and reopen the conversation to load full history.

How it works

DSH Desktop / Remote Web / Android
  ↔ authenticated, end-to-end encrypted channel
Remote Plugin on the Host
  ↔ supported Harness or optional Codex workspace support
Harness sessions/workspaces or Codex projects

The Harness Host does not need a public listening port. Connect from anywhere with internet access over ds-harness-remote’s bidirectional end-to-end encrypted channel.

The client switches to the selected Host’s native Harness API, keeping the original workspaces, tools, and permission flows on that computer.

You can also edit Harness and plugin settings on the remote host. Available options depend on which settings Harness and each plugin expose through the official settings API.

Experimental ACP workspaces

The Host runs local ACP-capable Agents and forwards prompts, streamed replies, and approvals through ds-harness-remote. Each Agent keeps its own workspaces and sessions; only session translation for DSH is performed, without writing to Harness storage.

Supported backends:

  • Codex — connects through App Server, using the shared workspace entry.
  • Cursor — connects through the CLI's ACP interface.
  • Antigravity (AGY) — connects through an adapter for its stream-json CLI.
  • Pi Agent (experimental) — automatically detected after installing and configuring Pi and pi-acp; can be disabled in settings. Tools run with Host-user permissions, without per-tool confirmation by default.
  • OpenCode — connects through opencode acp, with workspaces and history. Session archiving requires a build with the authenticated API; unarchive is not yet available.
  • Claude — connects through a locally authorized claude-agent-acp; enable it in settings. Supports text and approvals; images are not yet supported.
  • Hermes — connects through hermes acp; enable it in settings. Supports text, images, streamed output, approvals, and model selection.

Claude and Hermes also support direct file and terminal access, subject to the Host's workspace boundaries and terminal settings.

Setup and adapter development: Agent workspace integration guide.

Model selection for Cursor, Claude, Hermes, Pi, OpenCode, and AGY on Desktop/Android uses the Host's actual model catalog as determined by the Agent’s ACP interface.

Reasoning effort options depend on what the backend provides. Cursor uses a separate process per session, so model changes do not affect other conversations.

End-to-end encryption

Harness business traffic is encrypted on the Client and decrypted only by the selected Host using the fixed Noise_IK_25519_ChaChaPoly_SHA256 suite.

Connections must pass both same-account membership and locally pinned device identity key checks.

The service can coordinate connections and observe necessary network metadata, but it cannot read session messages, prompts, tool output, workspace paths, or remote file contents.

See End-to-end encryption for the handshake, key lifecycle, visible metadata, replay protection, and security limits.

Network and transport

The Host opens outbound connections only; it does not listen on a public port or require router port forwarding.

Remote negotiates paths in the order LAN -> P2P -> TURN -> Relay.

When WebRTC is unavailable or cannot connect, it falls back to the encrypted WebSocket Relay.

Every path carries the same Noise ciphertext and keeps the same Host/Client identity boundary.

See Network and transport for the topology, control and data planes, NAT behavior, fallback, reconnect semantics, and current validation status.

Security

  • On LAN and P2P paths, data bypasses the Server except for connection coordination. TURN uses the open-source coturn server; Relay mode forwards traffic over WebSocket.
  • Session traffic is end-to-end encrypted. The service relays ciphertext without storing session plaintext or device private keys.
  • Same-account devices connect without extra confirmation; see device trust and permissions.
  • Remote Tools injection — optional remote_* session tools; enabled by default and configurable in detailed Remote settings.
  • Interactive terminals use the Host-local terminal.enabled switch (on by default). They run as the Host user, independently of Agent approvals.
  • General tool RPC and remote desktop are not exposed.
  • The workspace picker lists folders only and returns bounded, read-only directory metadata.
  • Remote file preview cannot write, delete, upload, execute, or open a path in an external application.
  • Codex Remote / Agent ACP is optional, can be disabled, and follows the same encrypted Host permission boundary as the rest of Remote.
  • Removing a device revokes its credentials, membership, and active Remote connections.

FAQ

Do I need a public IP or port forwarding?

No. The Host only opens outbound connections and never listens on a public port.

Can the service read my conversations?

No. The service relays ciphertext only. Routing, authorization, presence and rate limiting require control metadata such as account and device ownership, online status, connection times and connectionId; prompts, conversation content, tool input and output, workspace paths and file preview contents stay unreadable.

Which machine can act as a Host?

Any signed-in Harness instance with the Remote plugin installed can act as a Host, whether on Windows, macOS, Linux, or even DSH Go.

Can several devices connect to one Host at the same time?

There is currently no limit on concurrent client connections, with RPC calls and streams isolated per connection.

Which Harness versions are supported?

The current baseline is dsh-v0.2.2-rc.1; dsh-v0.2.1-rc.5 and 0.2.0 rc.2 / rc.1 remain compatible on the same official carrier. See the compatibility guide.

Harness 0.1.1-rc.2 ApiProxy support has been removed from the Host plugin, its bundled Remote client, and Android. Use a Host with the official Typert Remote carrier; Hosts that only provide ApiProxy or lack capability discovery are rejected, with no fallback.

CodeX/ACP keep their independent data planes, and Desktop projections use Typert in memory.

Why does the Linux installer require root?

It configures a systemd system service, so the Host, Agent tools and remote terminals run with root privileges. Only expose it to trusted accounts.

Can I install the iOS app directly?

It is in TestFlight beta today and not publicly released; see issue #20.

How is this different from frp, a tunnel, or remote desktop?

Conventional server-based TCP port forwarding routes traffic through a Server, making its bandwidth a potential bottleneck.

This project probes four connection modes in sequence to establish P2P connections even in complex network environments.

Remote desktop captures the entire computer screen and reproduces it on the client, placing demands on upload and download bandwidth as well as computer performance.

This project encrypts and transmits only the messages needed by the native Harness conversation interface. General tool RPC and desktop control are not exposed, and permissions and approvals remain on the Host.

Tailscale, CF Turn, and UU Remote are also excellent solutions; choose whichever fits your needs.

Intelligent UI

Intelligent UI lets models answer with cards, tables, charts, and forms. The Android client renders them natively and lists the plugin under Plugins → Remote ready, where you can enable or disable it and edit live settings.

DS Bot is a bot plugin for DeepSeek Harness (dsh) that turns dsh into a bot. You can chat and work with the bots you create.

Documentation

  • Friendly link: DSH Go — DeepSeek Harness in your pocket: run it locally on your phone or control your computer remotely. Remote integration is available.
  • Friendly link: dsh-TUI — terminal-first Harness client; Remote integration is planned for a later release.
  • Friendly link: LINUX DO
  • Friendly link: Cyber Liu Kanshan

Star History

Star History Chart

Project status and trademarks

This is an independent community project and is not an official DeepSeek product. DeepSeek and related names and marks belong to their respective owners.

Connection diagnostics

On Android, reproduce the problem, then open Settings → Diagnostics → Export connection log and choose a folder to save the .txt file. It contains up to 500 recent diagnostic events from the current app process; restarting the app clears the buffer. Credentials and conversation content are excluded.

On the Host, enable Debug logging in Plugins → Remote settings. The setting is saved and takes effect immediately; turn it off after troubleshooting (restores info). Look for [ds-harness-remote] in the Host log, or desktop.log on Desktop. Manual configuration also accepts logLevel: debug.

License

MIT

Pair with DSH-Go

Open Sign in → DSH-Go pairing in the local Remote settings and generate a QR code, scan and confirm on a compatible DSH-Go build, then enter the phone code on this computer. A wrong code invalidates the whole pairing. New Hosts accept incoming connections only; Device-only accounts have no Web/Admin access. Requires the full Server pairing v1 API and a DSH-Go build implementing this integration. The bundled minimal Server does not support this workflow.

Mirror archiviato dal repository ufficiale GitHub · Visita su GitHub
Data snapshot: 2026-11-09