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
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 sieht dsh-crew-Worker als native Subagenten; das Statusline-Segment zeigt laufende Tiers, verstrichene Zeit und Tokens.
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