dsh-coding-remote-kit

September 2, 2026 · View on GitHub

dsh-coding-remote-kit

v0.5.2 · DeepSeek Harness 0.1.1-rc.2 · GitHub dsh-coding-remote-kit

DeepSeek Harness 向けのリモートスマホアクセス。 すでに dsh web が動いているデスクトップにスマホをペアリングし、セッションを観察して限定された書き込みだけを行う——フル Web API は公開しません。

npm License PRs Welcome

English · 中文版 · 日本語 · 한국어 · Português (BR) · Español · Français · Deutsch · Русский


Upgrade / 升级: Follow the versioned steps in INSTALL.md. Install into the existing web profile, keep profile/config/credential files, and restart one existing DSH Web process after all packages are updated. When Hub and Subscription are both used, dsh-coding-oauth-core@0.1.0 is their shared npm dependency, not a separate DSH plugin.


コミュニティプラグインです。DeepSeek とは無関係であり、公式の後援もありません。 製品意図はデスクトップ IDE の複製ではなく、Orca Mobile Companion に近いです。

このリポジトリを変更する前に AGENTS.md を読んでください:本番の dsh-web を自分で再起動しないでください。 tarball を用意し、再起動はオペレーターが行います。

名称

当初の GitHub リポジトリ名は dsh-mobile-remote でした。npm 上の dsh-mobile-remote は別プロジェクト(WeChat リモコンプラグイン)です。本プラグインの公開名は dsh-coding-remote-kit です。

