DSH Crew

DSH Crew

Ein DeepSeek Harness-Plugin: Verteilen Sie Arbeit von Claude Code / Codex / Antigravity / Grok aus an DSH-Agenten, ohne auf die native Subagent-UI des Hosts zu verzichten.
Native Fortschritts-UI • Tier-Richtlinie & Eskalation • Dispatch-Leitplanken • Jobs-Board • DSH-Sitzungen im Host • Vision & Bildgenerierung (Native-First) • Ein-Klick-Installation

npm: @zseven-w/dsh-crew · Aktuelles Plugin-Release: 0.1.0-rc.4 · Getestet mit DSH 0.1.1-rc.1

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Français · Español · Deutsch · Português · Русский · हिन्दी · Türkçe · ไทย · Tiếng Việt · Bahasa Indonesia

License


DSH Crew — Einstellungsseite

Die Einstellungsseite von DSH Crew — Host-Integrationen, Dispatch-Richtlinie, Ausführung und die multimodale Brücke

## Warum DSH Crew DSH Crew ist ein Plugin für [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH) — ein Open-Source-Agent-Harness. Es macht DSH-Agenten aus Claude Code, Codex, Antigravity und Grok heraus dispatchbar: Der Orchestrator behält sein eigenes Modell, die Arbeit läuft auf einem echten DSH-Agenten mit den Tools, der Sandbox, den Presets und dem Sitzungsverlauf dieses Harness, und der Host zeigt diesen weiterhin als nativen Subagenten mit Live-Fortschritt an. Was die Arbeit ausführt, ist ein DSH-Agent, kein bloßer Modellaufruf. Tiers (`flash` / `pro`) bestimmen, wie viel Fähigkeit dieser Agent aus dem konfigurierten Roster des Harness erhält — derzeit DeepSeek V4 Flash und V4 Pro —, sodass ein Modellwechsel in DSH hier keine Änderung erfordert.
### 🧵 Native Fortschritts-UI Worker erscheinen als normale Subagenten in Claude Code / Codex / Antigravity / Grok — Dispatch-Anzahl, laufender Schritt, Tool-Aufrufe und Token-Verbrauch werden alle im eigenen Task-Panel des Hosts angezeigt, plus ein claude-hud-Statusline-Segment: `⚙dsh 1▶pro 2m14s 21.7k/606 ✓3`. ### 🎚️ Tier-Richtlinie und Eskalation `flash` für mechanische Arbeit, `pro` für Reasoning, `effort` von `off` bis `max`. `tier_policy` kann jeden Dispatch auf Tool-Ebene auf einen Tier begrenzen, und `escalate_on_failure` wiederholt einen fehlgeschlagenen flash-Lauf einmal auf pro — evidenzbasiert, statt die Schwierigkeit im Voraus zu erraten.
### 🏛️ DSH-Sitzungen im Host Ist das Bundle in einem DSH-Profil installiert, ist jeder Worker eine First-Class-DSH-Sitzung: sichtbar in der Web-UI, nach Arbeitsverzeichnis gruppiert, mit dem pro Tier gewählten Agent-Preset gemountet. Läuft DSH nicht, fällt der Dispatch auf eine Standalone-DSH-Runtime zurück, sodass CI- und Headless-Umgebungen weiterhin funktionieren. ### 👁️ Vision und Bildgenerierung Die Modelle von DSH sind reine Textmodelle. `describe_image` bevorzugt jetzt DeepSeeks eigenes VL-Modell (`deepseek-v4-flash-vision-exp`), sobald ein Key verfügbar ist, und fällt dann auf die CLIs zurück, die Sie bereits haben — Claude, Codex, Grok, Antigravity — oder auf eine beliebige von Ihnen konfigurierte OpenAI-kompatible API. `generate_image` leiht sich den Pinsel derselben CLIs. Eingefügte Bilder bleiben in der Konversation sichtbar und erreichen das Modell als Text.
### 🛡️ Dispatch-Leitplanken Jeder Dispatch wird geprüft, bevor irgendetwas gestartet wird. Worker→Worker-Verschachtelung ist auf Origin-Chain-Tiefe 3 begrenzt und Zyklen werden abgelehnt; ein zweiter Worker auf einem Workspace, den bereits ein anderer Job hält, wird mit den Halter-Informationen abgelehnt — niemals stillschweigend in die Warteschlange gestellt. Ablehnungen sind lesbare Fehler: warten oder neu zuschneiden, nicht umgehen. ### 📋 Jobs-Board Das DSH-Crew-Panel dient zugleich als Jobs-Board: Jeder Worker-Job — laufend oder abgeschlossen — wird mit Tier, Effort, Live-Fortschritt und Tokens aufgelistet, gehaltene Workspaces zeigen ihre Halter, und ein Job, der mitten im Flug verschwindet (z. B. ein Hub-Neustart), erscheint als verwaister Geist, statt stillschweigend zu verschwinden.
### 🔌 Benutzerdefinierte Provider Bringen Sie Ihren eigenen Endpoint (Base URL + API-Schlüssel + Modelle) oder eine lokale Befehlsvorlage mit. Jeder Provider hat einen Konnektivitätstest, der Erreichbarkeit und Auth prüft und dann einen echten Vision-Aufruf macht — so erfahren Sie es sofort statt mitten in der Aufgabe. ### 📦 Ein-Klick-Installation Die Einstellungsseite installiert und aktualisiert das Claude-Code-Plugin, die Codex-Rollendateien und die Antigravity-/Grok-Agenten, -Skills und -Befehle für Sie — Marketplace-Registrierung, Berechtigungs-Allowlist, HUD-Anbindung, für diese Maschine gerenderte absolute Pfade — und stellt sie genauso einfach wieder her. Jede Einstellungsdatei wird zuvor gesichert.
## Funktionsweise ``` Claude Code / Codex / Antigravity / Grok (orchestrator, keeps its own model) └─ ds-flash / ds-pro ← native subagent shell (progress shows in the host's task UI) └─ MCP: dsh_run_worker(tier, effort, cwd, worker=) ├─ worker="agy"/"grok" → that external CLI runs the task (explicit opt-in) ├─ hub reachable → session inside DSH (visible in the Web UI, grouped by cwd) └─ otherwise → dsh-jsonrpc-agent runtime (worker.cordis.yml) └─ DeepSeek V4 Flash / Pro (DSH SDK, event stream → progress and token stats) ``` ## Ein Lauf, zwei Ansichten Dispatch lässt sich breit auffächern. Unten übersetzen achtzehn Worker dieses README parallel: Der Host zählt sie als eigene Subagenten, während das Harness sie als echte Sessions ausführt.

