Qwen Code Erweiterungen
Qwen Code Erweiterungen bündeln Prompts, MCP-Server, Subagents, Skills und benutzerdefinierte Befehle in einem vertrauten und benutzerfreundlichen Format. Mit Erweiterungen können Sie die Fähigkeiten von Qwen Code erweitern und diese Fähigkeiten mit anderen teilen. Sie sind so konzipiert, dass sie einfach installiert und geteilt werden können.
Erweiterungen und Plugins aus der Gemini CLI Extensions Gallery und dem Claude Code Marketplace können direkt in Qwen Code installiert werden. Diese plattformübergreifende Kompatibilität gibt Ihnen Zugriff auf ein reichhaltiges Ökosystem an Erweiterungen und Plugins und erweitert die Fähigkeiten von Qwen Code erheblich, ohne dass die Autoren der Erweiterungen separate Versionen pflegen müssen.
Erweiterungsverwaltung
Wir bieten eine Reihe von Erweiterungsverwaltungswerkzeugen, sowohl über qwen extensions CLI-Befehle als auch über /extensions Slash-Befehle innerhalb der interaktiven CLI.
Laufzeit-Verwaltung von Erweiterungen (Slash-Befehle)
Sie können Erweiterungen zur Laufzeit innerhalb der interaktiven CLI mit /extensions Slash-Befehlen verwalten. Diese Befehle unterstützen Hot-Reloading, d. h. Änderungen werden sofort wirksam, ohne dass die Anwendung neu gestartet werden muss.
| Befehl | Beschreibung |
|---|---|
/extensions oder /extensions manage | Alle installierten Erweiterungen verwalten |
/extensions install <source> | Eine Erweiterung von einer Git-URL, einem lokalen Pfad oder Archiv, einer Archiv-URL, einem npm-Paket oder einem Marktplatz installieren |
/extensions explore [source] | Die Quellseite für Erweiterungen (Gemini oder ClaudeCode) im Browser öffnen |
Der interaktive Erweiterungsmanager
Durch Ausführen von /extensions (oder /extensions manage) wird ein interaktiver Manager mit drei Registerkarten geöffnet. Drücken Sie Tab oder die Pfeile ←/→, um zwischen ihnen zu wechseln.
- Entdecken — Durchsuchen Sie Plugins aus Ihren konfigurierten Marktplatzquellen. Geben Sie ein, um zu suchen, drücken Sie
Enter, um die Details eines Plugins anzuzeigen, und installieren Sie es (Sie werden aufgefordert, einen Installationsbereich auszuwählen). Drücken SieCtrl+R, um die Listings neu zu laden, undEsc, um zurückzugehen. - Installiert — Ihre installierten Erweiterungen, gruppiert nach Bereich (Benutzerebene, Projektebene und Favoriten). Verwenden Sie
↑/↓zum Navigieren,Leertastezum Aktivieren/Deaktivieren einer Erweiterung,fzum Favorisieren undEnter, um die Details zu öffnen. MCP-Server, die von einer Erweiterung gebündelt werden, werden unter ihrer übergeordneten Erweiterung mit Live-Verbindungsstatus angezeigt; Sie können jeden Server von dort aus einzeln aktivieren oder deaktivieren. - Quellen — Verwalten Sie die Marktplatzquellen, die die Registerkarte „Entdecken“ speisen. Verwenden Sie
↑/↓zum Navigieren,Enterzum Auswählen einer Quelle unddzum Entfernen einer Quelle. Dies sind dieselben Quellen, die auch von den unten beschriebenenqwen extensions sourcesCLI-Befehlen verwaltet werden.
Hier vorgenommene Änderungen werden sofort per Hot-Reload übernommen, ohne dass Qwen Code neu gestartet werden muss.
CLI-Erweiterungsverwaltung
Sie können Erweiterungen auch mit qwen extensions CLI-Befehlen verwalten. Beachten Sie, dass Änderungen, die über CLI-Befehle vorgenommen werden, in aktiven CLI-Sitzungen erst nach einem Neustart wirksam werden.
Installieren einer Erweiterung
Sie können eine Erweiterung mit qwen extensions install aus verschiedenen Quellen installieren:
Vom Claude Code Marketplace
Qwen Code unterstützt auch Plugins aus dem Claude Code Marketplace . Installieren Sie von einem Marktplatz und wählen Sie ein Plugin aus:
qwen extensions install <marketplace-name>
# or
qwen extensions install <marketplace-github-url>Wenn Sie ein bestimmtes Plugin installieren möchten, können Sie das Format mit dem Plugin-Namen verwenden:
qwen extensions install <marketplace-name>:<plugin-name>
# or
qwen extensions install <marketplace-github-url>:<plugin-name>Um zum Beispiel das Plugin prompts.chat aus dem Marktplatz f/awesome-chatgpt-prompts zu installieren:
qwen extensions install f/awesome-chatgpt-prompts:prompts.chat
# or
qwen extensions install https://github.com/f/awesome-chatgpt-prompts:prompts.chatClaude-Plugins werden während der Installation automatisch in das Qwen Code-Format konvertiert:
claude-plugin.jsonwird inqwen-extension.jsonkonvertiert- Agent-Konfigurationen werden in das Qwen-Subagent-Format konvertiert
- Skill-Konfigurationen werden in das Qwen-Skill-Format konvertiert
- Tool-Zuordnungen werden automatisch behandelt
Sie können verfügbare Erweiterungen aus verschiedenen Marktplätzen schnell mit dem Befehl /extensions explore durchsuchen:
# Open Gemini CLI Extensions marketplace
/extensions explore Gemini
# Open Claude Code marketplace
/extensions explore ClaudeCodeDieser Befehl öffnet den jeweiligen Marktplatz in Ihrem Standardbrowser, sodass Sie neue Erweiterungen entdecken können, um Ihr Qwen Code-Erlebnis zu verbessern.
Plattformübergreifende Kompatibilität: Dies ermöglicht es Ihnen, die reichhaltigen Erweiterungsökosysteme sowohl von Gemini CLI als auch von Claude Code zu nutzen und die verfügbare Funktionalität für Qwen Code-Benutzer erheblich zu erweitern.
Von Gemini CLI-Erweiterungen
Qwen Code unterstützt vollständig Erweiterungen aus der Gemini CLI Extensions Gallery . Installieren Sie sie einfach mit der Git-URL:
qwen extensions install <gemini-cli-extension-github-url>
# or
qwen extensions install <owner>/<repo>Gemini-Erweiterungen werden während der Installation automatisch in das Qwen Code-Format konvertiert:
gemini-extension.jsonwird inqwen-extension.jsonkonvertiert- TOML-Befehlsdateien werden automatisch in das Markdown-Format migriert
- MCP-Server, Kontextdateien und Einstellungen bleiben erhalten
Aus der npm-Registry
Qwen Code unterstützt die Installation von Erweiterungen aus npm-Registries mit scoped Package-Namen. Dies ist ideal für Teams mit privaten Registries, die bereits über Authentifizierung, Versionierung und Veröffentlichungsinfrastruktur verfügen.
# Install the latest version
qwen extensions install @scope/my-extension
# Install a specific version
qwen extensions install @scope/my-extension@1.2.0
# Install from a custom registry
qwen extensions install @scope/my-extension --registry https://your-registry.comEs werden nur scoped Packages (@scope/package-name) unterstützt, um Verwechslungen mit der owner/repo-Kurzform von GitHub zu vermeiden.
Registry-Auflösung erfolgt nach dieser Priorität:
--registryCLI-Flag (explizite Überschreibung)- Scoped Registry aus
.npmrc(z.B.@scope:registry=https://...) - Standard-Registry aus
.npmrc - Fallback:
https://registry.npmjs.org/
Authentifizierung wird automatisch über die Umgebungsvariable NPM_TOKEN oder registriespezifische _authToken-Einträge in Ihrer .npmrc-Datei gehandhabt.
Hinweis: npm-Erweiterungen müssen eine
qwen-extension.json-Datei im Paketstammverzeichnis enthalten, die dem gleichen Format wie jede andere Qwen Code-Erweiterung folgt. Siehe Erweiterungen veröffentlichen für Details zur Paketierung.
Aus einem Git-Repository
qwen extensions install https://github.com/github/github-mcp-serverDadurch wird die GitHub MCP Server-Erweiterung installiert.
Von einem lokalen Pfad
qwen extensions install /path/to/your/extensionLokale .zip- und .tar.gz-Archive werden ebenfalls unterstützt:
qwen extensions install /path/to/your/extension.zip
qwen extensions install /path/to/your/extension.tar.gzDas Archiv muss eine vollständige Erweiterung im Stammverzeichnis enthalten, oder ein einzelnes übergeordnetes Verzeichnis, das die Erweiterung enthält.
Beachten Sie, dass wir eine Kopie der installierten Erweiterung erstellen. Sie müssen daher qwen extensions update ausführen, um Änderungen sowohl von lokal definierten Erweiterungen als auch von solchen auf GitHub zu übernehmen.
Von einer Archiv-URL
qwen extensions install https://example.com/your/extension.zip
qwen extensions install https://example.com/your/extension.tar.gzArchiv-URLs können später aktualisiert werden, solange die URL weiterhin auf ein neueres Archiv für dieselbe Erweiterung verweist.
Installationsbereich auswählen
Standardmäßig ist eine installierte Erweiterung global aktiviert (Benutzerbereich). Verwenden Sie --scope project, um sie nur für den aktuellen Arbeitsbereich zu aktivieren:
qwen extensions install <source> --scope project--scope workspace wird als Alias von --scope project akzeptiert. Dies entspricht der Bereichsauswahl, die bei der Installation über die Registerkarte „Entdecken“ in /extensions manage angeboten wird.
Marktplatzquellen verwalten
Marktplatzquellen (Claude-Plugin-Marktplätze) versorgen die Registerkarte „Entdecken“ in /extensions manage. Sie können sie auch über die CLI verwalten:
# Add a marketplace (owner/repo, git URL, https URL to marketplace.json, or local path)
qwen extensions sources add <source>
# List configured marketplaces
qwen extensions sources list
# Re-fetch a marketplace's plugin listing
qwen extensions sources update <name>
# Remove a marketplace
qwen extensions sources remove <name>Deinstallieren einer Erweiterung
Um zu deinstallieren, führen Sie qwen extensions uninstall extension-name aus, also im Fall des Installationsbeispiels:
qwen extensions uninstall qwen-cli-securityDeaktivieren einer Erweiterung
Erweiterungen sind standardmäßig in allen Arbeitsbereichen aktiviert. Sie können eine Erweiterung vollständig oder nur für einen bestimmten Arbeitsbereich deaktivieren.
Zum Beispiel deaktiviert qwen extensions disable extension-name die Erweiterung auf Benutzerebene, sodass sie überall deaktiviert ist. qwen extensions disable extension-name --scope=workspace deaktiviert die Erweiterung nur im aktuellen Arbeitsbereich.
Aktivieren einer Erweiterung
Sie können Erweiterungen mit qwen extensions enable extension-name aktivieren. Sie können eine Erweiterung auch für einen bestimmten Arbeitsbereich aktivieren, indem Sie qwen extensions enable extension-name --scope=workspace innerhalb dieses Arbeitsbereichs ausführen.
Dies ist nützlich, wenn Sie eine Erweiterung auf oberster Ebene deaktiviert haben und sie nur an bestimmten Stellen aktivieren möchten.
Aktualisieren einer Erweiterung
Für Erweiterungen, die von einem lokalen Pfad oder Archiv, einer Archiv-URL, einem Git-Repository oder einer npm-Registry installiert wurden, können Sie explizit auf die neueste Version aktualisieren mit qwen extensions update extension-name. Bei npm-Erweiterungen, die ohne Versionsfestlegung installiert wurden (z.B. @scope/pkg), wird bei Updates der latest-Dist-Tag verwendet. Bei Erweiterungen, die mit einem bestimmten Dist-Tag installiert wurden (z.B. @scope/pkg@beta), folgen Updates diesem Tag. Erweiterungen, die auf eine exakte Version festgelegt sind (z.B. @scope/pkg@1.2.0), werden immer als aktuell betrachtet.
Sie können alle Erweiterungen aktualisieren mit:
qwen extensions update --allFunktionsweise
Beim Start sucht Qwen Code im Verzeichnis <home>/.qwen/extensions nach Erweiterungen.
Erweiterungen liegen als Verzeichnis vor, das eine qwen-extension.json-Datei enthält. Zum Beispiel:
<home>/.qwen/extensions/my-extension/qwen-extension.json
qwen-extension.json
Die Datei qwen-extension.json enthält die Konfiguration der Erweiterung. Die Datei hat die folgende Struktur:
{
"name": "my-extension",
"version": "1.0.0",
"mcpServers": {
"my-server": {
"command": "node my-server.js"
}
},
"channels": {
"my-platform": {
"entry": "dist/index.js",
"displayName": "My Platform Channel"
}
},
"contextFileName": "QWEN.md",
"commands": "commands",
"skills": "skills",
"agents": "agents",
"settings": [
{
"name": "API Key",
"description": "Your API key for the service",
"envVar": "MY_API_KEY",
"sensitive": true
}
]
}name: Der Name der Erweiterung. Dieser wird verwendet, um die Erweiterung eindeutig zu identifizieren und für die Konfliktlösung, wenn Erweiterungsbefehle denselben Namen wie Benutzer- oder Projektbefehle haben. Der Name sollte aus Kleinbuchstaben oder Zahlen bestehen und Bindestriche anstelle von Unterstrichen oder Leerzeichen verwenden. So werden Benutzer auf Ihre Erweiterung in der CLI verweisen. Beachten Sie, dass dieser Name mit dem Erweiterungsverzeichnisnamen übereinstimmen muss.version: Die Version der Erweiterung.mcpServers: Eine Map von MCP-Servern, die konfiguriert werden sollen. Der Schlüssel ist der Name des Servers, der Wert ist die Serverkonfiguration. Diese Server werden beim Start geladen, genau wie MCP-Server, die in einersettings.json-Datei konfiguriert sind. Wenn sowohl eine Erweiterung als auch einesettings.json-Datei einen MCP-Server mit demselben Namen konfigurieren, hat der in dersettings.json-Datei definierte Server Vorrang.- Beachten Sie, dass alle MCP-Server-Konfigurationsoptionen außer
trustunterstützt werden.
- Beachten Sie, dass alle MCP-Server-Konfigurationsoptionen außer
channels: Eine Map von benutzerdefinierten Channel-Adaptern. Der Schlüssel ist der Channel-Typ-Name, der Wert hat einenentry(Pfad zum kompilierten JS-Einstiegspunkt) und optionalendisplayName. Der Einstiegspunkt muss einplugin-Objekt exportieren, das demChannelPlugin-Interface entspricht. Siehe Channel-Plugins für eine vollständige Anleitung.contextFileName: Der Name der Datei, die den Kontext für die Erweiterung enthält. Diese wird verwendet, um den Kontext aus dem Erweiterungsverzeichnis zu laden. Wenn diese Eigenschaft nicht verwendet wird, aber eineQWEN.md-Datei im Erweiterungsverzeichnis vorhanden ist, wird diese Datei geladen.commands: Das Verzeichnis, das benutzerdefinierte Befehle enthält (Standard:commands). Befehle sind.md-Dateien, die Prompts definieren.skills: Das Verzeichnis, das benutzerdefinierte Skills enthält (Standard:skills). Skills werden automatisch erkannt und sind über den Befehl/skillsverfügbar.agents: Das Verzeichnis, das benutzerdefinierte Subagents enthält (Standard:agents). Subagents sind.yaml- oder.md-Dateien, die spezialisierte KI-Assistenten definieren.settings: Ein Array von Einstellungen, die die Erweiterung benötigt. Bei der Installation werden Benutzer aufgefordert, Werte für diese Einstellungen anzugeben. Die Werte werden sicher gespeichert und an MCP-Server als Umgebungsvariablen übergeben.- Jede Einstellung hat die folgenden Eigenschaften:
name: Anzeigename für die Einstellungdescription: Eine Beschreibung, wofür diese Einstellung verwendet wirdenvVar: Der Name der Umgebungsvariablen, die gesetzt wirdsensitive: Boolean, der angibt, ob der Wert ausgeblendet werden soll (z.B. API-Schlüssel, Passwörter)
- Jede Einstellung hat die folgenden Eigenschaften:
Erweiterungseinstellungen verwalten
Erweiterungen können über Einstellungen (wie API-Schlüssel oder Anmeldedaten) eine Konfiguration erfordern. Diese Einstellungen können mit dem CLI-Befehl qwen extensions settings verwaltet werden:
Einen Einstellungswert setzen:
qwen extensions settings set <extension-name> <setting-name> [--scope user|workspace]Alle Einstellungen und aktuellen Werte für eine Erweiterung auflisten:
qwen extensions settings list <extension-name>Einstellungen können auf zwei Ebenen konfiguriert werden:
- Benutzerebene (Standard): Einstellungen gelten für alle Projekte (
~/.qwen/.env) - Arbeitsbereichsebene: Einstellungen gelten nur für das aktuelle Projekt (
.qwen/.env)
Arbeitsbereichseinstellungen haben Vorrang vor Benutzereinstellungen. Vertrauliche Einstellungen werden sicher gespeichert und niemals im Klartext angezeigt.
Beim Start lädt Qwen Code alle Erweiterungen und führt ihre Konfigurationen zusammen. Bei Konflikten hat die Arbeitsbereichskonfiguration Vorrang.
Benutzerdefinierte Befehle
Erweiterungen können benutzerdefinierte Befehle bereitstellen, indem sie Markdown-Dateien in einem Unterverzeichnis commands/ innerhalb des Erweiterungsverzeichnisses ablegen. Diese Befehle folgen dem gleichen Format wie benutzerdefinierte Benutzer- und Projektbefehle und verwenden Standard-Namenskonventionen.
Hinweis: Das Befehlsformat wurde von TOML auf Markdown aktualisiert. TOML-Dateien sind veraltet, aber weiterhin unterstützt. Sie können vorhandene TOML-Befehle mit der automatischen Migrationsaufforderung migrieren, die beim Erkennen von TOML-Dateien angezeigt wird.
Beispiel
Eine Erweiterung mit dem Namen gcp mit der folgenden Struktur:
.qwen/extensions/gcp/
├── qwen-extension.json
└── commands/
├── deploy.md
└── gcs/
└── sync.mdWürde diese Befehle bereitstellen:
/deploy- Wird in der Hilfe als[gcp] Benutzerdefinierter Befehl aus deploy.mdangezeigt/gcs:sync- Wird in der Hilfe als[gcp] Benutzerdefinierter Befehl aus sync.mdangezeigt
Benutzerdefinierte Skills
Erweiterungen können benutzerdefinierte Skills bereitstellen, indem sie Skill-Dateien in einem Unterverzeichnis skills/ innerhalb des Erweiterungsverzeichnisses ablegen. Jeder Skill sollte eine SKILL.md-Datei mit YAML-Frontmatter enthalten, die den Namen und die Beschreibung des Skills definiert.
Beispiel
.qwen/extensions/my-extension/
├── qwen-extension.json
└── skills/
└── pdf-processor/
└── SKILL.mdDer Skill ist über den Befehl /skills verfügbar, wenn die Erweiterung aktiv ist.
Benutzerdefinierte Subagents
Erweiterungen können benutzerdefinierte Subagents bereitstellen, indem sie Agent-Konfigurationsdateien in einem Unterverzeichnis agents/ innerhalb des Erweiterungsverzeichnisses ablegen. Agents werden mit YAML- oder Markdown-Dateien definiert.
Beispiel
.qwen/extensions/my-extension/
├── qwen-extension.json
└── agents/
└── testing-expert.yamlErweiterungs-Subagents erscheinen im Subagent-Manager-Dialog unter dem Abschnitt „Erweiterungs-Agents“.
Konfliktlösung
Erweiterungsbefehle haben die niedrigste Priorität. Wenn ein Konflikt mit Benutzer- oder Projektbefehlen auftritt:
- Kein Konflikt: Der Erweiterungsbefehl verwendet seinen natürlichen Namen (z.B.
/deploy) - Mit Konflikt: Der Erweiterungsbefehl wird mit dem Erweiterungspräfix umbenannt (z.B.
/gcp.deploy)
Wenn zum Beispiel sowohl ein Benutzer als auch die Erweiterung gcp einen deploy-Befehl definieren:
/deploy- Führt den deploy-Befehl des Benutzers aus/gcp.deploy- Führt den deploy-Befehl der Erweiterung aus (gekennzeichnet mit dem Tag[gcp])
Variablen
Qwen Code-Erweiterungen erlauben die Substitution von Variablen in qwen-extension.json. Dies kann nützlich sein, wenn Sie z. B. das aktuelle Verzeichnis benötigen, um einen MCP-Server mit "cwd": "${extensionPath}${/}run.ts" auszuführen.
Unterstützte Variablen:
| Variable | Beschreibung |
|---|---|
${extensionPath} | Der vollständige Pfad der Erweiterung im Dateisystem des Benutzers, z.B. ‘/Users/username/.qwen/extensions/example-extension’. Symlinks werden nicht aufgelöst. |
${workspacePath} | Der vollständige Pfad des aktuellen Arbeitsbereichs. |
${/} oder ${pathSeparator} | Der Pfadtrenner (unterschiedlich je nach Betriebssystem). |