Communityコーディング&開発github.com

DSH プラグインブートストラップ

新しいマシン上で、バージョン固定されたマニフェストに基づき、ユーザーの DeepSeek Harness プラグインセットを再インストールします。デスクトップ対応 CLI、オプションのプロファイル設定、バージョン固定のローカルパッチを使用します。ユーザーが新しいマシンを使っている、DSH プラグインを復元したい、または現在の DSH セットアップを別の場所に再現したいと言った場合に使用します。

DSH プラグインブートストラップ とは?

このスキルは、DeepSeek Harness(DSH)のプラグインセットを、新しいマシンに再現するためのワークフローを提供します。`plugins.json` マニフェストに全てのプラグインがバージョン固定で記録されており、ユーザーはパッケージ名を覚えていなくても、同じバージョン・同じ動作のプラグイン環境を再現できます。主な機能は、(1) `plugins.json` の読み取り、(2) 適切な DSH CLI(特にデスクトップアプリのラッパーを優先)の自動検出、(3) インストール計画の提示と確認、(4) `dsh plugin add` によるプラグインのインストール、(5) オプションでブラウザ CDP 設定 (`cordis.patch.yml`) やキーボードショートカット・Markdown 入力のローカルパッチ適用、(6) インストール後の検証、の6ステップから構成されます。`install.mjs` スクリプトは冪等性を持ち、`--dry-run` モードで事前確認が可能です。Platform: Claude Code / Cursor / Codex などのエージェント環境で動作し、DSH スキルディレクトリからコピーして使用します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/GGGengXXX/make-dsh-better/tree/HEAD/skills/dsh-plugin-bootstrap

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

DSH プラグインブートストラップ は何をしますか?

新しいマシンで、既知の正常な DeepSeek Harness(DSH)プラグインセットを復元します。

信頼できる情報源は plugins.json です。すべてのプラグインは正確なバージョンに固定され、メモとオプションのインストール後設定が含まれています。このスクリプトは、ユーザーがパッケージ名を覚える必要なく、セットアップを再現します。

ユーザーストーリー

私は新しいマシンを使っています。他のマシンで使っている DSH プラグインを、同じバージョン、同じ主要な動作でインストールしたい。

このスキルを新しいマシンに導入する

公式の公開コピーは以下にあります:

https://github.com/GGGengXXX/make-dsh-better

新しいマシンで:

git clone https://github.com/GGGengXXX/make-dsh-better.git
mkdir -p ~/.agents/skills
cp -R make-dsh-better/skills/dsh-plugin-bootstrap ~/.agents/skills/

すでにリポジトリをクローンしている場合は、スキルディレクトリをコピーするだけです。その後、新しい DSH セッションを開始します。DSH は ~/.agents/skills/<name>/SKILL.md 以下にあるスキルを認識し、スキル名は dsh-plugin-bootstrap として表示されます。スキルがすでにそのディレクトリにある場合は、コピーをスキップします。

ワークスペースのコピーが編集のための信頼できる情報源です。変更後は再コピーしてください。

このスキルの機能

  1. plugins.json(バージョン固定のプラグインリスト)を読み取ります。
  2. 適切な DSH CLI を検出します。desktop プロファイルはデスクトップアプリ専用であるため、スキルはアプリにバンドルされた CLI ラッパーを、PATH 上の汎用的な dsh よりも優先します。
  3. DSH のバージョンとマニフェストを照合し、不一致があれば警告またはブロックします。
  4. インストール/更新/スキップの計画を表示し、確認を求めた後、各プラグインを dsh plugin --profile <profile> add <name>@<version> でインストールします。
  5. オプションで、プロファイルレベルの dsh-browser-cdp 設定(Chrome パス + --headless)を cordis.patch.yml に適用します。
  6. 各プラグインが依存関係としても、選択されたバンドルとしても存在することを確認します。
  7. オプションで、2つのバージョン固定されたローカルパッチを適用します:

シークレット、API キー、セッション、ワークスペースファイル、~/.dsh ディレクトリ全体はコピーしません。

ユーザーがこのスキルを呼び出したときのワークフロー

スキルディレクトリ(この SKILL.md を含むディレクトリ)から作業します。

1. 何も変更する前に検査する

