Kurz gesagt: Creator Mode ist der Modus von DeepSeek Harness, mit dem Sie Harness selbst erweitern. Sie beschreiben das gewünschte Tool in einem Satz, und der Agent schreibt ein Plugin, installiert es im aktuellen Profil und prüft, ob es geladen wurde.
- Laut dem offiziellen Beitrag von @DeepSeekHarness (2. November) macht Creator Mode aus Ideen nutzbare Plugins; die Demo zeigt einen Design-Arbeitsbereich, ein Sandbox-Spiel und einen 3D-LLM-Visualisierer.
- Harness startet mit
npx @deepseek-ai/dsh web. Wir haben Version 0.2.1-rc.5 am Nachmittag des 3. November (Pekinger Zeit) unter Linux getestet; die Installation der Abhängigkeiten dauerte etwa 37 Sekunden. - Es unterstützt eine „Custom model API“: Base URL, Protokoll und Key eintragen, und schon spricht es mit jeder OpenAI-kompatiblen Drittanbieter-API. Mit aicodewith haben
claude-sonnet-5-5,gpt-6.1-solunddeepseek-flashTools korrekt aufgerufen. - Ein
todo_scan-Plugin mit Creator Mode war nach 1 min 33 s fertig: 6 Dateien geschrieben und das Plugin installiert. Aufrufe aus einer neuen Sitzung und im Headless-Modus lieferten korrekte Ausgaben.
API Key erstellen und Claude und GPT in DeepSeek Harness, Claude Code, Codex und Cursor nutzen →
Was DeepSeek Harness und Creator Mode sind
DeepSeek Harness (Befehl dsh) ist ein Open-Source-Agent-Harness von DeepSeek, auf GitHub unter MIT-Lizenz veröffentlicht. Das Motto lautet „Everything is a Plugin“: Tools, Skills, UI-Panels und sogar Modi sind Plugins, die auf dem Cordis-Framework zusammengesetzt werden. Es ist eine Developer Preview, und das README kündigt inkompatible Änderungen an.
Beim Anlegen einer neuen Sitzung in der Web-UI stehen vier Modi zur Wahl (Texte aus der UI in unserem Test):
| Modus | Beschreibung in der UI |
|---|---|
| Standard mode | Arbeit mit Code, Dateien und Informationen; passt für die meisten Aufgaben |
| PTC mode | Alles aus Standard, besser für Tool-Aufrufe im Stapel mit anschließendem Ordnen der Ergebnisse |
| Minimal mode | Nur Terminal und Bildlesen; nützlich, um das Grundverhalten zu testen |
| Creator mode | DSH per Gespräch anpassen: den Agenten Plugins schreiben lassen, die Funktionen oder UI hinzufügen, oder Tools und Prompts zu einem eigenen Modus kombinieren |
Laut dem offiziellen Leitfaden zu dynamischen Plugins und dem Agent-Preset-README lautet die interne ID von Creator Mode cordis. Gegenüber Standard kommen drei Dinge hinzu:
- Laufzeit-Inspektion: zwei schreibgeschützte Tools,
cordis_inspect_listundcordis_inspect_query, die die echten Services, Tool-Schemas und Konfigurations-Schemas zeigen, damit der Agent APIs nicht aus dem Quellcode erraten muss. - Plugin-Verwaltung: das Tool
plugin_manager(auch in Standard) installiert, aktiviert, deaktiviert und entfernt Bundles. Die Plugin-Konfiguration gehört zum aktuellen Profil, gilt für alle seine Sitzungen und bleibt nach einem Neustart erhalten. - Authoring-Skills: Skills wie
cordis-plugin-developmentwerden automatisch eingebunden, mit Schritten und Vorlagen für Plugins, Bundles und Modi.
Es nutzt das Modell, das Sie im Modellwähler ausgewählt haben. Neben dem Wähler für neue Sitzungen hat auch das Menü Add plugin auf der Plugins-Seite den Eintrag „Let the agent create a plugin“, der denselben Creator-Ablauf öffnet.
Einige Stimmen von Dritten:
- Laut @rohanpaul_ai gibt es die Funktion seit August; am 2. November hat DeepSeek ein Demo-Video und die Prompts hinter den 7 Beispielen veröffentlicht.
- Laut @testingcatalog erstellt Creator Mode wiederverwendbare Plugins für Spiele bis hin zu beruflichen Aufgaben.
- Laut Nutzer @superalesha laufen bei ihm Kimi, GLM, MiniMax, DeepSeek und weitere offene Modelle in Harness, und er hat „sogar GPT-Modelle über ein Plugin hinzugefügt“.
Zum anderen Harness-basierten Projekt von DeepSeek, Super-agent, siehe unseren Test von DeepSeek Super-agent und dem dsh-superagent-Prototyp; das wiederholen wir hier nicht.
DeepSeek Harness installieren
Installieren Sie Node.js (wir nutzten 22.23) und führen Sie aus:
# Node.js 22 or newer
npx @deepseek-ai/dsh --version
# 0.2.1-rc.5
npx @deepseek-ai/dsh web
# dsh web: http://127.0.0.1:3080/?token=...
Lokal öffnet sich der Browser automatisch; auf einem Server oder per SSH fügen Sie --no-open hinzu, dann wird nur die Adresse ausgegeben. Die Adresse enthält ein token – öffnen Sie genau diesen Link, denn http://127.0.0.1:3080/ allein liefert 401.
Für eine einzelne Aufgabe im Terminal ohne Web-UI gibt es den Headless-Modus: Die Antwort geht nach stdout, Diagnosen nach stderr – praktisch für Skripte und CI. Die Optionen stehen in der offiziellen CLI-Hilfe.
Der offizielle Sicherheitshinweis warnt, dass Harness vom Modell erzeugten Code und Befehle ausführt, Drittanbieter-Plugins lädt und keinem Sicherheitsaudit unterzogen wurde. Betreiben Sie es in einer Wegwerf-VM, einem Container oder einem eigenen Verzeichnis, nicht neben wichtigen Projekten und Zugangsdaten.
DeepSeek Harness an eine Drittanbieter-API anbinden (aicodewith)
Modelle konfigurieren Sie unter Settings → Models. Neben der DeepSeek-Karte und den eingebauten Drittanbietern gibt es Custom model API für ein Relay, ein Firmen-Gateway oder einen selbst gehosteten Server. Laut dem offiziellen Leitfaden zur Modellkonfiguration stehen drei Protokolle zur Wahl: OpenAI Chat Completions, OpenAI Responses und Anthropic Messages.
API Key erstellen und DeepSeek Harness anbinden →
Weg 1: die Models-Seite ausfüllen
Settings → Models → Add model provider → Custom model API
Provider ID aicodewith
Base URL https://api.aicodewith.ai/v1
API protocol OpenAI Chat Completions
API key (your aicodewith key)
Models claude-sonnet-5-5, gpt-6.1-sol, deepseek-flash
Nach dem Speichern erscheinen die drei Modelle im Modellwähler. Ein auf der Seite gespeicherter Key landet in ~/.dsh/.credentials.yaml; die Einstellungen behalten nur einen Verweis.
Weg 2: die Konfigurationsdatei bearbeiten
Die Seite schreibt die cordis.patch.yml des Profils. Mit dsh web heißt das Profil web, im Headless-Modus headless. Genau diese Datei haben wir getestet (der Key kommt aus einer Umgebungsvariable und steht nicht in der Datei):
# ~/.dsh/profiles/web/cordis.patch.yml
- id: llm-pi-ai
config:
providers:
aicodewith:
displayName: aicodewith
apiKeyEnv: AICODEWITH_API_KEY
api: openai-completions
baseURL: https://api.aicodewith.ai/v1
models:
- id: claude-sonnet-5-5
- id: gpt-6.1-sol
- id: deepseek-flash
- id: agent-default-model
config:
provider: aicodewith
model: claude-sonnet-5-5
Key vor dem Start exportieren:
export AICODEWITH_API_KEY="IHR_API_KEY"
npx @deepseek-ai/dsh web
Windows PowerShell:
$env:AICODEWITH_API_KEY = "IHR_API_KEY"
npx @deepseek-ai/dsh web
Änderungen gelten ab der nächsten Anfrage, ohne Neustart. Senden Sie eine Nachricht zur Kontrolle:
npx @deepseek-ai/dsh headless "Reply with exactly: harness ok"
# harness ok
Unsere Ergebnisse (3. November, Pekinger Zeit):
| Test | Modell | Ergebnis | Dauer |
|---|---|---|---|
| Einzeilige Antwort | claude-sonnet-5-5 | harness ok zurück | 4,5 s |
| Einzeilige Antwort | gpt-6.1-sol | harness ok zurück | 3,7 s |
| hello.py schreiben und ausführen (write- + bash-Aufruf) | claude-sonnet-5-5 | Ausgabe 5050 | 8,2 s |
| Dasselbe mit Anthropic-Messages-Protokoll und Base URL https://api.aicodewith.ai | claude-sonnet-5-5 | harness ok zurück | 3,0 s |
Für DeepSeeks eigenes Modell fügen Sie deepseek-flash zur Liste hinzu; siehe was sich in DeepSeek V4.1 Flash 1017 geändert hat und wie Sie es in Claude Code / Codex nutzen.
Erstes Plugin mit Creator Mode: todo_scan
Ziel: ein Tool todo_scan, das Zeilen mit TODO oder FIXME findet und Datei:Zeile: Text zurückgibt, höchstens 50 Einträge.
Öffnen Sie in der Web-UI den Moduswähler, wählen Sie Creator mode und senden Sie diese Anfrage (wir nutzten claude-sonnet-5-5 mit der Standardberechtigung Workspace Write):
Write a DSH plugin that adds a tool named todo_scan. It takes an optional path
(default: the working directory), recursively scans text files for lines
containing TODO or FIXME (skip node_modules and .git), and returns a list of
file:line: text entries, at most 50. Install it into this profile and verify
it loaded.
Einmal fragte es nach einer Bestätigung, weil die Plugin-Installation eine Aktion mit hohem Vertrauen ist; wir klickten Allow once. Die abschließende Antwort (Auszug):
Completed in 1m 33s
The todo_scan plugin is installed and loaded, and a test call returned correct results.
Install: @local/todo-scan installed with application: applied and no warnings.
Tool registration: todo_scan appears in the live tool list with the schema from my plugin.
...
It skips symlinks, binary files and files over 1 MiB.
If more than 50 matches exist, it returns 50 and marks the result as truncated.
Edited 6 files +147 -0
Das erzeugte Plugin im Arbeitsverzeichnis:
todo-scan/
├── package.json # "dsh": { "bundle": { "patch": "./cordis.patch.yml" } }
├── cordis.patch.yml # inserts the plugin into the profile
├── index.js # 127 lines: registers the todo_scan tool
├── icon.svg
└── locale/
├── en.json
└── zh.json
Die zwei wichtigen Dateien sind cordis.patch.yml und index.js. Die erste sagt Harness, dass das Plugin ins Profil eingefügt wird:
# todo-scan/cordis.patch.yml
- insert:
- id: todo-scan
name: '@local/todo-scan'
config: {}
Die zweite registriert das Tool, so wie im offiziellen Tutorial zum ersten Plugin: name, inject und apply exportieren und in apply ctx.tools.register aufrufen:
// todo-scan/index.js (abridged)
export const name = 'todo-scan'
export const inject = ['tools', 'workingDirectory']
export function apply(ctx) {
return ctx.effect(() =>
ctx.tools.register({
name: 'todo_scan',
description: 'Recursively scan text files for lines containing TODO or FIXME ...',
parameters: {
type: 'object',
properties: { path: { type: 'string', description: 'File or directory to scan ...' } },
additionalProperties: false,
},
output: { schema: { /* entries: string[], truncated: boolean */ }, render: (_a, v) => [/* text */] },
async execute(args, exec) {
const cwd = await ctx.workingDirectory.ensure(exec.agent, exec.signal)
return scan(args.path ? resolve(cwd, args.path) : cwd, exec.signal)
},
}),
)
}
Nach der Installation hat die package.json des Profils eine link:-Abhängigkeit und @local/todo-scan in bundles; das Plugin bleibt also nach einem Neustart erhalten.
Plugin prüfen
In einer neuen Standard-Sitzung baten wir darum, todo_scan aufzurufen: 7 Sekunden. Wir hatten eine Datei mit 60 TODO-Zeilen angelegt, und das Ergebnis stoppte genau bei 50:
many.txt:1: TODO item 0 many.txt:2: TODO item 1 ... many.txt:50: TODO item 49 (truncated at 50 entries)
Danach prüften wir das Überspringen von node_modules und .git: TODO-Zeilen auch in demo/node_modules und demo/.git, Plugin im Headless-Profil installiert, Aufruf über die Kommandozeile:
npx @deepseek-ai/dsh plugin --profile headless add link:/absolute/path/to/todo-scan
# dependencies:
# + @local/todo-scan <- .../todo-scan
# Done in 23ms using pnpm v12.15.0
npx @deepseek-ai/dsh headless --json "Call the todo_scan tool once with path demo and paste its raw output verbatim, nothing else."
{"type":"tool_call","tool":"todo_scan","input":{"path":"demo"}}
{"type":"tool_result","status":"completed","result":"src/app.py:2: # TODO: handle empty input\nsrc/app.py:4: # FIXME: off by one"}
{"type":"final","text":"src/app.py:2: # TODO: handle empty input\nsrc/app.py:4: # FIXME: off by one"}
Nur die zwei Zeilen aus src/app.py kamen zurück; die in node_modules und .git wurden übersprungen. Dasselbe Plugin mit drei Modellen:
| Modell | todo_scan aufgerufen | Ausgabe | Dauer |
|---|---|---|---|
| claude-sonnet-5-5 | Ja | Zwei Zeilen, korrekt | 5,5 s |
| gpt-6.1-sol | Ja | Zwei Zeilen, korrekt | 6,9 s |
| deepseek-flash | Ja | Zwei Zeilen, korrekt | 7,6 s |
Häufige Fehler
Falscher Key:
{ERR401}
Prüfen Sie, ob AICODEWITH_API_KEY den vollständigen Key ohne zusätzliche Leerzeichen enthält.
Umgebungsvariable nicht exportiert:
dsh: MISSING_CREDENTIAL: llm-pi-ai: no credential for provider route "aicodewith"; its profile
resolves AICODEWITH_API_KEY, which is not set — store AICODEWITH_API_KEY through the credentials
service (the web Models page writes it) or export it ...
Die in apiKeyEnv genannte Variable muss im Terminal exportiert sein, das dsh startet, oder der Key wird einmal auf der Models-Seite gespeichert.
Standardmodell fehlt in der Liste:
dsh: UNKNOWN_MODEL: pi-ai provider "aicodewith" has no configured model "claude-sonnet-9"
Das model in agent-default-model muss in der models-Liste dieses Anbieters stehen.
Modell-ID, die das Gateway nicht kennt:
{ERR400}
Nehmen Sie Modell-IDs aus der aicodewith-Modellliste oder klicken Sie auf der Models-Seite auf Fetch available models.
| Symptom | Ursache | Lösung |
|---|---|---|
| http://127.0.0.1:3080/ zeigt 401 | Start-Token fehlt | Den vollständigen Link aus dem Terminal öffnen |
| AUTH: 401 | Key falsch oder gelöscht | Gültigen Key verwenden |
| MISSING_CREDENTIAL | Variable nicht exportiert | Exportieren oder Key auf der Models-Seite speichern |
| UNKNOWN_MODEL | Standardmodell nicht in der models-Liste | Modell zur Liste hinzufügen |
| INVALID_REQUEST: 400 Modell existiert nicht | Gateway kennt die ID nicht | ID anhand der Modellliste korrigieren |
| Plugin installiert, Tool fehlt | Plugin nicht oder fehlerhaft geladen | Creator Mode installierte Bundles und Warnungen auflisten lassen |
Dasselbe in Claude Code / Codex / Cursor
Ein Harness-Plugin gibt dem Agenten ein neues Tool. In anderen Clients kommt dem am nächsten eine Skill (Schritte und Skripte in einem Ordner) oder ein MCP-Server:
| Client | Ort der Skills |
|---|---|
| Claude Code | ~/.claude/skills/<name>/SKILL.md |
| Codex | ~/.agents/skills/<name>/SKILL.md |
| Cursor | ~/.cursor/skills/ oder ~/.agents/skills/ |
Wie man sie schreibt und auslöst, steht in Agent Skills in Claude Code und Codex nutzen.
Diese Clients können ebenfalls aicodewith nutzen. Claude Code:
export ANTHROPIC_BASE_URL="https://api.aicodewith.ai"
export ANTHROPIC_AUTH_TOKEN="IHR_API_KEY"
claude
Codex (~/.codex/config.toml):
# ~/.codex/config.toml
model_provider = "aicodewith"
model = "gpt-6.1-sol"
[model_providers.aicodewith]
name = "aicodewith"
base_url = "https://api.aicodewith.ai/chatgpt/v1"
wire_api = "responses"
experimental_bearer_token = "IHR_API_KEY"
Mehr dazu: Claude Code an eine Drittanbieter-API anbinden.
FAQ
Ist Creator Mode ein neues Modell?
Nein. Es ist ein Modus, der das im Wähler gewählte Modell nutzt, ergänzt um Tools und Skills für Laufzeit-Inspektion, Plugin-Verwaltung und Plugin-Authoring. Wir nutzten claude-sonnet-5-5.
Brauche ich die API von DeepSeek?
Nein. Harness unterstützt eingebaute Drittanbieter und eigene OpenAI-kompatible Endpunkte. Mit aicodewith haben wir Claude-, GPT- und DeepSeek-Modelle genutzt, auch zum Schreiben eines Plugins im Creator Mode.
Sind von Creator Mode installierte Plugins sicher?
Laut dem offiziellen Plugin-Manager-README läuft der Code installierter Plugins im Host-Prozess von Harness, außerhalb der Workspace-Sandbox. Deshalb braucht jede plugin_manager-Aktion vollen Zugriff oder eine Einzelfreigabe; in unserem Test kam eine Bestätigungsabfrage. Testen Sie Plugins zuerst in einem Wegwerf-Profil oder -Verzeichnis und lesen Sie den Code, bevor Sie sie in Ihrer Hauptumgebung installieren.
Geht Creator Mode ohne Browser?
Wir haben Creator mode in der Web-UI gewählt. Den Headless-Modus nutzten wir, um Aufgaben auszuführen und das installierte Plugin aufzurufen; Plugins lassen sich auch per Kommandozeile mit dsh plugin --profile <name> add installieren.
Wie deinstalliere ich ein Plugin?
Deaktivieren oder entfernen Sie das Bundle im Creator Mode oder auf der Plugins-Seite, oder per Kommandozeile:
npx @deepseek-ai/dsh plugin --profile headless remove @local/todo-scan
# dependencies:
# - @local/todo-scan link:.../todo-scan
Nach dem Entfernen fehlte @local/todo-scan in unserem Test in der bundles-Liste des Profils, und auf die Bitte, todo_scan aufzurufen, antwortete das Modell, dass es kein solches Tool gibt.
Weiterlesen
- Was ist DeepSeek Super-agent? Architektur, offizielle Ergebnisse und Test des dsh-superagent-Prototyps
- Was sich in DeepSeek V4.1 Flash 1017 geändert hat und wie Sie es in Claude Code / Codex nutzen
- Claude Code an eine Drittanbieter-API anbinden: Base URL, API Key und Modelle
- Agent Skills nutzen: Installationsordner und Auslöser in Claude Code / Codex
Quellen: DeepSeek Harness auf GitHub · Leitfaden zur Modellkonfiguration · Tutorial zum ersten Plugin · CLI-Hilfe · Sicherheitshinweis · DeepSeek-Harness-Website · Beitrag von @DeepSeekHarness (geprüft am 2026-11-03)