Claude Code

Claude Code sieht dsh-crew-Worker als native Subagenten; das Statusline-Segment zeigt laufende Tiers, verstrichene Zeit und Tokens.

DSH Crew

Das DSH-Crew-Panel zeigt denselben Lauf von der Harness-Seite: welcher Host welchen Job gestartet hat, Tier und Effort, Fortschritt und Tokenverbrauch.

Das Panel ist zugleich das Jobs-Board: laufende und abgeschlossene Jobs bleiben mit Tier, Fortschritt und Tokens aufgelistet, gehaltene Workspaces nennen ihre Halter, und ein Job, der mitten im Flug verschwindet (ein Hub-Neustart), erscheint als verwaister Geist, statt stillschweigend zu verschwinden.

## Installation Aus npm in ein DSH-Profil installieren: ```bash dsh plugin --profile web add @zseven-w/dsh-crew@latest dsh web ``` Oder für lokale Entwicklung direkt aus dem Quellbaum: ```bash dsh plugin --profile web add link:/path/to/dsh-crew dsh web ``` Das `link:`-Protokoll verlinkt die Profilabhängigkeit auf dieses Repository, sodass Rebuilds sofort sichtbar sind. ### DeepSeek-Zugangsdaten konfigurieren (nur standalone) Im Hub-Modus — die Installation oben — laufen Worker innerhalb der DSH-Instanz und nutzen die DeepSeek-Zugangsdaten, mit denen sie bereits konfiguriert ist. Mehr ist nicht zu konfigurieren. Nur das Standalone-Fallback braucht einen eigenen Key: Dispatch von einem Host ohne laufende DSH-Instanz startet eine Worker-Runtime als separaten Prozess. Hole einen API-Key auf [platform.deepseek.com](https://platform.deepseek.com) und schreibe ihn in `~/.config/dsh-crew/.env`: ``` DEEPSEEK_API_KEY=sk-... ``` ### Prüfen ```bash node scripts/smoke.mjs ``` Der Smoke Test schickt einen günstigen Job über den verfügbaren Pfad — den Hub, wenn eine DSH-Instanz läuft, sonst standalone — und gibt aus, welcher davon verwendet wurde. Nach etwa zehn Sekunden sollte `smoke test passed — configuration OK` erscheinen. Bei einem Fehler wird der Grund ausgegeben, bezogen auf den getesteten Pfad. Öffne danach Einstellungen → DSH Crew und installiere die Host-Integrationen — Claude Code, Codex, Antigravity, Grok — mit einem Klick, oder steuere denselben Installer über die Kommandozeile: ```bash node src/install/cli.mjs claude # Claude Code plugin: marketplace + permissions + HUD segment node src/install/cli.mjs codex # Codex agents + prompts node src/install/cli.mjs agy # Antigravity MCP config + agents + skills node src/install/cli.mjs grok # Grok MCP config + agents + commands node src/install/cli.mjs all # all four hosts at once # uninstall symmetrically (uninstall-claude | uninstall-codex | uninstall-agy | uninstall-grok): node src/install/cli.mjs uninstall-claude ``` ## Hintergrund und Begriffe - **DSH** (DeepSeek Harness): DeepSeeks Open-Source-Agent-Harness, ein Code-Agent in Web-UI-Form, ähnlich wie Claude Code, aber mit DeepSeek-Modellen. - **MCP** (Model Context Protocol): Das KI-Tool-Integrationsprotokoll von Anthropic; ermöglicht es LLMs, externe Tools und Datenquellen sicher aufzurufen. - **Cordis-Bundle**: Das Plugin-Format von DSH; dieses Projekt kann standalone als MCP-Dienst laufen oder als Hub-Modus in DSH Web installiert werden. - **tier**: Fähigkeitsstufe — welcher Slot aus DSHs konfiguriertem Modell-Roster einem Worker zugewiesen wird. `flash` ist schnell und günstig (einfache Aufgaben), `pro` denkt intensiver nach (komplexe Probleme). Derzeit sind sie DeepSeek V4 Flash und V4 Pro zugeordnet; Modelle in DSH austauschen, und hier ändert sich nichts. - **worker**: Der DSH-Agent, der die Arbeit erledigt — eine vollständige Sitzung mit eigenen Tools, eigener Sandbox und eigenem Preset, kein bloßer Modellaufruf. - **effort**: Reasoning-Stärke, `off` = kein Reasoning, `high` = hoher Reasoning-Einsatz, `max` = maximaler Reasoning-Einsatz. ## Claude Code ### Installation Ein-Klick-Installation (eine Option wählen): - **DSH-Einstellungsseite** (wenn der Hub-Modus installiert ist): Settings → DSH Crew → „Install to Claude Code" - **Kommandozeile**: `node src/install/cli.mjs all` Beide bewirken dasselbe: lokalen Marketplace registrieren (übergeordnetes Verzeichnis `dsh-plugins/` als Marketplace-Root) + `claude plugin install` + MCP-Tool-Berechtigungs-Allowlist + Konfiguration des claude-hud-Worker-Status-Segments (automatisches Backup von settings.json vor Änderungen, idempotent). **Starten Sie die Sitzung nach der Installation neu, damit die Änderungen wirksam werden.** ### Verwendung - Sagen Sie direkt in der Konversation „dispatch X to ds-flash" oder „dispatch X to ds-pro", und der Subagent führt die Aufgabe aus - Dispatch-Anzahl und Echtzeit-Fortschritt werden in der Task-UI von Claude Code angezeigt - **HUD-Statuszeilen-Segment**: `⚙dsh 1▶pro 2m14s 21.7k/606 ✓3` (aktueller Tier / verstrichene Zeit / Token-Verbrauch / Abschlusszähler) - Für die lokale Entwicklung können `statusline/statusline.sh` oder `statusline/worker-segment.sh` unabhängig integriert werden - **Langlaufende Aufgaben**: CC hat Timeout-Limits für MCP-Aufrufe (`MCP_TOOL_TIMEOUT` anpassbar); bei langen Aufgaben kann der Orchestrator `dsh_spawn_worker` + `dsh_worker_result(wait_seconds)`-Polling verwenden - **Lokale Entwicklung und Debugging**: `claude --plugin-dir /path/to/dsh-crew` zum temporären Laden ### Sitzungsbefehle Sie überschreiben die globalen Vorgaben nur für die aktuelle Sitzung und werden auf Tool-Ebene durchgesetzt, nicht per Prompt: | Befehl | Wirkung | |---|---| | `/dsh-crew:config` | Vorgaben der Sitzung anzeigen oder setzen: `tier=flash\|pro`, `effort=off\|high\|max`, `mode=auto\|hub\|standalone`, `timeout=`, `policy=auto\|flash-only\|pro-only`, `escalate=true\|false`, `reset` | | `/dsh-crew:on` · `/dsh-crew:off` | Dispatch für diese Sitzung ein- oder ausschalten (aus ist ein harter Schalter: das Tool verweigert) | | `/dsh-crew:status` | Live-Status der Worker-Jobs: Tier, Fortschritt, Tokens, aktuelles Tool | | `/dsh-crew:playbook` | Dispatch-Best-Practices: die Wahl zwischen flash und pro, eigenständige Briefings, Parallelität, Verifizieren von Ergebnissen, Leitplanken | ## Codex ### Installation Empfohlen wird die Verwendung des Installers (rendert Pfade für diese Maschine automatisch, kopiert die Prompts `/dsh-config`, `/dsh-status` und `/dsh-playbook`): ```bash node src/install/cli.mjs codex ``` Oder manuell kopieren (erfordert nach dem Kopieren eine manuelle Pfadanpassung): ```bash cp codex/agents/*.toml ~/.codex/agents/ # global or project-level .codex/agents/ ``` Die Rollendateien sind vorkonfiguriert mit: - MCP-Server-Mounting-Konfiguration - `default_tools_approval_mode = "approve"` (**erforderlich**, andernfalls werden Tool-Aufrufe im Exec-Modus automatisch abgebrochen) - `tool_timeout_sec = 3600` **Hinweis**: Beim manuellen Kopieren müssen die absoluten Pfade im Feld `args` an den tatsächlichen Installationsort angepasst werden; der Installer übernimmt dies automatisch. ### Verwendung - Wählen Sie in der interaktiven TUI „spawn ds-pro to ...", um Aufgaben zu verteilen; die Active/Done-Panels zeigen den Fortschritt - Der `codex exec`-Modus kann `dsh_run_worker` auch direkt aufrufen ### Sitzungsbefehle Für Codex werden drei Prompts installiert: | Befehl | Wirkung | |---|---| | `/dsh-config` | Vorgaben der Sitzung anzeigen oder setzen: `tier=flash\|pro`, `effort=off\|high\|max`, `mode=auto\|hub\|standalone`, `timeout=`, `policy=auto\|flash-only\|pro-only`, `escalate=true\|false`, `reset` | | `/dsh-status` | Live-Status der Worker-Jobs: Tier, Fortschritt, Tokens, aktuelles Tool | | `/dsh-playbook` | Dispatch-Best-Practices: die Wahl zwischen flash und pro, eigenständige Briefings, Parallelität, Verifizieren von Ergebnissen, Leitplanken | ## Antigravity (agy) ### Installation ```bash node src/install/cli.mjs agy ``` Registriert den dsh-crew-MCP-Server in `~/.gemini/config/mcp_config.json` und installiert die `ds-flash`- / `ds-pro`-Agenten sowie die Skills `dsh-config`, `dsh-status` und `dsh-playbook` nach `~/.gemini/config/` (alle Dateien werden zuvor gesichert). Starten Sie die Sitzung nach der Installation neu. ### Verwendung - Wählen Sie `ds-flash` oder `ds-pro` als Agenten, um Aufgaben zu verteilen - `dsh_worker_config` liest die Sitzungsvorgaben oder überschreibt sie ### Sitzungs-Skills | Skill | Wirkung | |---|---| | `/dsh-config` | Vorgaben der Sitzung anzeigen oder setzen (Tier / Effort / Modus / Timeout / Richtlinie / Eskalation / Reset) | | `/dsh-status` | Live-Status der Worker-Jobs: Tier, Fortschritt, Tokens, aktuelles Tool | | `/dsh-playbook` | Dispatch-Best-Practices: die Wahl zwischen flash und pro, eigenständige Briefings, Parallelität, Verifizieren von Ergebnissen, Leitplanken | ### Einschränkungen - agy führt Worker mit **voller Freigabe** aus (`--dangerously-skip-permissions` + accept-edits): agy 1.1.16 hat keinen Workspace-bezogenen Berechtigungsmodus, daher muss ein headless Worker Tool-Anfragen automatisch genehmigen. Deinstallation: `node src/install/cli.mjs uninstall-agy` ## Grok ### Installation ```bash node src/install/cli.mjs grok ``` Schreibt den Abschnitt `[mcp_servers.dsh-crew]` in `~/.grok/config.toml` und installiert die `ds-flash`- / `ds-pro`-Agenten sowie die Befehle `/dsh-config`, `/dsh-status` und `/dsh-playbook` nach `~/.grok/` (alle Dateien werden zuvor gesichert). ### Verwendung - Wählen Sie `ds-flash` oder `ds-pro` als Agenten, um Aufgaben zu verteilen ### Sitzungsbefehle | Befehl | Wirkung | |---|---| | `/dsh-config` | Vorgaben der Sitzung anzeigen oder setzen (Tier / Effort / Modus / Timeout / Richtlinie / Eskalation / Reset) | | `/dsh-status` | Live-Status der Worker-Jobs: Tier, Fortschritt, Tokens, aktuelles Tool | | `/dsh-playbook` | Dispatch-Best-Practices: die Wahl zwischen flash und pro, eigenständige Briefings, Parallelität, Verifizieren von Ergebnissen, Leitplanken | ### Einschränkungen - Aus Sicherheitsgründen startet grok keine MCP-Server auf Repo-Ebene in nicht vertrauenswürdigen Projektverzeichnissen (`grok mcp doctor` meldet „folder untrusted“); eine globale Installation ist nicht betroffen — Verzeichnis wechseln oder `--trust` übergeben. - grok-Worker laufen mit `bypassPermissions` (always-approve, wie die grok-Dokumentation für headless Automatisierung empfiehlt); Deny-Regeln und Hooks gelten weiterhin. Deinstallation: `node src/install/cli.mjs uninstall-grok` ## MCP-Tools | Tool | Beschreibung | |---|---| | `dsh_run_worker` | Blockierender Task-Dispatch (`tier`: flash/pro, `effort`: off/high/max, `cwd`, `worker`), wartet auf das Ergebnis | | `dsh_spawn_worker` | Asynchroner Task-Dispatch, gibt die Job-ID zurück (für paralleles Fan-out); Ergebnisse mit `dsh_worker_result` einsammeln | | `dsh_worker_status` | Echtzeit-Fortschritt aller Jobs (Turn/Schritt/aktuelles Tool/Token) + cwd-Advisory-Locks | | `dsh_worker_result` | Holt das Ergebnis, kann mit `wait_seconds` warten | | `dsh_worker_cancel` | Bricht den angegebenen Job ab und beendet seinen Runtime-Prozess | | `dsh_worker_config` | Sitzungsvorgaben lesen/setzen (Tier, Effort, Modus, Timeout, Richtlinie, Eskalation) und `worker_profiles` auflisten | Der Fortschritt wird gleichzeitig nach `~/.config/dsh-crew/status.d/` gespiegelt (eine Shard-Datei pro Writer, lesbar für Statusline / externes Monitoring). ## Dispatch-Leitplanken Jeder Dispatch wird geprüft, bevor irgendetwas gestartet wird — Ablehnungen sind lesbare Fehler, niemals stille Warteschlangen: - **Origin Chain**: Jeder Dispatch hängt einen Hop an die Worker→Worker-Origin-Chain an. Verschachtelung tiefer als die Obergrenze (`origin_depth_limit`, Standard 3) wird abgelehnt, ebenso jeder Zyklus (dasselbe Backend + cwd erscheint zweimal) — der Schutz, der rekursive Worker-Selbstverstärkung stoppt. - **cwd-Advisory-Lock**: ein laufender Worker pro Workspace. Ein zweiter Dispatch in einen gehaltenen Workspace wird mit der Job-ID, dem Backend und der Startzeit des Halters abgelehnt — warten Sie, bis er sich erledigt hat, brechen Sie ihn mit `dsh_worker_cancel` ab, oder übergeben Sie `allow_concurrent_cwd: true` (nur reine Leseaufgaben). ## Dispatch-Playbook Wie man *gut* dispatcht — flash vs. pro, eigenständige Briefings, sichere Parallelität, Verifizieren von Ergebnissen und die Leitplanken oben — ist als Playbook pro Host gebündelt: `/dsh-crew:playbook` (Claude-Code-Skill), `/dsh-playbook` (Codex-Prompt, Antigravity-Skill, Grok-Befehl). ## Explizite CLI-Backends `worker="agy"` / `worker="grok"` pinnt einen Dispatch auf diese externe CLI (Backend × Modell × Effort) statt auf die DSH-Tier-Logik. Das ist explizites Opt-in — es gibt keinen Standard, setzen Sie es also nur, wenn der Nutzer diese CLI verlangt. Einschränkungen: grok verweigert das Starten repo-lokaler MCP-Server in nicht vertrauenswürdigen Ordnern, und agy führt Worker mit voller Freigabe aus (kein Workspace-bezogener Berechtigungsmodus). ## Multimodal: Vision und Bildgenerierung **DeepSeek ist ein reines Textmodell** und unterstützt weder Bildeingabe noch -generierung. Dieses Plugin bezieht diese Fähigkeiten extern über MCP-Tools: **Native Vision zuerst**: Wenn der Vision-Provider eine eingebaute CLI ist (oder explizit `native`), versucht `describe_image` zuerst DeepSeeks eigenes VL-Modell `deepseek-v4-flash-vision-exp` (direkter API-Aufruf; Key aus `DEEPSEEK_API_KEY` oder `~/.config/dsh-crew/.env`). Jeder Fehler fällt sauber auf die CLI-Provider-Kette unten zurück, die als Fallback erhalten bleibt. Die Bildgenerierung bleibt unberührt — das native Modell schaut sich Bilder immer nur an. | Tool | Beschreibung | |---|---| | `describe_image` | Beantwortet Fragen durch das Betrachten von Bildern (Screenshots, Designs, Diagramme usw.), Ergebnisse werden nach Provider + Modell + Bild + Frage zwischengespeichert | | `generate_image` | Erzeugt ein Bild aus einer Textbeschreibung und speichert es unter einem angegebenen absoluten Pfad; die Ausgabe ist eine flache Bitmap (Ebenenbearbeitung erfordert OpenPencil) | **Bildeinfügen in Sitzungen**: Wechseln Sie in DSH das Modell auf `DeepSeek (vision) ◉`, um Bilder direkt einzufügen. Bilder bleiben in der Sitzung und werden normal angezeigt; das Plugin hängt transkribierten Text dahinter an und entfernt die Bilder vor dem Senden — Sie sehen das Bild, das Modell liest den Text. Die Transkription folgt derselben Native-First-Leiter: DeepSeeks VL-Modell, wenn ein Key verfügbar ist, danach Ihr konfigurierter CLI-Provider. ### Konfiguration In der **DSH-Einstellungsseite → DSH Crew → Multimodal** (oder bearbeiten Sie direkt `~/.config/dsh-crew/config.json`): **Vision-Provider** (Bildbetrachtung): - `native` / `deepseek-native` (DeepSeeks eigenes VL-Modell — wird bei jedem eingebauten Provider automatisch zuerst versucht, sobald ein Key verfügbar ist) - `claude-code` (Standard, verwendet Haiku, kostengünstig) - `codex` (verwendet GPT, konkretes Modell wählbar) - `grok` (verwendet Grok) - `agy` (Antigravity) - `custom` (OpenAI-kompatible API oder lokaler Befehl) - `off` (deaktiviert) **Bildgenerierungs-Provider** (Bildgenerierung): - `codex` (`$imagegen`, gpt-image-2) - `agy` (Nano Banana) - `grok` (Imagine) - `custom` (OpenAI-kompatible API oder lokaler Befehl) - `off` (deaktiviert) ### Benutzerdefinierter Provider Zwei Integrationsmethoden: **API**: Jeder OpenAI-kompatible Endpoint - Base URL, API-Schlüssel und Modellliste ausfüllen - Vision verwendet `/chat/completions` mit inline eingebetteten Base64-Bildern - Bildgenerierung verwendet `/images/generations` - **Das „Bildgenerierungsmodell" muss angegeben werden, um Generierungsfähigkeit zu erhalten**, andernfalls erscheint der Provider nur in der Vision-Auswahl **CLI**: Lokale Befehlsvorlage, Platzhalter werden durch sichere Referenzen ersetzt - Vision: `{image} {question} {model}` → stdout als Antwort - Bildgenerierung: `{prompt} {output} {size}` → der Befehl muss die Datei nach `{output}` schreiben - Mindestens einen Befehl ausfüllen; je nachdem, welcher ausgefüllt ist, ergibt sich die Fähigkeit **Konnektivitätstest**: Jeder benutzerdefinierte Provider hat eine Test-Schaltfläche - API: Erreichbarkeit des Endpoints und Auth prüfen, echte Vision-Anfrage zur Verifizierung senden - CLI: Ausführbare Datei prüfen, echten Befehl zur Verifizierung ausführen - Bildgenerierung: Nur die Konfiguration validieren, keine tatsächliche Bildausgabe **Entliehene Abo-CLIs** (claude / codex / grok / agy) erfordern eine lokale Anmeldung; das Plugin umgeht deren Berechtigungen nicht für Sie. ## Hub-Modus Dieses Paket ist auch ein gültiges DSH-Bundle (`dsh.bundle` + `cordis.patch.yml`). Nach der Installation in ein DSH-Web-Profil mit `dsh plugin add dsh-crew`: - **Worker-Sitzungen werden First-Class-Bürger**: laufen als First-Class-Sitzungen im DSH-Host (`agents.create` + Modell-/Effort-Wasserfall pro Sitzung + Standard-Preset), erscheinen in der Sitzungsliste der Web-UI und können jederzeit geöffnet werden, um die vollständige Ausführung einzusehen - **Nach Arbeitsverzeichnis organisieren**: Worker-Sitzungen nach cwd in der Web-UI verwalten - **Loopback-API**: - `POST/GET /_dsh/dsh-crew/jobs`: Tasks starten, auflisten, Ergebnisse per Long-Poll abrufen, abbrechen - `GET /_dsh/dsh-crew/ping`: Health-Check (der MCP-Shim nutzt dies, um zu erkennen, ob der Hub läuft) - `POST /_dsh/dsh-crew/install`: Ein-Klick-Installation der Host-Integrationen — Claude Code / Codex / Antigravity / Grok (Backend von `src/install/`) - **Auto-Erkennung**: Der MCP-Shim der Hosts erkennt den Hub automatisch (Env-Var `DSH_CREW_HUB`, Standard `http://127.0.0.1:3080`) - DSH Web läuft → Jobs wechseln in den Hub-Modus (`mode: "hub"`) - Läuft nicht → Fallback auf die Standalone-Runtime ## Lösungsauswahl und Einschränkungen ### Reguläre Abonnenten → Shell-Subagent-Ansatz (empfohlen) - **Aktueller Stand**: Die Subagent-Shell von Claude Code verwendet Haiku als Vermittler; jeder Dispatch fügt Hunderte bis Tausende Token hinzu - **Kompromiss**: Eine kleine Menge Anthropic-Token im Austausch für native Task-UI, Echtzeit-Fortschrittsanzeige und keine zusätzliche Konfiguration - **Empfehlung**: Wenn Sie bereits Claude Pro abonniert haben oder Claude Code verwenden, nutzen Sie diesen Ansatz — bequem und transparent ### Pay-as-you-go- / CI-Umgebungen → direkter Router-Ansatz - **Aktueller Stand**: Das Subagent-Frontmatter von Claude Code unterstützt keine direkte Verbindung zu Drittanbieter-Modellen; das Router-Experiment dieses Repos im Scratchpad erfordert API-Key-Credentials für Claude Code, aber Abo-OAuth wird upstream von Anthropic mit 403 blockiert - **Empfehlung**: - Wer API-Key-Credentials (kein OAuth) verwendet und Anthropic-Token sparen möchte, kann einen lokalen Router für eine direkte DeepSeek-Verbindung betreiben - CI-Umgebungen verwenden typischerweise ebenfalls API-Schlüssel; dieser Ansatz ist wirtschaftlicher (ausschließlich DeepSeek-Token) - Erfordert eigene Tests der Router-Integration (nicht offiziell unterstützt) ### DSH Web läuft → Hub-Modus automatisch aktiviert - **Aktueller Stand**: Ist `dsh plugin add dsh-crew` in ein DSH-Web-Profil installiert, laufen Jobs als First-Class-Sitzungen im Host und erscheinen in der Sitzungsliste der Web-UI - **Empfehlung**: Bei lokalen Entwicklungsiterationen wird empfohlen, den Hub-Modus zu aktivieren; der Worker-Fortschritt lässt sich vollständig in der Web-UI beobachten; für maschinenübergreifende Zusammenarbeit oder Umgebungen ohne Web-UI den Shell-Ansatz des dispatchierenden Hosts verwenden ### Bekannte Punkte - Die Codex-Rolle kann theoretisch `model_provider` direkt auf DeepSeek zeigen lassen (unverifiziert); diese Brücke hängt nicht davon ab - Die Ausgabe der Bildgenerierung ist eine flache Bitmap; Ebenenbearbeitung erfordert OpenPencil - **Runtime-Abhängigkeiten**: Nur `@modelcontextprotocol/sdk` und `zod`; `@deepseek-ai/*` sind Host-Runtime (vom DSH-Host bereitgestellt; eine normale npm-Installation zieht sie nie) - **Codex muss konfigurieren**: `default_tools_approval_mode = "approve"`, andernfalls werden Tool-Aufrufe automatisch abgebrochen ## Entwicklung ```bash pnpm install node_modules/.bin/tsdown src/client/index.tsx --format cjs --platform browser \ --target es2022 --tsconfig tsconfig.client.json --out-dir .client-build --clean node scripts/build-client.mjs # wraps the bundle for the DSH module loader node scripts/smoke.mjs # dispatches one real flash task end to end ``` Runtime-Abhängigkeiten sind nur `@modelcontextprotocol/sdk` und `zod`; jedes `@deepseek-ai/*`-Paket ist eine Peer-Abhängigkeit, die vom DSH-Host bereitgestellt wird, wodurch das Plugin im einzigen Modul-Realm des Hosts bleibt. ## Ökosystem - [DSH Android](https://github.com/ZSeven-W/dsh-android) — ein Live-Android-Emulator oder USB-Gerät in der Konversation, vollständig über adb gesteuert - [DSH iOS](https://github.com/ZSeven-W/dsh-ios) — ein lebender iOS-Simulator — und ein iPhone per USB — in der Konversation - [DSH Noema](https://github.com/ZSeven-W/dsh-noema) — Langzeitgedächtnis für DSH - [DSH OpenPencil](https://github.com/ZSeven-W/dsh-openpencil) — `.op`-Designdokumente innerhalb einer Konversation inspizieren und bearbeiten ## Lizenz MIT