CommunityCodierung & Entwicklunggithub.com

GGGengXXX/make-dsh-better

Installiere das DeepSeek Harness Plugin-Set eines Benutzers auf einem neuen Rechner anhand eines versionierten Manifests – mit Desktop-CLI, optionaler Profilkonfiguration und versionierten lokalen Patches. Verwende dies, wenn der Benutzer angibt, auf einem neuen Rechner zu sein, seine DSH-Plugins wiederherstellen möchte oder sein aktuelles DSH-Setup woanders reproduzieren will.

Was ist make-dsh-better?

Dieser Skill stellt ein bekanntes, funktionierendes Set von DeepSeek Harness (DSH) Plugins auf einem neuen Rechner wieder her. Die Quelle der Wahrheit ist die Datei `plugins.json`, in der jedes Plugin auf eine exakte Version festgelegt ist, mit Notizen und optionalen Post-Install-Konfigurationen. Der Skill erkennt automatisch die richtige DSH-CLI, bevorzugt den CLI-Wrapper der Desktop-App gegenüber einem generischen `dsh`-Befehl, und erstellt einen Installations-/Aktualisierungs-/Überspringungsplan, den er vor der Ausführung zur Bestätigung anzeigt. Optional werden versionierte lokale Patches (z.B. für `dsh-keyboard-shortcut` und `dsh-markdown-input`) sowie die Profilkonfiguration für `dsh-browser-cdp` angewendet. Der Skill unterstützt die Profile `desktop`, `web` und `tui`, ist idempotent (bereits installierte Plugins werden übersprungen) und liefert ausführliche Prüfungen und Fehlerbehebungshinweise.

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

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

DSH Plugin Bootstrap

Stelle ein bekanntes, funktionierendes Set von DeepSeek Harness (DSH) Plugins auf einem neuen Rechner wieder her.

Die Quelle der Wahrheit ist plugins.json: Jedes Plugin ist auf eine exakte Version festgelegt, mit Notizen und optionalen Post-Install-Konfigurationen. Die Skripte reproduzieren das Setup, ohne dass der Benutzer sich an Paketnamen erinnern muss.

Benutzergeschichte

Ich bin auf einem neuen Rechner. Ich möchte, dass DSH alle Plugins installiert, die ich auf meinem anderen Rechner verwende, mit denselben Versionen und demselben Schlüsselverhalten.

Diesen Skill auf den neuen Rechner bringen

Die kanonische öffentliche Kopie befindet sich unter:

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

Auf dem neuen Rechner:

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/

Falls du das Repository bereits geklont hast, kopiere einfach das Skill-Verzeichnis. Starte dann eine neue DSH-Sitzung. DSH entdeckt Skills unter ~/.agents/skills/<name>/SKILL.md; der Skill erscheint als dsh-plugin-bootstrap. Wenn sich der Skill bereits in diesem Verzeichnis befindet, überspringe den Kopiervorgang.

Die Arbeitskopie ist die Quelle der Wahrheit für Bearbeitungen; kopiere erneut, nachdem du Änderungen vorgenommen hast.

Was dieser Skill tut

  1. Liest plugins.json (die versionierte Plugin-Liste).
  2. Erkennt die richtige DSH-CLI. Das Profil desktop ist von der Desktop-App reserviert, daher bevorzugt der Skill den gebündelten CLI-Wrapper der App gegenüber einem generischen dsh auf dem PATH.
  3. Überprüft die DSH-Version anhand des Manifests und warnt/blockiert bei Abweichungen.
  4. Zeigt einen Installations-/Aktualisierungs-/Überspringungsplan an, fragt nach Bestätigung und installiert dann jedes Plugin mit dsh plugin --profile <profile> add <name>@<version>.
  5. Wendet optional die Profilkonfiguration für dsh-browser-cdp (Chrome-Pfad + --headless) auf cordis.patch.yml an.
  6. Überprüft, ob jedes Plugin sowohl eine Abhängigkeit als auch ein ausgewähltes Bundle ist.
  7. Wendet optional die beiden versionierten lokalen Patches an:

Es werden keine Geheimnisse, API-Schlüssel, Sitzungen, Arbeitsbereichsdateien oder das gesamte ~/.dsh-Verzeichnis kopiert.

Workflow, wenn der Benutzer diesen Skill aufruft

Arbeite vom Skill-Verzeichnis aus (dem Verzeichnis, das diese SKILL.md enthält).

1. Überprüfen, bevor etwas geändert wird

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