node scripts/install.mjs --profile desktop --dry-run

計画をユーザーに表示します。計画にインストールや更新が含まれる場合、--dry-run なしで実行する前に明示的な確認を求めます。

ユーザーの対象がデスクトップアプリでない場合は、実際のプロファイルを渡します(例: --profile web または --profile tui)。デスクトップ以外のプロファイルでは、PATH 上の通常の dsh で十分です。スクリプトがそれを処理します。

2. インストール

node scripts/install.mjs --profile desktop --yes

便利なフラグ:

フラグ意味
--dry-run計画を表示するのみ。変更は行わない
--yes / -y非対話的な確認
--json標準出力に機械可読な要約を出力(ログは標準エラー出力へ)
--no-configcordis.patch.yml を変更しない
--skip <pkg>1つのプラグインをスキップ(繰り返し可能)
--strict正確な DSH バージョンの一致を要求
--allow-dsh-mismatchメジャー.マイナーバージョンが異なっても続行
--dsh-cli <path>明示的な CLI パス
--manifest <path>別のマニフェストを使用

このスクリプトは冪等です。固定されたバージョンですでにインストールされ、バンドルとして選択されているプラグインはスキップされます。

3. オプションのローカルパッチを適用する

ソースマシンとまったく同じキー操作の動作が必要な場合のみ:

node scripts/apply-patches.mjs --profile desktop --dry-run
node scripts/apply-patches.mjs --profile desktop --yes

これにより、インストール済みのサードパーティファイルが node_modules/ 以下で変更されます。バージョンが一致しない場合は、--force が指定されていない限り拒否し、.bak-<timestamp> コピーを保持します。これはローカルパッチであり、将来のプラグイン更新で上書きされる可能性があることをユーザーに伝えてください。更新後は、パッチスクリプトを再実行するか、プラグインの設定で動作を設定してください。

--only keyboard と --only markdown はパッチの範囲を制限します。

4. 再起動 / リフレッシュ

プラグインのインストール後、ユーザーに DeepSeek Harness を再起動するように伝えてください(または Web UI を Cmd+Shift+R でハードリフレッシュ)。クライアントバンドルはページロードごとにキャッシュされるため、通常のリフレッシュでは不十分な場合があります。

5. 確認

インストーラーは確認テーブルを出力します。プラグインが FAIL と表示された場合、以下を確認してください:

  • プロファイルの package.json 依存関係と dsh.profile.bundles
  • パッケージのバージョンが実行中の DSH バージョンと互換性があるか
  • ~/.dsh/profiles/<profile>/.plugin-manager/logs/ 以下のプラグインマネージャーのログ

マニフェストの更新(ソースマシンで取得)

ユーザーがメインマシンでプラグインをインストール/削除した場合、マニフェストを更新します:

node scripts/capture.mjs --profile desktop --dry-run   # プレビュー
node scripts/capture.mjs --profile desktop             # plugins.json を書き込む

これにより、プロファイルの選択されたバンドルを読み取り、各プラグインのインストール済みバージョンを記録し、既存の note フィールドを保持します。その後、スキルディレクトリをコミット/プッシュするか(または新しいマシンにコピーしてください)。

デスクトッププロファイルのルール

汎用の DSH CLI は --profile desktop を意図的に拒否します:

error: profile "desktop" is managed exclusively by the Electron application

代わりにデスクトップアプリの CLI ラッパーを使用してください:

/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh

install.mjs は macOS で自動的にそれを見つけます。他のプラットフォーム、またはアプリが別の場所にある場合は、DSH_CLI を設定するか、--dsh-cli を渡してください。

マニフェスト形式

plugins.json:

{
  "schemaVersion": 1,
  "targetProfile": "desktop",
  "dshVersion": "0.2.1-rc.2",
  "plugins": [
    { "name": "@scope/plugin", "version": "1.2.3", "note": "why it is here" }
  ],
  "config": {
    "dsh-browser-cdp": {
      "chromePath": "auto",
      "runtimeArgs": "--headless"
    }
  },
  "localPatches": [
    { "package": "dsh-keyboard-shortcut", "version": "0.2.0", "description": "..." }
  ]
}
  • dshVersion はマニフェストを取得したときのバージョンです。同じメジャー.マイナーは警告付きで許可されます。異なるメジャー.マイナーは --allow-dsh-mismatch が必要です。
  • targetProfile はデフォルト値にすぎません。--profile で上書きされます。
  • config.dsh-browser-cdp.chromePath: "auto" により、インストーラーは一般的な Chrome/Chromium/Edge/Brave の場所をプローブします。プローブが見つからない場合は、明示的なパスを設定してください。
  • localPatches は人間のためのドキュメントです。インストーラーは自動的には適用しません。apply-patches.mjs を明示的に実行してください。

