DeepSeek Harness (CLI : dsh) traite l’agent comme une composition de greffons : terminal, éditeur, MCP, navigateur, mémoire et catalogues de Skills s’accrochent tous à un graphe Cordis. Le dépôt officiel deepseek-ai/deepseek-harness l’énonce clairement—Everything is a Plugin. C’est encore une préversion développeur, et la compatibilité cassera. Ce qui fait un outil du quotidien n’est pas la prochaine version du modèle, mais quels greffons vous montez, où les Skills sont découvertes, et jusqu’où vont les autorisations.
La communauté a rempli le sujet dsh-plugin de milliers de dépôts en quelques semaines. Cette revue est une liste courte opérationnelle : capacités du noyau, marchés de Skills, recherche/vision/mémoire/navigateur, et comment ne pas inonder le catalogue d’outils. Documentation canonique : DeepSeek Harness Docs et le guide des greffons.
Ce qu’est le harness : greffons, profils, Skills
Pensez-y comme un moteur d’exécution d’agent, pas un site de discussion de plus.
- Paquets noyau
@deepseek-ai/*livrés avec la distribution : bash, éditeur, ressources MCP, plugin_manager et l’outil officielskill. - Paquets communautaires (nom npm ou
github:owner/repo) vont dans le profil courant avecdsh plugin --profile web add …. Les installations de lots exigent un redémarrage dedsh web. - Skills : fichiers d’instructions optionnels (
SKILL.md), pas des événements de session. Le fournisseur de système de fichiers parcourt les racines projet et utilisateur par rang ; le catalogue côté modèle n’expose en général quenameetdescription, et charge le corps à la demande.
Ordre de parcours local livré (dsh-skill-filesystem) : projet .dsh/skills → projet .agents/skills → dossiers personnalisés → Skills DSH utilisateur → utilisateur .agents/skills → livrés. En cas de collision de noms, la copie la plus proche du projet l’emporte. La racine du projet est l’ancêtre le plus proche qui contient .git.
La disposition est my-skill/SKILL.md. L’en-tête a besoin au moins de name et description. Les noms sont des lettres minuscules, des chiffres et des traits d’union. La découverte récursive de **/SKILL.md n’est pas prise en charge.
Démarrage : profil web et commandes d’installation
Il faut Node.js (les greffons communautaires exigent souvent 22+). Aperçu local :
npx @deepseek-ai/dsh web
L’interface Web pointe par défaut vers http://127.0.0.1:3080. La documentation et les auteurs de greffons s’accordent : liez la boucle locale et n’écoutez pas un dsh web sans authentification sur 0.0.0.0. En SSH, redirigez le port ; ne placez pas le panneau des greffons sur une adresse IP publique.
Installation standard d’un lot :
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 transmet la spécification à pnpm : npm, git ou chemins locaux link:. Les sous-paquets d’un monorepo utilisent la source dépôt des Paramètres (github:owner/repo#ref&path:/packages/foo) ; plugin add n’analyse pas &path:.
Inspectez la composition avec dsh web --dump-config | grep name. dsh plugin --profile web remove pkg retire la dépendance mais ne réécrit pas les lignes insérées à la main dans $DSH_HOME/profiles/web/cordis.patch.yml—supprimez-les vous-même.
Pile de départ 2026 (à conserver)
Ne cliquez pas vingt cartes sur un radar de greffons. Figez cet ensemble une semaine, puis ajoutez :
| Couche | En choisir un | Rôle |
|---|---|---|
| Exécution | Officiel dsh web | Outils noyau + outil skill officiel + gestionnaire de greffons |
| Découverte de Skills | dsh-agent-skills ou dsh-skills-anywhere | Intègre les dossiers de Skills Claude / Codex / Cursor / OpenCode |
| Interface d’installation | skillhub-plugin ou Discover officiel | Chercher Skills/greffons dans le chat ou les Paramètres, confirmer, puis installer |
| Recherche Web | modsearch (ou un MCP que vous faites déjà tourner) | Recherche structurée quand le modèle n’a pas de recherche native |
| Vision | Soit modlens, soit dsh-vision-toolkit | OCR/mise en page d’image collée ; n’en lancez pas deux |
| Mémoire | Une surcouche MCP officielle des exemples | Memorix / MCP Reference Memory / Engram |
Deux greffons de la même catégorie forcent le modèle à parcourir des outils en double et remplissent le contexte de résumés. N’ajoutez que des index de marché HTTPS auxquels vous faites confiance.
Agent Skills : ordre de parcours et trois gestionnaires
Vous avez sans doute déjà des arborescences SKILL.md sous ~/.claude/skills, ~/.codex/skills ou ~/.cursor/skills. DSH lui-même privilégie .dsh/skills et .agents/skills. Les greffons communautaires enregistrent des fournisseurs supplémentaires sur ctx.skills.
dsh-agent-skills : page Paramètres sur les dossiers locaux
Dépôt : minivv/dsh-agent-skills.
dsh plugin --profile web add dsh-agent-skills
Puis Paramètres → Agent Skills, prenez la main, redémarrez. Il parcourt ~/.agents/skills, ~/.claude/skills, ~/.codex/skills, ~/.config/opencode/skills, ~/.gemini/skills. Activez ou désactivez des dossiers ou des Skills une par une sans réécrire les fichiers d’origine. L’état vit dans $DSH_HOME/agent-skills/state.json. Les notes de compatibilité sont dans le README (0.1.x et 0.2.x).
dsh-skills-anywhere : zéro copie, plusieurs agents, dépôts git de Skills
Non officiel : noteflowai/dsh-skills-anywhere. Il enregistre un autre fournisseur ; l’outil officiel skill reste :
- Plus de 60 dossiers de Skills utilisateur et projet (Claude Code, Codex, Cursor, Gemini CLI, OpenCode, et d’autres).
- Skills imbriquées dans les places de marché de greffons Claude Code.
- Clone superficiel de n’importe quel dépôt git de Skills dans un cache ; une modification dans Cursor est visible au prochain chargement DSH.
- Interface Web Épingler / Masquer / Exclure par origine. Utilisable aussi comme 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
Les Skills que vous avez écrites pour DSH dans le projet priment sur les doublons de place de marché. N’empilez pas deux greffons de découverte « prise en main » ; choisissez un chercheur principal.
skillhub-plugin : chercher, inspecter, installer dans le chat
cocofhu/skillhub. Le nom npm est skillhub-plugin (pas le paquet skillhub sans rapport ; évitez une source git brute qui exécute prepare) :
dsh plugin --profile web add skillhub-plugin
Cartes de chat pour Skills, versions, drapeaux de sécurité, installation zip dans un dossier découvrable ; les Paramètres peuvent faire monter les versions GitHub. Une place des greffons cherche les greffons DSH et installe depuis la carte, puis demande un redémarrage. Nécessite Node 22+. Liez dsh web à 127.0.0.1.
Marchés de Skills vs marché officiel des greffons
Deux « marchés » distincts :
- Marché de Skills : dépose des lots
SKILL.mddans~/.dsh/skills(la racine user-dsh que l’outil officiel lit déjà). - Marché de greffons : un index JSON de lots DSH installables (npm ou un commit git épinglé).
Marchés de Skills communautaires
- dsh-skill-market (QQ-M/dsh-skill-market) : chercher des dépôts de Skills GitHub depuis les Paramètres.
dsh plugin --profile web add "github:QQ-M/dsh-skill-market", puis redémarrer. - dsh-skills-marketplace (cxdyun/dsh-skills-marketplace) : URL git + ref + chemin creux, aplatit dans
~/.dsh/skills/…, interrupteurs groupés ; la désinstallation ne touche que ce qu’il a installé.
Le même SKILL.md peut servir DSH, Claude et Codex. Vérifiez les étoiles, les commits récents et les scripts d’installation avant d’écrire dans la racine utilisateur.
Marchés Custom plugin markets officiels
Guide : Plugin markets. DSH ne livre aucune source d’index. Activez Custom plugin markets sous les greffons expérimentaux, puis ajoutez une URL d’index https:// sur Discover. La confirmation exécute toujours les contrôles de compatibilité habituels. Les textes du marché sont tiers ; le noyau valide la forme JSON, pas la vérité des accroches.
Des annuaires comme dshmarketplace.dev exposent une API de recherche et un dshmarketplace-plugin optionnel (/store). Traitez-les comme un catalogue ; installez depuis la spécification npm/git de la confirmation et épinglez les versions.
Greffons de capacité : recherche, vision, sessions, navigateur, mémoire
Recherche : modsearch
liustack/modsearch complète les modèles sans recherche Web native : interrogez le Web ou X, obtenez des preuves JSON structurées. Si vous faites déjà tourner un MCP Brave/Tavily stable, sautez une deuxième couche.
Vision : modlens ou dsh-vision-toolkit
Pour les modèles texte seul :
- modlens (liustack/modlens) : coller une image → OCR / mise en page / JSON sémantique.
- dsh-vision-toolkit (Anionex/dsh-vision-toolkit) : Q&R multi-images, OCR de capture longue, restauration d’interface, pixel diff.
N’activez qu’un jeu. Des schémas d’outils qui se chevauchent font cliquer le modèle sur le mauvais.
Recherche de sessions : dsh-session-search
Exemple de la documentation : dsh plugin --profile web add "github:dsh-external/dsh-session-search#main". La requête inter-sessions côté modèle est à activer et exige une correspondance exacte du cwd—fixez d’abord la frontière de confidentialité. L’index sqlite peut exister sans exposer l’outil de requête au modèle.
Navigateur : browser-use officiel plus un fournisseur
Montez dsh-browser-use et exactement un fournisseur : Playwright MCP, Chrome DevTools MCP ou Stagehand. Un second fournisseur est rejeté. Un navigateur lancé appartient à cet Agent/Session ; disposer la session jette l’état lancé (un navigateur externe attaché reste ouvert).
Mémoire : exemples MCP officiels, tous désactivés par défaut
examples/mcp-memory/ livre les surcouches Memorix, MCP Reference Memory et Engram. Ce sont des échantillons d’interopérabilité, pas une recommandation. Ne patchez qu’une :
dsh web --patch "$PWD/examples/mcp-memory/memorix.cordis.yml"
Pour le conserver d’une exécution à l’autre, fusionnez l’insert dans le cordis.patch.yml du profil—n’écrasez pas un fichier de correctif existant. Le pont stdio retire les variables d’environnement de type identifiants et DSH_* ; mettez les secrets dans le config.env de la surcouche, pas dans les invites.
Canaux et bureau : IM, Telegram, dsh-desktop
- dsh-im : QR ou identifiants pour Feishu, WeChat, DingTalk, WeCom, QQ, Slack, Telegram, Discord, WhatsApp. Plus grande surface réseau sortante—lisez le code source et où vivent les jetons.
- Les greffons telegram / qqbot autonomes exigent la même revue des sorties et des adresses d’écoute webhook.
- dsh-desktop : coquille de bureau comme hôte de greffons ; adapté à un portable. Sur un hôte nuage, préférez web + redirection SSH.
Les greffons de canal font entrer les messages. Ils ne remplacent pas votre machine à états métier. Tickets, compilations et facturation restent dans votre dépôt et votre base de données.
Choisir, retirer et éviter une mauvaise installation
- Lisez
dsh.bundleet le README ; confirmez que le nom de profil estweb(ou le vôtre). - Épinglez les versions :
name@x.y.zougithub:owner/repo#<40-char sha>en production. - Surveillez les scripts d’installation : si git exige
allowBuilds/prepare, préférez un paquet npm préconstruit. - Collisions de noms d’outils : n’exécutez pas deux greffons de vision ni deux prises en main de Skills ; vérifiez
--dump-config. - Désinstallation :
remove, supprimez l’insert de correctif correspondant, redémarrez. Si Paramètres est vide, vérifiez le demi-paquet client et la console du navigateur. - Index de marchés : HTTPS seulement ; un index http peut permuter les sources d’installation sur le chemin.
Le README officiel dit THERE WILL BE COMPATIBILITY-BREAKING CHANGES. Après une mise à niveau de dsh, lisez le engines.dsh de chaque greffon avant de mettre à jour en masse les paquets communautaires. Conservez les Skills utiles dans Git (.dsh/skills du projet) ; ne traitez pas tout le node_modules du profil comme une sauvegarde.
Exécution sur un Cloud Mac
Le harness convient au cron 7×24, au MCP stdio et aux longues sessions. Un Cloud Mac dans une région fixe avec SSH peut faire tourner dsh web en boucle locale pendant que vous redirigez 3080 vers le navigateur d’un portable. Commitez les Skills et cordis.patch.yml ; gardez les secrets dans le trousseau ou un KMS, pas dans le dépôt.
Le travail iOS / Xcode utilise toujours Xcode et les simulateurs sur ce Mac ; DSH n’orchestre que l’agent et les outils. Choisissez un seul fournisseur de navigateur pour qu’il ne dispute pas à l’intégration continue sans interface le même profil Chromium.
FAQ
La FAQ complète est dans le JSON-LD de la page. Version courte : les Skills ne sont pas des greffons ; les dossiers de Skills Claude fonctionnent après un greffon de découverte ; n’empilez pas deux marchés de Skills ; une surcouche de mémoire ; gardez l’interface Web sur 127.0.0.1 et redirigez-la en SSH.