Zeige den Plan dem Benutzer an. Wenn der Plan etwas installiert oder aktualisiert, frage explizit nach Bestätigung, bevor du ihn ohne --dry-run ausführst.

Wenn das Ziel des Benutzers nicht die Desktop-App ist, übergib das tatsächliche Profil (z.B. --profile web oder --profile tui). Für ein Nicht-Desktop-Profil reicht ein normales dsh auf dem PATH; das Skript kümmert sich darum.

2. Installieren

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

Nützliche Flags:

FlagBedeutung
--dry-runDrucke den Plan; ändere nichts
--yes / -yNicht-interaktive Bestätigung
--jsonMaschinenlesbare Zusammenfassung auf stdout (Logs gehen nach stderr)
--no-configBearbeite cordis.patch.yml nicht
--skip <pkg>Überspringe ein Plugin (wiederholbar)
--strictErfordere exakte DSH-Version-Übereinstimmung
--allow-dsh-mismatchFahre fort, auch wenn major.minor abweicht
--dsh-cli <path>Expliziter CLI-Pfad
--manifest <path>Verwende ein anderes Manifest

Das Skript ist idempotent: Bereits in der versionierten Version installierte und als Bundles ausgewählte Plugins werden übersprungen.

3. Optionale lokale Patches anwenden

Nur wenn der Benutzer das genaue Schlüsselverhalten vom Quellrechner wünscht:

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

Dies modifiziert installierte Drittanbieterdateien unter node_modules/. Es verweigert bei Versionsabweichungen, es sei denn, --force wird verwendet, und behält eine .bak-<timestamp>-Kopie. Teile dem Benutzer mit, dass dies ein lokaler Patch ist, der von einem zukünftigen Plugin-Update überschrieben werden kann; nach einem Update führe das Patch-Skript erneut aus oder setze das Verhalten in den Plugin-Einstellungen.

--only keyboard und --only markdown schränken den Patch-Umfang ein.

4. Neustart / Aktualisierung

Nach der Installation der Plugins sage dem Benutzer, er solle DeepSeek Harness neu starten (oder die Web-Oberfläche mit Cmd+Shift+R unter macOS hart aktualisieren). Client-Bundles werden pro Seitenaufruf gecacht; eine normale Aktualisierung reicht möglicherweise nicht aus.

5. Überprüfung

Das Installationsprogramm druckt eine Überprüfungstabelle. Wenn ein Plugin FAIL anzeigt, überprüfe:

  • die Abhängigkeiten in package.json des Profils und dsh.profile.bundles;
  • ob die Version des Pakets mit der laufenden DSH-Version kompatibel ist;
  • die Plugin-Manager-Logs unter ~/.dsh/profiles/<profile>/.plugin-manager/logs/.

Manifest aktualisieren (auf dem Quellrechner erfassen)

Wenn der Benutzer auf seinem Hauptrechner Plugins installiert/entfernt, aktualisiere das Manifest:

node scripts/capture.mjs --profile desktop --dry-run   # Vorschau
node scripts/capture.mjs --profile desktop             # plugins.json schreiben

Dies liest die ausgewählten Bundles des Profils, zeichnet die installierte Version jedes Plugins auf und bewahrt vorhandene note-Felder. Übertrage/verschiebe danach das Skill-Verzeichnis (oder kopiere es auf den neuen Rechner).

Desktop-Profil-Regel

Die generische DSH-CLI lehnt --profile desktop bewusst ab:

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

Verwende stattdessen den CLI-Wrapper der Desktop-App:

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

install.mjs findet ihn automatisch unter macOS. Auf anderen Plattformen, oder wenn die App woanders ist, setze DSH_CLI oder übergib --dsh-cli.

Manifest-Format

plugins.json:

{
  "schemaVersion": 1,
  "targetProfile": "desktop",
  "dshVersion": "0.2.1-rc.2",
  "plugins": [
    { "name": "@scope/plugin", "version": "1.2.3", "note": "Warum es hier ist" }
  ],
  "config": {
    "dsh-browser-cdp": {
      "chromePath": "auto",
      "runtimeArgs": "--headless"
    }
  },
  "localPatches": [
    { "package": "dsh-keyboard-shortcut", "version": "0.2.0", "description": "..." }
  ]
}
  • dshVersion ist die Version, mit der das Manifest erfasst wurde. Gleiches major.minor ist mit einer Warnung erlaubt; unterschiedliches major.minor erfordert --allow-dsh-mismatch.
  • targetProfile ist nur ein Standard; --profile überschreibt ihn.
  • config.dsh-browser-cdp.chromePath: "auto" veranlasst das Installationsprogramm, nach gemeinsamen Chrome/Chromium/Edge/Brave-Orten zu suchen. Setze einen expliziten Pfad, wenn die Suche fehlschlägt.
  • localPatches dient der Dokumentation für Menschen; das Installationsprogramm wendet es nicht automatisch an. Führe apply-patches.mjs explizit aus.