含まれるプラグインセット(2026-10-24 取得)

プラグインバージョン役割
@flyer103/dsh-side-chat0.6.0ネイティブ右サイドバーのサイド会話
dsh-browser-cdp1.6.0Chrome/CDP 経由のエージェントブラウザ。ヘッドレス監視パネル
dsh-keyboard-shortcut0.2.0Enter で改行、Cmd/Ctrl+Enter で送信
dsh-markdown-bubble0.1.5Markdown レンダリングされたユーザーメッセージ
dsh-markdown-input0.2.0-alpha.20ライブ Markdown コンポーザー(アルファ版)
dsh-better-sidebar0.28.0ファイルツリー + 編集可能な CodeMirror + Git/タスク/ターミナル(重い)

備考:

  • dsh-markdown-input はアルファ版です。コンポーザーの乗っ取りが誤動作する場合は、設定 → プラグイン で無効にしてください。
  • dsh-better-sidebar は重く、独自のサイドチャットを含んでいます。@flyer103/dsh-side-chat と共存できますが、ユーザーには2つのサイドチャットエントリーポイントが表示されます。どちらを残すか決定してください。
  • 組み込みの ファイル と ドキュメントプレビュー は DSH 自体の一部です。このマニフェストには含まれておらず、インストールは不要です。

安全性

  • サードパーティの DSH プラグインは インプロセス で実行され、ユーザーの権限で動作する可能性があります。ユーザーが信頼するマニフェストからのみインストールしてください。
  • 正確なバージョンが固定されています。それらを latest に静かに置き換えないでください。
  • ローカルパッチは node_modules を変更します。これらはオプションであり、バージョン固定で、バックアップされ、元に戻すことが可能です(.bak ファイルを復元するか、プラグインを再インストールしてください)。
  • 「プラグインのインストール」の一部として、~/.dsh/.credentials.yaml、セッションログ、ワークスペースファイルをコピーしないでください。

トラブルシューティング

症状対処法
profile "desktop" is managed exclusively…デスクトップアプリの CLI ラッパーまたは DSH_CLI を使用。上記参照
Could not find a dsh CLIDSH Desktop をインストールするか、--dsh-cli /path/to/dsh を渡す
profile "desktop" is not initializedDSH Desktop を一度開き、~/.dsh/profiles/desktop を作成する
ECONNRESET / fetch failed再試行する。インストーラーは自動的に1回リトライする。ネットワーク/プロキシ/レジストリを確認
プラグインはインストールされたが UI が変わらないDSH を再起動するか、ハードリフレッシュ(Cmd+Shift+R)。クライアントバンドルはキャッシュされる
プラグインはインストールされたが有効にならないdsh.profile.bundles にあることを確認。プラグインマネージャーの add は通常追加される
dsh-markdown-input のコンポーザーがない設定 → プラグインを確認。アルファ版プラグイン。ハードリフレッシュ。コンソールでスロット/コンポーザーエラーを確認
dsh-better-sidebar/サイドチャットの競合両方起動可能。どちらかのサイドチャットエントリを選ぶか、一方のプラグインを削除
パッチが already-patched と表示される想定内。ファイルはすでに目的の動作を持っている
パッチが skipped — version … と表示されるマニフェスト/プラグインバージョンが変更された。--force を使用する前に新しいバージョンを確認

ファイル

ファイル目的
SKILL.mdこのワークフロー
plugins.jsonバージョン固定のプラグインマニフェスト
scripts/install.mjsドライラン/インストール/確認
scripts/capture.mjs稼働中のプロファイルからマニフェストを更新
scripts/apply-patches.mjsオプションのローカルキー操作パッチ
patches/README.mdパッチの根拠と手動フォールバック

関連スキル