DeepSeek Harness(CLI は dsh)は Agent をプラグインの合成として扱います。シェル、エディタ、MCP、ブラウザ、メモリ、Skill カタログはすべて Cordis グラフにぶら下がります。公式リポジトリ deepseek-ai/deepseek-harness は設計をはっきり書いています——Everything is a Plugin。まだ developer preview で、互換性は壊れます。日常の使い心地を決めるのは次のモデルではなく、どのプラグインを載せるか、Skills をどこから見つけるか、権限をどこまで開くかです。
コミュニティは数週間で dsh-plugin トピックに何千ものリポジトリを積みました。本稿は実務向けの短いリストです。カーネル機能、スキルマーケット、検索/ビジョン/メモリ/ブラウザ、そしてツールカタログを溢れさせない方法。正本は DeepSeek Harness Docs と plugins guide です。
Harness の実体:プラグイン、プロファイル、Skills
もう一つのチャットサイトではなく、Agent ランタイムと考えてください。
- カーネルパッケージ
@deepseek-ai/*は配布物に同梱されます。bash、エディタ、MCP リソース、plugin_manager、公式skillツールです。 - コミュニティパッケージ(npm 名または
github:owner/repo)はdsh plugin --profile web add …で現在のプロファイルに入ります。bundle のインストール後はdsh webの再起動が必要です。 - Skills は任意の指示ファイル(
SKILL.md)であり、セッションイベントではありません。ファイルシステムプロバイダがプロジェクトとユーザーの根を順位どおりに走査します。モデル向けカタログは通常nameとdescriptionだけを見せ、本文は必要になったときに読みます。
同梱のローカル走査順(dsh-skill-filesystem)は、プロジェクト .dsh/skills → プロジェクト .agents/skills → カスタムディレクトリ → ユーザー DSH skills → ユーザー .agents/skills → バンドルです。名前がぶつかるとプロジェクトに近いコピーが勝ちます。プロジェクトルートは、最も近い .git を持つ祖先です。
配置は my-skill/SKILL.md。frontmatter には少なくとも name と description が必要です。名前は小文字、数字、ハイフンだけ。再帰的な **/SKILL.md 探索はサポートしません。
起動:web プロファイルとインストール
Node.js が必要です(コミュニティプラグインは 22+ を求めることが多い)。ローカルプレビュー:
npx @deepseek-ai/dsh web
Web UI の既定は http://127.0.0.1:3080 です。ドキュメントもプラグイン作者も一致しています。ループバックにバインドし、認証なしの dsh web を 0.0.0.0 で待受しない。SSH ではポート転送し、プラグインパネルを公開 IP に置かないでください。
標準の bundle インストール:
dsh plugin --profile web add skillhub-plugin
# or a git source (pin a commit in production)
dsh plugin --profile web add "github:minivv/dsh-agent-skills"
# restart
# dsh web / dsh --profile web
dsh plugin add は仕様を pnpm にそのまま渡します。npm、git、または link: のローカルパスです。monorepo のサブパッケージは Settings の repository ソース(github:owner/repo#ref&path:/packages/foo)を使い、plugin add は &path: を解釈しません。
構成の確認は dsh web --dump-config | grep name。dsh plugin --profile web remove pkg は依存を外しますが、$DSH_HOME/profiles/web/cordis.patch.yml に手で入れた行は書き直しません。自分で削除してください。
2026 のスターター構成(これを残す)
プラグインレーダーで二十枚クリックしないでください。まずこのセットを一週間固定し、それから足します:
| 層 | 1つ選ぶ | 役割 |
|---|---|---|
| ランタイム | 公式 dsh web | カーネルツール + 公式 skill ツール + プラグインマネージャ |
| Skill 発見 | dsh-agent-skills または dsh-skills-anywhere | Claude / Codex / Cursor / OpenCode の Skill ディレクトリを取り込む |
| インストール UI | skillhub-plugin または公式 Discover | チャットか Settings でスキル/プラグインを検索し、確認してから入れる |
| Web 検索 | modsearch(または既に動かしている MCP) | モデルにネイティブ検索がないときの構造化検索 |
| ビジョン | modlens か dsh-vision-toolkit のどちらか | 貼り付け画像の OCR/レイアウト。両方は動かさない |
| メモリ | examples の公式 MCP overlay を1つだけ | Memorix / MCP Reference Memory / Engram |
同じカテゴリに二つあると、モデルは重複ツールを漁り、要約でコンテキストが埋まります。マーケット索引は信頼できる HTTPS だけ追加してください。
Agent Skills:走査順と3つのマネージャ
~/.claude/skills、~/.codex/skills、~/.cursor/skills の下に SKILL.md の木が既にあるはずです。DSH 自体は .dsh/skills と .agents/skills を優先します。コミュニティプラグインは ctx.skills に追加プロバイダを登録します。
dsh-agent-skills:Settings でローカルディレクトリを接管
リポジトリ:minivv/dsh-agent-skills。
dsh plugin --profile web add dsh-agent-skills
そのあと Settings → Agent Skills で接管を有効にし、再起動します。~/.agents/skills、~/.claude/skills、~/.codex/skills、~/.config/opencode/skills、~/.gemini/skills を走査します。元ファイルを書き換えずに、ディレクトリ単位でも個別スキルでも切り替えられます。状態は $DSH_HOME/agent-skills/state.json。互換性の注意は README(0.1.x と 0.2.x)にあります。
dsh-skills-anywhere:ゼロコピー、複数エージェント、git のスキルリポジトリ
非公式:noteflowai/dsh-skills-anywhere。別プロバイダを登録し、公式 skill ツールはそのままです:
- ユーザー/プロジェクト合わせて 60 以上のスキルディレクトリ(Claude Code、Codex、Cursor、Gemini CLI、OpenCode など)。
- Claude Code のプラグインマーケットにネストされた Skills。
- 任意の git スキルリポジトリをキャッシュへ浅くクローン。Cursor での編集は、次の DSH 読み込みで見えます。
- Web UI で origin ごとに Pin / Hide / Exclude。MCP としても使えます:
npx dsh-skills-anywhere mcp。
dsh plugin --profile web add dsh-skills-anywhere
npx dsh-skills-anywhere list
npx dsh-skills-anywhere add anthropics/skills
npx dsh-skills-anywhere doctor
プロジェクトで DSH 向けに書いた Skills は、マーケットの重複より上位です。「接管」型の発見プラグインを二つ重ねず、主ファインダーは一つにしてください。
skillhub-plugin:チャットで検索、確認、インストール
cocofhu/skillhub。npm 名は skillhub-plugin です(無関係な skillhub パッケージは入れない。prepare が走る素の git 源も避ける):
dsh plugin --profile web add skillhub-plugin
チャットカードでスキル、バージョン、安全フラグを見られ、zip を発見可能なディレクトリへ入れます。Settings から GitHub リリースを上げられます。プラグイン広場は DSH プラグインを検索し、カードから入れて再起動を求めます。Node 22+ が必要です。dsh web は 127.0.0.1 にバインドしてください。
Skill マーケットと公式プラグインマーケット
「マーケット」は二つあります:
- Skill マーケット:
SKILL.mdバンドルを~/.dsh/skills(公式ツールが既に読む user-dsh ルート)へ落とします。 - プラグインマーケット:インストール可能な DSH bundle の JSON 索引(npm、またはピンした git commit)です。
コミュニティの Skill マーケット
- dsh-skill-market(QQ-M/dsh-skill-market):Settings から GitHub のスキルリポジトリを検索。
dsh plugin --profile web add "github:QQ-M/dsh-skill-market"のあと再起動。 - dsh-skills-marketplace(cxdyun/dsh-skills-marketplace):git URL + ref + sparse path を
~/.dsh/skills/…に平坦化し、グループでトグル。アンインストールは自分が入れたものだけ触ります。
同じ SKILL.md は DSH、Claude、Codex で使えます。ユーザールートへ書く前に、スター、最近のコミット、インストールスクリプトを見てください。
公式 Custom plugin markets
ガイド:Plugin markets。DSH は索引ソースを同梱しません。実験的プラグインで Custom plugin markets を有効にし、Discover に https:// の索引 URL を足します。確認時は通常の互換チェックが走ります。マーケット文面は第三者です。カーネルは JSON の形を検証し、宣伝文の真偽は保証しません。
dshmarketplace.dev のようなディレクトリは検索 API と任意の dshmarketplace-plugin(/store)を出します。カタログとして扱い、インストールは確認ダイアログの npm/git 仕様に従い、バージョンをピンしてください。
能力プラグイン:検索、ビジョン、セッション、ブラウザ、メモリ
検索:modsearch
liustack/modsearch はネイティブ Web 検索がないモデル向けです。ウェブや X に聞き、構造化 JSON の根拠を返します。安定した Brave/Tavily MCP を既に動かしているなら、二層目は不要です。
ビジョン:modlens または dsh-vision-toolkit
テキスト専用モデル向け:
- modlens(liustack/modlens):画像を貼る → OCR/レイアウト/意味 JSON。
- dsh-vision-toolkit(Anionex/dsh-vision-toolkit):複数画像の Q&A、長スクリーンショット OCR、UI 復元、pixel diff。
セットは一つだけ有効にしてください。ツール schema が重なると、モデルは間違った方をクリックします。
セッション検索:dsh-session-search
ドキュメントの例:dsh plugin --profile web add "github:dsh-external/dsh-session-search#main"。モデル向けの横断セッション照会はオプトインで、cwd の完全一致が必要です。先にプライバシー境界を決めてください。sqlite 索引は残したまま、照会ツールをモデルに出さないこともできます。
ブラウザ:公式 browser-use にプロバイダは一つ
dsh-browser-use を載せ、ちょうど一つのプロバイダを付けます。Playwright MCP、Chrome DevTools MCP、または Stagehand です。二つ目は拒否されます。起動したブラウザはその Agent/Session に属し、セッションを捨てると起動状態も消えます(接続した外部ブラウザは残ります)。
メモリ:公式 MCP 例、既定はすべてオフ
examples/mcp-memory/ に Memorix、MCP Reference Memory、Engram の overlay があります。相互運用のサンプルであり、推奨ではありません。patch するのは一つだけ:
dsh web --patch "$PWD/examples/mcp-memory/memorix.cordis.yml"
起動をまたいで残すなら、insert をプロファイルの cordis.patch.yml にマージしてください。既存のパッチファイルを上書きしないこと。stdio ブリッジは認証情報らしい環境変数と DSH_* を剥がします。秘密は overlay の config.env に置き、プロンプトへ書かないでください。
チャネルとデスクトップ:IM、Telegram、dsh-desktop
- dsh-im:QR または資格情報で Feishu、WeChat、DingTalk、WeCom、QQ、Slack、Telegram、Discord、WhatsApp。外向きネットワーク面が最も広いので、ソースとトークンの置き場所を読んでください。
- 単体の telegram/qqbot プラグインも、出口と webhook のバインド先を同じように確認します。
- dsh-desktop:デスクトップシェルをプラグインホストにします。ノート PC では問題ありません。クラウドホストでは web + SSH 転送を優先してください。
チャネルプラグインはメッセージを入れます。業務の状態機械は置き換えません。チケット、ビルド、課金は自分のリポジトリとデータベースに残してください。
選び方、削除、誤インストールを避ける
dsh.bundleと README を読む。プロファイル名がweb(または自分の名前)か確認します。- バージョンをピンする:本番では
name@x.y.zまたはgithub:owner/repo#<40-char sha>。 - インストールスクリプトを見る:git が
allowBuilds/prepareを要する場合は、事前ビルド済み npm パッケージを優先。 - ツール名の衝突:ビジョンプラグインやスキル接管を二つ動かさない。
--dump-configで確認。 - アンインストール:
remove、対応する patch insert を削除、再起動。Settings が空なら client 半パッケージとブラウザコンソールを見てください。 - マーケット索引:HTTPS のみ。http 索引は経路上でインストール元を差し替えられます。
公式 README は THERE WILL BE COMPATIBILITY-BREAKING CHANGES と書いています。dsh を上げたあとは、コミュニティパッケージをまとめて更新する前に各プラグインの engines.dsh を読んでください。使える Skills は Git(プロジェクトの .dsh/skills)に置き、プロファイル全体の node_modules をバックアップにしないでください。
Cloud Mac で動かす
Harness は 7×24 の cron、MCP stdio、長いセッションに向きます。固定リージョンで SSH できる Cloud Mac なら、dsh web をループバックで動かし、3080 をノートのブラウザへ転送できます。Skills と cordis.patch.yml はコミットし、秘密はキーチェーンか KMS に置き、リポジトリへ入れないでください。
iOS/Xcode 作業はその Mac 上の Xcode とシミュレータを使います。DSH は Agent とツールをオーケストレーションするだけです。ブラウザプロバイダは一つにし、ヘッドレス CI と同じ Chromium プロファイルを奪い合わないようにしてください。
FAQ
全文の Q&A はページの JSON-LD にあります。短い答え:Skills はプラグインではありません。Claude のスキルディレクトリは発見プラグインのあとで使えます。スキルマーケットを二つ重ねない。メモリ overlay は一つ。Web UI は 127.0.0.1 に置き、SSH で転送します。