Enthaltenes Plugin-Set (erfasst am 2026-10-24)

PluginVersionRolle
@flyer103/dsh-side-chat0.6.0Native rechtsseitige Seitenleisten-Konversation
dsh-browser-cdp1.6.0Agent-Browser über Chrome/CDP; Headless-Watch-Panel
dsh-keyboard-shortcut0.2.0Enter=Neue Zeile, Cmd/Ctrl+Enter=Senden
dsh-markdown-bubble0.1.5In Markdown gerenderte Benutzernachrichten
dsh-markdown-input0.2.0-alpha.20Live-Markdown-Composer (Alpha)
dsh-better-sidebar0.28.0Dateibaum + bearbeitbarer CodeMirror + Git/Aufgaben/Terminal (schwergewichtig)

Hinweise:

  • dsh-markdown-input ist Alpha; falls die Composer-Übernahme fehlschlägt, deaktiviere es unter Einstellungen → Plugins.
  • dsh-better-sidebar ist schwergewichtig und enthält einen eigenen Seiten-Chat; es kann parallel zu @flyer103/dsh-side-chat existieren, aber der Benutzer sieht dann zwei Seiten-Chat-Einstiegspunkte. Entscheide, welcher behalten werden soll.
  • Die integrierten Dateien und Dokumentenvorschau sind Teil von DSH selbst; sie sind nicht in diesem Manifest und benötigen keine Installation.

Sicherheit

  • Drittanbieter-DSH-Plugins laufen im selben Prozess und können mit den Berechtigungen des Benutzers ausgeführt werden. Installiere nur aus dem Manifest, dem der Benutzer vertraut.
  • Exakte Versionen sind festgelegt. Ersetze sie nicht stillschweigend durch latest.
  • Die lokalen Patches modifizieren node_modules; sie sind optional, versioniert, gesichert und umkehrbar (stelle die .bak-Datei wieder her oder installiere das Plugin neu).
  • Kopiere ~/.dsh/.credentials.yaml, Sitzungslogs oder Arbeitsbereichsdateien nicht als Teil von „Plugins installieren“.

Fehlerbehebung

SymptomLösung
profile "desktop" is managed exclusively…Verwende den CLI-Wrapper der Desktop-App oder DSH_CLI; siehe oben
Could not find a dsh CLIInstalliere DSH Desktop oder übergib --dsh-cli /pfad/zu/dsh
profile "desktop" is not initializedÖffne DSH Desktop einmal, damit ~/.dsh/profiles/desktop erstellt wird
ECONNRESET / fetch failedWiederhole den Vorgang; das Installationsprogramm wiederholt einmal automatisch; überprüfe Netzwerk/Proxy/Registry
Plugin installiert, aber UI unverändertStarte DSH neu oder aktualisiere hart (Cmd+Shift+R); Client-Bundles sind gecacht
Plugin installiert, aber nicht aktivStelle sicher, dass es in dsh.profile.bundles ist; der Plugin-Manager fügt es normalerweise mit add an
dsh-markdown-input Composer fehltÜberprüfe Einstellungen → Plugins; Alpha-Plugin; hart aktualisieren; überprüfe die Konsole auf Slot/Composer-Fehler
Konflikt dsh-better-sidebar/side-chatBeide können starten; wähle einen Seiten-Chat-Eintrag oder entferne ein Plugin
Patch sagt already-patchedErwartet; die Datei hat bereits das Zielverhalten
Patch sagt skipped — version …Manifest-/Plugin-Version geändert; überprüfe die neue Version vor der Verwendung von --force

Dateien

DateiZweck
SKILL.mdDieser Workflow
plugins.jsonVersioniertes Plugin-Manifest
scripts/install.mjsTrockenlauf/Installation/Überprüfung
scripts/capture.mjsManifest aus einem Live-Profil aktualisieren
scripts/apply-patches.mjsOptionale lokale Schlüsselverhaltens-Patches
patches/README.mdPatch-Begründung und manueller Fallback

Verwandte Skills