これを使う説明
npmdsh-coding-remote-kit@0.5.2dsh plugin --profile web add dsh-coding-remote-kit@0.5.2
GitHublninghaha/dsh-coding-remote-kit旧 checkout 名 dsh-mobile-remote
Cordis プラグイン idmobile-remote変更なし
設定ページ HTTP/api/mobile-remote/*変更なし
ストレージ$DSH_HOME/storages/mobile-remote/変更なし

dsh plugin add dsh-mobile-remote は実行しないでください — 無関係な WeChat プラグインが入ります。

状態

マイルストーン状態
調査(Orca / DSH エコシステム)完了 — docs/research/
M1 プラグイン骨格 + ADR / 脅威モデル完了
M2 ペアリング / LAN データプレーン完了
M3 狭い RPC / 承認完了
M4 署名付き HTTPS / ネイティブアプリ未着手
M5 自前ランデブー Worker完了 — docs/05-cloud-relay.md

特徴

  • 二言語 UI — デスクトップ設定とスマホ companion は中国語 / English(?lang= またはアプリ内切替;既定は navigator.language)。
  • 一度ペアリング — デスクトップが QR コードまたは 8 桁 PIN を表示。スマホはデスクトップの X25519 公開鍵をピン留めし、deviceToken を保持します(サーバーは SHA-256 のみ保存)。
  • デュアルプレーン — 管理ルートはループバックの dsh web に残し、モバイルデータプレーンは専用ポート(既定 6879)上の RPC 許可リストです。
  • ハンドシェイク後の E2EE/m/ws は tweetnacl secretbox。未認証ソケットはセッション内容を見ません。
  • 狭い書き込み — セッション観察、承認/質問への応答、短い返信。重い編集はデスクトップに残します。
  • プライベートネットワーク優先 — LAN / Tailscale を推奨。任意の Cloudflare Quick Tunnel は データプレーンのみ を公開し、ポート 3080 は決して公開しません。任意の自前ランデブー Worker:デスクトップとスマホはどちらも出向き、業務フレームは E2EE のままです。
  • 標準プラグイン形 — Cordis サーバープラグイン 1 つ + classic-script 設定ページ。dsh plugin --profile web add には file tarball を使い、link: 作業ツリーは使いません。

スクリーンショット

デスクトップ設定 — QR と PIN のペアリング   デスクトップ設定 — チャネル状態とペア済みデバイス

デスクトップ Settings → Mobile Remote:ペアリング offer(左)· チャネル状態とデバイス(右)

スマホのペアリング画面    スマホのセッション一覧

スマホ:PIN 入力 / スキャン(左)· ペアリング後のセッション一覧(右)

このプラグインが解決する問題

検索 / 見たもの実際に壊れていたことこのプラグインの対応
「DSH 向け Orca 風スマホ companion」公式 DSH に一等のペアリングモバイルアプリがないセマンティック companion:ペアリング + E2EE + 許可リスト RPC
スマホ上の dsh-pocket / dsh-web-remoteLAN/公開網上のフル dsh webデュアルプレーン。未知の RPC メソッドは forbidden
スマホはセルラー、デスクトップは LAN生の LAN HTTP ページは MITM され得るTailscale を優先。任意の Quick Tunnel(エッジで TLS、オリジンは localhost)
プラグイン import 失敗でポート 3080 が落ちたDSH はプラグインツリー全体を fail-fast するサンドボックス門禁 + リポジトリ外へコピーした tarball。link: 禁止

クイックスタート

dsh plugin --profile web add dsh-coding-remote-kit@0.5.2

その後、オペレーター が自分の時間枠で既存の dsh web を再起動します。Settings → 移動远程 を開き、ペアリング offer を作成し、スマホで QR をスキャン(または PIN を入力)します。

ソース checkout(開発)から:

pnpm test:sandbox
pnpm pack
mkdir -p "$HOME/.dsh/packages"
cp dsh-coding-remote-kit-0.5.2.tgz "$HOME/.dsh/packages/"
dsh plugin --profile web add "$HOME/.dsh/packages/dsh-coding-remote-kit-0.5.2.tgz"

この作業ツリーに対して dsh plugin add ./ を実行しないでください。pnpm 11 は一部の file: tarball パスを link: ソースとして扱い、入口 import が失敗すると GUI 全体が落ちます。

目次

インストール

DeepSeek Harness 0.1.1-rc.2(ピン留め)と Node.js 22.19+ が必要です。手順、ペアリング、トンネルの詳細は INSTALL.md を参照してください。

開発:

pnpm install && pnpm build && pnpm test   # inside the Docker sandbox, not on a live GUI host
pnpm test:sandbox                         # Dockerfile targets check / isolated-install / verify

ビルド成果物:

  • lib/server/index.js — Cordis 入口(name / inject / Config / apply
  • lib/client.js — 設定ページ classic-script
  • lib/mobile//m で提供されるスマホページ

仕組み

Settings (loopback)          Phone browser
        │                            │
        │  QR / PIN  ────────────────┤
        ▼                            ▼
 /api/mobile-remote/*          GET /m  +  WS /m/ws
   (dsh web, :3080)            (data plane, :6879, E2EE)

管理面はホスト Web のループバック囲いの内側に残します。データプレーンは独立した node:http + ws サーバーです。ペアリング時に 127.0.0.1 から 0.0.0.0 へ再バインドして LAN クライアントが接続できるようにする場合があります。稼働中の Quick Tunnel があるときは HTTPS origin を広告し、バインドを広げません。

設定ページ

Settings → 移動远程 を開きます:

  • 状態(bind、ポート、リスン中か、アクティブ端末、トンネル、ランデブー)
  • LAN / Quick Tunnel / rendezvous チャネル
  • offer 作成 → QR + 8 桁 PIN
  • 端末一覧と取り消し
  • 任意の公式 cloudflared インストール(プラグイン apply() 時には決して実行しません)
  • 接続診断(マスク済み候補、cloudflared ピン/検証、免責バージョン)
  • Quick Tunnel 免責チェックボックス(Start 前に必須)

モバイル RPC

許可リストのメソッド(それ以外はすべて forbidden):

status.get · session.list · session.history · session.subscribe · session.unsubscribe · host.subscribe · session.prompt · session.cancel · session.create · respond · device.name

プッシュにはセッションイベントに加え、respond 用の rpcId 付き approval.requested / question.requested が含まれます。ワイヤ形式: docs/03-protocol.md

公開トンネル

既定は オフ。設定ページで免責に同意(disclaimerAccepted: true)してから Start。cloudflared Quick Tunnel は 127.0.0.1:<data-plane-port> だけ を指します。/mhttps://<random>.trycloudflare.com URL で到達可能になります。ペアリングには引き続きフラグメントトークン(または PIN)と E2EE が必要です。子プロセスはプラグイン unload / Stop 時に kill されます。

ポート 3080 / dsh web をトンネルしてはいけません。自前ランデブー Worker(デスクトップとスマホはどちらも出向き、業務フレームは E2EE のまま)は任意です。docs/05-cloud-relay.md を参照。Cloudflare Workers Paid プランが必要で、本プロジェクトが運用する公開リレーではありません

セキュリティ

不変条件(完全なモデル: docs/04-threat-model.md):

  1. 未認証接続はハンドシェイクのみ処理します。
  2. deviceToken は SHA-256 として保存。鍵と登録ファイルは 0600
  3. RPC 許可リスト、既定拒否。書き込みは deviceId に監査されます。
  4. 管理プレーンはループバック + Host + CSRF。
  5. プラグインは dsh web /api を弱めず、api-proxy プロバイダーを奪いません。

v0 の正直な境界: 生の LAN 上での /m の初回 HTTP ダウンロードは MITM され得ます。overlay VPN を優先してください。

禁止事項:

  • 他人の資格情報を共有しない。
  • 権限のないアカウントを監視しない。
  • データプレーンポートを 0.0.0.0 で公衆インターネットにバインドしない(ユーザーが明示的に開始した Quick Tunnel は例外)。
  • DeepSeek 公式の後援を暗示しない。

ドキュメントの例は example.com127.0.0.1YOUR_TOKEN のみを使います。

アーキテクチャ

デュアルプレーン、モジュールマップ、ストレージ、ハンドシェイク: docs/02-architecture.md · 中文

MVP 決定(ルート B): docs/01-mvp-scope.md

ドキュメント

ドキュメント用途
INSTALL.mdインストール、ペアリング、トンネル
CHANGELOG.mdリリース履歴
docs/00-project-rules.mdバージョニング、公開 vs ローカル専用、ホスト DSH 境界
docs/01-mvp-scope.mdADR: MVP 範囲(中国語)
docs/02-architecture.md内部アーキテクチャ · 中文
docs/03-protocol.mdRPC 許可リストとプッシュエンベロープ(中国語)
docs/04-threat-model.md資産、攻撃者、不変条件(中国語)
docs/05-cloud-relay.md自前ランデブー Worker(M5)
CONTRIBUTING.md貢献ガイド
AGENTS.mdAgent / オペレーター規則(本番再起動禁止)

関連プロジェクト

コントリビュート

Issue と PR を歓迎します。Docker サンドボックス、コミット規約、ドキュメント層は CONTRIBUTING.md を参照してください。

ライセンス

MIT