Skip to Content
BenutzerhandbuchFunktionenBefehle

Befehle

Dieses Dokument beschreibt alle von Qwen Code unterstützten Befehle, die dir helfen, Sitzungen effizient zu verwalten, die Benutzeroberfläche anzupassen und das Verhalten zu steuern.

Qwen Code-Befehle werden über bestimmte Präfixe ausgelöst und fallen in drei Kategorien:

Präfix-TypFunktionsbeschreibungTypischer Anwendungsfall
Slash-Befehle (/)Steuerung von Qwen Code auf Meta-EbeneSitzungsverwaltung, Einstellungen ändern, Hilfe erhalten
At-Befehle (@)Schnelles Einfügen lokaler Dateiinhalte in den KonversationsverlaufErmöglicht der KI die Analyse bestimmter Dateien oder von Code in Verzeichnissen
Ausrufezeichen-Befehle (!)Direkte Interaktion mit der System-ShellAusführen von Systembefehlen wie git status, ls usw.

1. Slash-Befehle (/)

Slash-Befehle werden verwendet, um Qwen Code-Sitzungen, die Benutzeroberfläche und das Grundverhalten zu verwalten.

1.1 Sitzungs- und Projektverwaltung

Diese Befehle helfen dir, den Arbeitsfortschritt zu speichern, wiederherzustellen und zusammenzufassen.

BefehlBeschreibungNutzungsbeispiele
/initAktuelles Verzeichnis analysieren und initiale Kontextdatei erstellen/init
/summaryProjektzusammenfassung basierend auf dem Konversationsverlauf generieren/summary oder /summary docs/my-summary.md
/compressChat-Verlauf durch Zusammenfassung ersetzen, um Tokens zu sparen/compress oder /summarize
/compress-fastSchnelle Komprimierung ohne KI – entfernt alte Tool-Ausgaben und Denkprozesse/compress-fast
/resumeEine vorherige Konversationssitzung fortsetzen/resume oder /continue
/recapJetzt eine einzeilige Sitzungsübersicht generieren/recap
/restoreProjektdateien auf den Checkpoint vor der Ausführung eines Tool-Aufrufs zurücksetzen/restore (Liste) oder /restore <ID>
/deleteEine vorherige Sitzung löschen/delete
/branchDie aktuelle Konversation in eine neue Sitzung abspalten/branch
/forkEinen Hintergrund-Agenten erzeugen, der die gesamte Konversation erbt/fork <directive>
/rewindKonversation auf einen vorherigen Schritt zurückspulen/rewind oder /rollback
/exportSitzungsverlauf in eine Datei exportieren/export html, /export md, /export json, /export jsonl
/renameDie aktuelle Sitzung umbenennen oder taggen/rename My Feature oder /tag
Note

/summarize ist ein Alias für /compress (es komprimiert den Chat-Verlauf – eine destruktive Operation). Um stattdessen eine nicht-destruktive Projektzusammenfassung zu generieren, verwende /summary.

Note

/summary akzeptiert ein optionales [path]-Argument, um die Zusammenfassung an einem benutzerdefinierten Speicherort innerhalb des Projekt-Roots zu speichern. Ohne Argument wird sie unter .qwen/PROJECT_SUMMARY.md gespeichert. Zusammenfassungen mit benutzerdefiniertem Pfad werden vom Welcome-Back-Flow (ui.enableWelcomeBack) nicht erkannt, der nur den Standardpfad .qwen/PROJECT_SUMMARY.md liest.

1.2 Benutzeroberflächen- und Workspace-Steuerung

Befehle zum Anpassen der Benutzeroberfläche und der Arbeitsumgebung.

BefehlBeschreibungNutzungsbeispiele
/clearKonversationsverlauf löschen und Kontext freigeben/clear, /reset, /new
/contextAufschlüsselung der Kontextfenster-Nutzung anzeigen/context
detailAufschlüsselung der Kontextnutzung pro Element anzeigen/context detail
/historyEinstellungen für die Verlaufsanzeige und Sichtbarkeit steuern/history collapse-on-resume, /history expand-on-resume, /history expand-now
/diffÖffnet einen interaktiven Diff-Viewer, der uncommitted Änderungen und Diffs pro Schritt anzeigt. Verwende ←/→, um zwischen dem aktuellen Git-Diff und einzelnen Konversationsschritten zu wechseln, ↑/↓, um Dateien zu durchsuchen/diff
/logÖffnet einen Commit-Verlauf-Viewer für den Workspace (nur Web Shell)/log
/themeVisuelles Theme von Qwen Code ändern/theme
/vimVim-Bearbeitungsmodus im Eingabebereich ein-/ausschalten/vim
/voiceSpracheingabe per Diktat umschalten/voice, /voice hold, /voice tap, /voice off, /voice status
/directoryWorkspace mit Unterstützung für mehrere Verzeichnisse verwalten/dir add ./src,./tests, /dir show
/cdDiese Sitzung in ein neues Arbeitsverzeichnis verschieben/cd ../other-project
/editorDialog zur Auswahl eines unterstützten Editors öffnen/editor
/statuslineInteraktiven Preset-Dialog für die Statusleiste öffnen/statusline
/statusline <text>Eine Statusleiste im Befehlsmodus über einen Agenten generieren/statusline show model and git branch
/terminal-setupTerminal-Tastenkürzel für mehrzeilige Eingaben konfigurieren/terminal-setup

1.3 Spracheinstellungen

Befehle speziell zur Steuerung der Sprachen für Benutzeroberfläche und Ausgabe.

BefehlBeschreibungNutzungsbeispiele
/languageSpracheinstellungen anzeigen oder ändern/language
ui [language]Sprache der Benutzeroberfläche festlegen/language ui zh-CN
output [language]Ausgabesprache des LLM festlegen/language output Chinese
  • Verfügbare integrierte UI-Sprachen: zh-CN (Vereinfachtes Chinesisch), en-US (Englisch), ru-RU (Russisch), de-DE (Deutsch), ja-JP (Japanisch), pt-BR (Portugiesisch - Brasilien), fr-FR (Französisch), ca-ES (Katalanisch)
  • Beispiele für Ausgabesprachen: Chinese, English, Japanese usw.

1.4 Tool- und Modellverwaltung

Befehle zur Verwaltung von KI-Tools und -Modellen.

BefehlBeschreibungNutzungsbeispiele
/mcpKonfigurierte MCP-Server und -Tools auflisten/mcp, /mcp desc, /mcp nodesc, /mcp schema
/import-configMCP-Server aus Claude-Konfigurationen importieren/import-config all, /import-config claude-code, /import-config claude-desktop --scope user|project
/toolsAktuell verfügbare Tool-Liste anzeigen/tools, /tools desc
/skillsDas Skills-Panel öffnen, um Skills zu durchsuchen, zu suchen, umzuschalten und zu starten/skills, /<skill-name>
/learnEinen wiederverwendbaren Projekt-Skill aus einer Datei, einem Verzeichnis, einer URL, einem Video oder Text erstellen/learn https://docs.example.com/api, /learn ./tutorial.mp4 focus on deployment
/curatorInaktive Projekt-Auto-Skills inspizieren, pinnen, archivieren oder wiederherstellen/curator, /curator run --dry-run, /curator pin <directory>, /curator restore <directory>
/planIn den Plan-Modus wechseln oder den Plan-Modus beenden/plan, /plan <task>, /plan exit
/approval-modeDen Genehmigungsmodus ändern (nur aktuelle Sitzung)/approval-mode, /approval-mode auto-edit
planNur Analyse, keine Ausführung (sichere Überprüfung)/approval-mode plan
defaultGenehmigung für Änderungen erforderlich (tägliche Nutzung)/approval-mode default
auto-editÄnderungen automatisch genehmigen (vertrauenswürdige Umgebung)/approval-mode auto-edit
autoVom Classifier bewertete Genehmigung (autonom)/approval-mode auto
yoloAlles automatisch genehmigen (schnelles Prototyping)/approval-mode yolo
/modelIn der aktuellen Sitzung verwendetes Modell wechseln/model, /model <model-id> (sofortiger Wechsel)
/model --fastEin leichteres Modell für Prompt-Vorschläge festlegen/model --fast qwen3-coder-flash
/model --voiceDas für die Sprachtranskription verwendete Modell festlegen/model --voice <model-id>
/model --visionDas Vision-Bridge-Modell festlegen, das verwendet wird, um Bilder für ein reines Text-Hauptmodell zu transkribieren/model --vision <model-id>
/model --compactionDas für die Chat-Komprimierung verwendete Modell festlegen/model --compaction <model-id>, /model --compaction clear
/model --imageEin Modell mit Bildgenerierungsfähigkeit für das integrierte Bildgenerierungs-Tool festlegen/model --image <model-id>
/effortReasoning-Aufwand für denkfähige Modelle festlegen/effort (öffnet Picker), /effort high (low/medium/high/xhigh/max; wird je nach Provider gemappt und begrenzt)
/extensionsExtensions verwalten/extensions list, /extensions manage
listInstallierte Extensions auflisten/extensions list
manageInstallierte Extensions verwalten (interaktiv)/extensions manage
exploreExtensions-Seite im Browser öffnen/extensions explore <Gemini|ClaudeCode>
installEine Extension aus einem Git-Repo oder Pfad installieren/extensions install <repo-or-path>
/memoryDen Memory-Manager-Dialog öffnen/memory
/rememberEinen dauerhaften Memory-Eintrag speichern/remember Prefer terse responses
/forgetPassende Einträge aus dem Auto-Memory entfernen/forget <query>
/dreamAuto-Memory-Konsolidierung manuell ausführen/dream
/hooksQwen Code-Hooks verwalten/hooks, /hooks list
/reload-pluginsExtension-Änderungen (Befehle, Skills, Agenten, Hooks, MCP/LSP-Server) von der Festplatte neu laden/reload-plugins
/permissionsBerechtigungsregeln verwalten/permissions
/agentsSubagenten verwalten/agents manage, /agents create
/arenaArena-Sitzungen verwalten/arena start, /arena stop, /arena status, /arena select (Alias choose)
/goalEin Ziel festlegen – weiterarbeiten, bis die Bedingung erfüllt ist/goal <condition>, /goal clear
/tasksHintergrundtasks auflisten/tasks
/workflowsWorkflow-Ausführungen inspizieren; einen Hintergrundlauf kooperativ pausieren/fortsetzen/workflows, /workflows <runId>, /workflows p <runId>
/lspLSP-Server-Status anzeigen/lsp
/trustEinstellungen für die Ordner-Vertrauenswürdigkeit verwalten/trust
Warning

Installiere Erweiterungen (/extensions install) nur aus Quellen, denen du vertraust. Erweiterungen können MCP-Server, Skills und Commands bündeln, die mit denselben Berechtigungen wie Qwen Code selbst ausgeführt werden – sie können auf deine Dateien, API-Keys und Konversationsdaten zugreifen. /extensions install fordert keine Bestätigung an.

Warning

Die Genehmigungsmodi auto-edit, auto und yolo umgehen die Genehmigungsabfragen für Tool-Ausführungen. Im yolo-Modus werden alle Aktionen – einschließlich Shell-Befehle, Datei-Schreibvorgänge und Netzwerkanfragen – ohne Bestätigung ausgeführt. Verwende diese Modi nur in vertrauenswürdigen, isolierten (sandboxed) oder wegwerfbaren Umgebungen.

Note

/workflows, /lsp und /trust werden nur registriert, wenn die jeweilige Funktion aktiviert ist – über die user/system-scoped Einstellung tools.workflowsEnabled oder die Umgebungsvariable QWEN_CODE_ENABLE_WORKFLOWS=1, das CLI-Flag --experimental-lsp bzw. die Einstellung security.folderTrust.enabled. Workspace-Werte für tools.workflowsEnabled werden ignoriert. Wenn sie deaktiviert sind, werden sie nicht angezeigt und melden einen unbekannten Befehl. Ebenso werden /dream und /forget nur registriert, wenn verwaltetes Auto-Memory verfügbar ist; andernfalls werden sie nicht angezeigt.

1.5 Integrierte Skills

Diese Befehle rufen gebündelte Skills auf, die spezialisierte Workflows bereitstellen.

BefehlBeschreibungAnwendungsbeispiele
/reviewMulti-Agent-Code-Review (12 parallele Agenten bei hohem Aufwand)/review, /review 123, /review 123 --comment, /review --effort low
/coordinateRead-only-Worker und einen optionalen Worktree-Writer koordinieren/coordinate investigate and fix the authentication regression
/loopEinen Prompt nach einem wiederkehrenden Zeitplan ausführen/loop 5m check the build
/simplifyKürzliche Änderungen prüfen und sichere Bereinigungs-Edits direkt anwenden/simplify, /simplify focus on duplication
/qc-helperBeantwortet Fragen zur Nutzung und Konfiguration von Qwen Code/qc-helper how do I configure MCP?

Siehe Code Review für die vollständige /review-Dokumentation.

1.6 Zwischenfrage (/btw)

Der Befehl /btw ermöglicht es dir, schnelle Zwischenfragen zu stellen, ohne den Hauptkonversationsfluss zu unterbrechen oder zu beeinträchtigen.

BefehlBeschreibung
/btw <deine frage>Eine schnelle Zwischenfrage stellen
?btw <deine frage>Alternative Syntax für Zwischenfragen

Funktionsweise:

  • Die Zwischenfrage wird als separater API-Call mit aktuellem Konversationskontext (bis zu den letzten 20 Nachrichten) gesendet
  • Die Antwort wird über dem Composer angezeigt – du kannst während des Wartens weiterschreiben
  • Die Hauptkonversation wird nicht blockiert – sie läuft unabhängig weiter
  • Die Antwort auf die Zwischenfrage wird nicht Teil des Hauptkonversationsverlaufs
  • Antworten werden mit voller Markdown-Unterstützung gerendert (Codeblöcke, Listen, Tabellen usw.)

Tastenkürzel (Interaktiver Modus):

TastenkürzelAktion
EscapeAbbrechen (während des Ladens) oder Ausblenden (nach Abschluss)
Space oder EnterAntwort ausblenden (wenn die Eingabe leer ist)
Ctrl+C oder Ctrl+DEine laufende Zwischenfrage abbrechen

Beispiel:

(While the main conversation is about refactoring code) > /btw What's the difference between let and var in JavaScript? ╭──────────────────────────────────────────╮ │ /btw What's the difference between let │ │ and var in JavaScript? │ │ │ │ + Answering... │ │ Press Escape, Ctrl+C, or Ctrl+D to cancel│ ╰──────────────────────────────────────────╯ > (Composer remains active — keep typing) (After the answer arrives) ╭──────────────────────────────────────────╮ │ /btw What's the difference between let │ │ and var in JavaScript? │ │ │ │ `let` is block-scoped, while `var` is │ │ function-scoped. `let` was introduced │ │ in ES6 and doesn't hoist the same way. │ │ │ │ Press Space, Enter, or Escape to dismiss │ ╰──────────────────────────────────────────╯ > (Composer still active)

Unterstützte Ausführungsmodi:

ModusVerhalten
InteractiveWird über dem Composer mit Markdown-Rendering angezeigt
Non-interactiveGibt Textergebnis zurück: btw> question\nanswer
ACP (Agent Protocol)Gibt stream_messages Async-Generator zurück
Tip

Verwende /btw, wenn du eine schnelle Antwort benötigst, ohne deine Hauptaufgabe aus dem Blick zu verlieren. Es ist besonders nützlich, um Konzepte zu klären, Fakten zu überprüfen oder schnelle Erklärungen zu erhalten, während du dich auf deinen primären Workflow konzentrierst.

1.7 Second Opinion (/advisor)

Der Befehl /advisor führt eine unabhängige, schreibgeschützte Überprüfung der bisherigen Konversation durch und gibt eine strukturierte Second Opinion zurück – ohne die Aufgabe auszuführen oder die Hauptkonversation zu unterbrechen.

BefehlBeschreibung
/advisorÜberprüft die obige Konversation
/advisor <focus>Fokussiert die Überprüfung auf ein bestimmtes Anliegen

Funktionsweise:

  • Die Überprüfung wird als separater, einstufiger API-Aufruf mit aktuellem Konversationskontext gesendet (bis zu den letzten 40 Nachrichten)
  • Das Reviewer-Modell kann keine Tools ausführen – Tools werden auf Request-Ebene entfernt (derselbe Mechanismus wie bei /btw), sodass die Überprüfung niemals Code schreibt oder Befehle ausführt; jeder Anspruch muss im sichtbaren Transkript begründet sein
  • Die Hauptkonversation wird nicht unterbrochen; die Überprüfung wird nur dir angezeigt
  • Die Überprüfung wird als gerahmter Markdown-Block mit vier festen Abschnitten dargestellt – Verdict, Risks, Missing evidence und Recommendation – unter einem /advisor · <model>-Header, der das aufgelöste Reviewer-Modell nennt
  • Im Gegensatz zu /btw, das Fire-and-Forget ist und die Sitzung benutzbar lässt, blockiert /advisor die Eingabe, bis die Überprüfung zurückkehrt; über ein volles Kontextfenster mit einem starken Reviewer kann dies zehn Sekunden dauern
  • Standardmäßig wird das Hauptmodell verwendet; setze advisorModel, um die Überprüfung an ein anderes (typischerweise stärkeres) Modell weiterzuleiten – das aktuelle Transkript wird an dieses Modell gesendet, auch wenn es einen anderen Provider verwendet

Beispiel:

> /advisor is my fix for the null check actually correct? Consulting advisor... ╭──────────────────────────────────────────────────────╮ │ /advisor · qwen3-max │ │ │ │ Verdict │ │ The approach is sound, but the edge case at line 42 │ │ is unverified. │ │ │ │ Risks │ │ - The fix assumes the config is always loaded; a │ │ startup race could leave it null. │ │ │ │ Missing evidence │ │ - No test exercises the null-config path in the │ │ visible transcript. │ │ │ │ Recommendation │ │ Add a focused unit test for the null-config branch │ │ before merging. │ ╰──────────────────────────────────────────────────────╯

Die Überprüfung wird in einem gerahmten Block gerendert, dessen Header das aufgelöste Reviewer-Modell nennt. Ein unbekanntes advisorModel wird nicht im Voraus validiert – wenn der Provider es ablehnt, meldet /advisor den Fehler, also überprüfe den Modellnamen; nur nicht auflösbare Alias-Selektoren (z. B. fast ohne konfiguriertes Fast-Modell) fallen auf das Hauptmodell zurück. Advisor-Anfragen verwenden keine konfigurierten Modell-Fallbacks.

Unterstützte Ausführungsmodi:

ModusVerhalten
InteractiveRendert die vierabschnittige Überprüfung in der Konversation
ACP (Agent Protocol)Gibt die Überprüfung als Nachrichtenergebnis zurück
Tip

Verwende /advisor für eine Second Opinion, bevor du dich auf eine Richtung festlegst – es ist besonders nützlich, um fehlerhafte Annahmen, ungeprüfte Behauptungen oder riskante nächste Schritte zu erkennen. Konfiguriere advisorModel, um die Überprüfung von einem anderen Modell als dem der Hauptkonversation zu erhalten.

Note

advisorModel wird nur in den Einstellungen gesetzt; im Gegensatz zu fastModel und visionModel hat es noch kein /model-Flag-Gegenstück.

1.8 Session Recap (/recap)

Der Befehl /recap erstellt eine kurze “Wo du stehengeblieben bist”-Zusammenfassung der aktuellen Session, damit du eine alte Konversation fortsetzen kannst, ohne seitenweise durch den Verlauf scrollen zu müssen.

BefehlBeschreibung
/recapGeneriert und zeigt eine einzeilige Session-Zusammenfassung

Funktionsweise:

  • Verwendet das konfigurierte Fast Model (Einstellung fastModel), falls verfügbar, und fällt andernfalls auf das Haupt-Sessionsmodell zurück. Ein kleines, günstiges Modell reicht für ein Recap völlig aus.
  • Die aktuelle Konversation (bis zu 30 Nachrichten, nur Text – Tool-Calls und Tool-Antworten werden herausgefiltert) wird mit einem strikten System-Prompt an das Modell gesendet.
  • Das Recap wird in gedimmter Farbe mit einem -Präfix gerendert, damit es sich von echten Assistant-Antworten abhebt.
  • Lehnt mit einem Inline-Fehler ab, wenn ein Model-Turn gerade läuft oder ein anderer Befehl verarbeitet wird. Wenn keine nutzbare Konversation vorhanden ist oder die zugrunde liegende Generierung fehlschlägt, zeigt /recap eine kurze Info-Nachricht anstelle eines Recaps – der manuelle Befehl antwortet immer mit irgendetwas.

Auto-Trigger bei Rückkehr aus Abwesenheit:

Wenn das Terminal für mehr als 5 Minuten den Fokus verliert und wieder fokussiert wird, wird automatisch ein Recap generiert und angezeigt (nur, wenn gerade keine Modellantwort läuft; andernfalls wartet es, bis der aktuelle Turn abgeschlossen ist, und wird dann ausgelöst). Im Gegensatz zum manuellen Befehl ist der Auto-Trigger bei Fehlern völlig still: Wenn die Generierung fehlschlägt oder es nichts zusammenzufassen gibt, wird keine Nachricht zum Verlauf hinzugefügt. Gesteuert wird dies durch die Einstellung general.showSessionRecap (Standard: false); der manuelle Befehl /recap funktioniert immer, unabhängig von dieser Einstellung.

Beispiel:

> /recap ❯ Refactoring loopDetectionService.ts to address long-session OOM caused by unbounded streamContentHistory and contentStats. The next step is to implement option B (LRU sliding window with FNV-1a) pending confirmation.
Tip

Konfiguriere ein Fast Model über /model --fast <model> (z. B. qwen3-coder-flash), um /recap schnell und kostengünstig zu machen. Setze general.showSessionRecap auf true, um den Auto-Trigger zu aktivieren; der manuelle Befehl /recap funktioniert immer, unabhängig von dieser Einstellung.

1.9 Diff Viewer (/diff)

Der Befehl /diff öffnet einen interaktiven Diff-Viewer, der uncommitted Änderungen und Diffs pro Turn anzeigt. Verwende ←/→, um zwischen dem aktuellen Git-Diff und einzelnen Konversations-Turns zu wechseln, ↑/↓, um durch Dateien zu navigieren, und Enter, um Inline-Diffs anzuzeigen.

Funktionsweise:

Im interaktiven Modus öffnet /diff einen Dialog mit einem Source Picker am oberen Rand:

  • Current – Working Tree vs. HEAD (git diff HEAD). Zeigt alle uncommitted Änderungen an, einschließlich staged, unstaged und untracked Dateien.
  • T1, T2, T3, … – Diffs pro Turn, ein Tab pro Model-Turn, der Dateien geändert hat. Die neuesten Turns werden zuerst angezeigt. Jeder Tab zeigt eine Vorschau des ursprünglichen Prompts als Kontext.

Die Dateiliste zeigt dateispezifische Statistiken (hinzugefügte/entfernte Zeilen) mit Tags für spezielle Zustände (new, deleted, untracked, binary, truncated, oversized). Drücke Enter auf einer Datei, um ihren Inline-Diff mit syntaxhervorgehobenen Hunks anzuzeigen.

Diffs pro Turn erfordern, dass File Checkpointing aktiviert ist (im interaktiven Modus standardmäßig eingeschaltet). Wenn File Checkpointing deaktiviert ist, ist nur die Quelle “Current” verfügbar.

Tastenkürzel:

TasteAktion
/ Zwischen Quellen wechseln (Current / T1 / T2…)
/ Durch Dateiliste navigieren
j / kDurch Dateiliste navigieren (Vim-Style)
EnterInline-Diff für ausgewählte Datei anzeigen
/ EscVon der Inline-Diff-Ansicht zur Dateiliste zurückkehren
EscDialog schließen

Beispiel:

┌ /diff · Turn 3 "refactor the auth middleware" ──── 3 files +45 -12 ┐ │ │ │ ◀ Current · T3 · T2 · T1 ▶ │ │ │ │ › src/utils/parser.ts +30 -8 │ │ src/utils/parser.test.ts +12 -2 │ │ README.md +3 -2 │ │ │ │ ←/→ source · ↑/↓ file · Enter view · Esc close │ └─────────────────────────────────────────────────────────────────────┘

Nicht-interaktiver Modus:

In Headless- (--prompt) oder nicht-interaktiven Kontexten gibt /diff eine Plain-Text-Zusammenfassung des Working Tree vs. HEAD aus. Die Navigation pro Turn ist nicht verfügbar.

3 files changed, +45 / -12 +30 -8 src/utils/parser.ts +12 -2 src/utils/parser.test.ts +3 -2 README.md

Web Shell: In der Web-Shell-UI (qwen serve) öffnet /diff einen grafischen Diff-Dialog. Eine Tab-Leiste oben ermöglicht das Umschalten zwischen der Changes-Ansicht und der History-Ansicht (/log).

History Viewer (/log) — nur Web Shell

Der Befehl /log öffnet einen Commit-Verlauf-Browser für den aktuellen Workspace. Er ist nur in der Web-Shell-UI verfügbar; die CLI/TUI hat diesen Befehl nicht.

Funktionsweise:

/log öffnet einen Dialog, der Commits in umgekehrter chronologischer Reihenfolge auflistet (neueste zuerst). Jede Zeile zeigt:

  • Kurze SHA (Monospace, mit Kopier-Button für die volle SHA)
  • Commit-Subject (einzeilig)
  • Autorname und relative Zeit (z. B. “2h ago”)
  • Branch/Tag-Ref-Labels, falls vorhanden
  • Ein Merge-Icon (⎇) für Merge-Commits

Klicke auf eine Commit-Zeile, um ihre Details on demand zu erweitern:

  • Vollständiger Commit-Message-Body
  • Dateiänderungsstatistiken (geänderte Dateien, hinzugefügte/entfernte Zeilen, Aufschlüsselung pro Datei)

Verwende Load more unten, um die nächste Seite mit Commits abzurufen (50 pro Seite).

Beispiel:

┌─ History ──────────────────────────── 50 commits ─ ✕ ┐ │ │ │ a1b2c3d feat(cli): add --json flag 2h ago │ │ wenshao │ │ │ │ e4f5g6h fix(core): handle null config 5h ago │ │ dev · main v1.2.0 │ │ │ │ ▼ 789abcd refactor: simplify parser 1d ago │ │ ┌─────────────────────────────────────────────┐ │ │ │ Broke the monolithic parse() into smaller │ │ │ │ functions for readability. │ │ │ │ │ │ │ │ 3 files · +45 −12 │ │ │ │ +30 −8 src/parser.ts │ │ │ │ +10 −2 src/utils.ts │ │ │ │ +5 −2 test/parser.test.ts │ │ │ └─────────────────────────────────────────────┘ │ │ │ │ [ Load more ] │ └───────────────────────────────────────────────────────┘
Note

/log erfordert ein Git-Repository als Workspace. Wenn der Workspace kein Git-Repository ist oder keine Commits hat, zeigt der Dialog eine Platzhalter-Nachricht an.

1.10 Informationen, Einstellungen und Hilfe

Befehle zum Abrufen von Informationen und Vornehmen von Systemeinstellungen.

BefehlBeschreibungAnwendungsbeispiele
/helpZeigt Hilfeinformationen für verfügbare Befehle an/help oder /?
/statusZeigt Versionsinformationen an/status oder /about
/status pathsZeigt die Datei- und Log-Pfade der aktuellen Session an/status paths
/statsÖffnet das interaktive Nutzungsstatistik-Dashboard (Tabs Session, Activity und Efficiency)/stats oder /usage
/stats modelZeigt die Token-Aufschlüsselung pro Modell und die geschätzten Kosten an/stats model
/stats toolsZeigt die Aufrufzahlen pro Tool an/stats tools
/stats skillsZeigt die Aufrufzahlen pro Skill für die aktuelle Live-Session an (nur live; schließt sessionübergreifende tägliche/monatliche Aktivität aus)/stats skills
/stats dailyZeigt die tägliche Token-Nutzungsstatistik an/stats daily (Alias day), /stats day [YYYY-MM-DD]
/stats monthlyZeigt die monatliche Token-Nutzungsstatistik an/stats monthly (Alias month), /stats month [YYYY-MM]
/stats exportExportiert Nutzungsstatistiken nach CSV oder JSON/stats export <daily|monthly> [date|month] [--format csv|json] [--output path]
/settingsÖffnet den Einstellungs-Editor/settings
/configRuft jede Einstellung über den Dot-Path-Key ab oder setzt sie (schreibt in die Benutzereinstellungen)/config (alle auflisten), /config <key>, /config <key>=<value>
/authÄndert die Authentifizierungsmethode/auth, /connect, /login
/doctorFührt Installations- und Umgebungsdiagnosen aus/doctor, /doctor memory
memoryZeigt die aktuelle Prozess-Speicherdiagnose an/doctor memory [--json] [--sample] [--snapshot]
cpu-profileErstellt ein CPU-Profil für die Chrome DevTools-Analyse/doctor cpu-profile [--duration <seconds>]
rollbackSetzt das Standalone-CLI-Binary auf die vorherige Version zurück (nur bei Standalone-Installationen; für den Konversationsverlauf verwende /rewind)/doctor rollback
/docsÖffnet die vollständige Qwen Code-Dokumentation im Browser/docs
/ideVerwaltet die IDE-Integration/ide status, /ide install, /ide enable, /ide disable
/insightGeneriert Programmier-Insights aus dem Chat-Verlauf/insight
/setup-githubRichtet GitHub Actions ein/setup-github
/bugReicht ein Issue zu Qwen Code ein/bug Button click unresponsive
/copyKopiert in die Zwischenablage: Antwort (N-letzte), Code (nach Sprache), LaTeX oder Mermaid/copy, /copy 2, /copy python, /copy latex, /copy mermaid
/quitBeendet Qwen Code sofort/quit oder /exit
Warning

/doctor memory --snapshot schreibt einen V8-Heap-Snapshot, der Prompts, Dateiinhalte, API-Keys und Tool-Ergebnisse der aktuellen Sitzung enthalten kann. Überprüfe die Datei, bevor du sie teilst.

Note

/config liest und schreibt einzelne Einstellungen über Dot-Path-Keys (z. B. general.vimMode) und ergänzt den interaktiven /settings-Editor. Die Ausführung von /config ohne Argument (oder mit --help) listet jeden setzbaren Key mit seinem Typ und aktuellen Wert auf. /config <key> gibt den aktuellen Wert aus – außer bei booleschen Keys, wo der Wert umgeschaltet wird. /config <key>=<value> setzt den Wert. Änderungen werden in die Benutzereinstellungen (~/.qwen/settings.json) geschrieben. Nur boolean-, string-, number- und enum-Einstellungen können auf diese Weise geändert werden – array- und object-Einstellungen müssen direkt in der settings.json bearbeitet werden. Sensible Werte (API-Keys, Tokens, Base-URLs) werden in der Ausgabe maskiert, und das Setzen von tools.approvalMode auf yolo ist blockiert.

1.11 Häufige Shortcuts

ShortcutFunktionHinweis
Ctrl/cmd+LBildschirm löschenLöscht nur den sichtbaren Bildschirm (setzt die Sitzung nicht zurück wie /clear)
Ctrl/cmd+TTool-Beschreibung umschaltenMCP-Tool-Verwaltung
Ctrl/cmd+C×2Beenden bestätigenSicherer Beenden-Mechanismus
Ctrl/cmd+ZEingabe rückgängig machenTextbearbeitung
Ctrl/cmd+Shift+ZEingabe wiederherstellenTextbearbeitung

1.12 Authentifizierungs-Befehle

Verwende /auth innerhalb einer Qwen Code-Sitzung, um die Authentifizierung zu konfigurieren. Verwende /doctor, um den aktuellen Authentifizierungs- und Umgebungsstatus zu überprüfen.

BefehlBeschreibung
/authAuthentifizierung interaktiv konfigurieren (Aliase: /connect, /login)
/doctorAuthentifizierungs- und Umgebungsprüfungen anzeigen
Note

Der eigenständige qwen auth CLI-Befehl wurde entfernt. Legacy-Aufrufe wie qwen auth status geben einen Entfernungshinweis mit Migrationsanleitung aus. Siehe die Seite Authentication für vollständige Details.

2. @-Befehle (Dateien einbinden)

@-Befehle werden verwendet, um lokale Datei- oder Verzeichnisinhalte schnell zur Konversation hinzuzufügen.

BefehlsformatBeschreibungBeispiele
@<file path>Inhalt der angegebenen Datei einfügen@src/main.py Please explain this code
@<directory path>Rekursives Lesen aller Textdateien im Verzeichnis@docs/ Summarize content of this document
Standalone @Wird verwendet, wenn das @-Symbol selbst thematisiert wird@ What is this symbol used for in programming?

Hinweis: Leerzeichen in Pfaden müssen mit einem Backslash maskiert werden (z. B. @My\ Documents/file.txt)

3. Ausrufezeichen-Befehle (!) - Shell-Befehlsausführung

Ausrufezeichen-Befehle ermöglichen es dir, Systembefehle direkt in Qwen Code auszuführen.

BefehlsformatBeschreibungBeispiele
!<shell command>Befehl in einer Sub-Shell ausführen!ls -la, !git status
Standalone !Shell-Modus umschalten, jede Eingabe wird direkt als Shell-Befehl ausgeführt!(Eingabe) → Befehl eingeben → !(Beenden)

Umgebungsvariablen: Über ! ausgeführte Befehle setzen die Umgebungsvariable QWEN_CODE=1.

4. Benutzerdefinierte Befehle

Speichere häufig verwendete Prompts als Shortcut-Befehle, um die Arbeitseffizienz zu steigern und Konsistenz sicherzustellen.

Note

Benutzerdefinierte Befehle verwenden jetzt das Markdown-Format mit optionalem YAML-Frontmatter. Das TOML-Format ist deprecated, wird aber aus Gründen der Abwärtskompatibilität weiterhin unterstützt. Wenn TOML-Dateien erkannt werden, wird eine automatische Migrationsaufforderung angezeigt.

Schneller Überblick

FunktionBeschreibungVorteilePrioritätAnwendungsfälle
NamespaceUnterverzeichnis erstellt doppelpunkt-benannte BefehleBessere Befehlsorganisation
Globale Befehle~/.qwen/commands/In allen Projekten verfügbarNiedrigPersönlich häufig verwendete Befehle, projektübergreifende Nutzung
Projekt-Befehle<project root directory>/.qwen/commands/Projektspezifisch, versionierbarHochTeam-Sharing, projektspezifische Befehhe

Prioritätsregeln: Projekt-Befehle > Benutzer-Befehle (Projekt-Befehl wird verwendet, wenn die Namen identisch sind)

Regeln für die Befehlsbenennung

Zuordnungstabelle: Dateipfad zu Befehlsname

DateispeicherortGenerierter BefehlBeispielaufruf
~/.qwen/commands/test.md/test/test Parameter
<project>/.qwen/commands/git/commit.md/git:commit/git:commit Message

Benennungsregeln: Pfadtrennzeichen (/ oder \) wird in einen Doppelpunkt (:) umgewandelt

Markdown-Dateiformat-Spezifikation (Empfohlen)

Benutzerdefinierte Befehle verwenden Markdown-Dateien mit optionalem YAML-Frontmatter:

--- description: Optionale Beschreibung (wird in /help angezeigt) --- Dein Prompt-Inhalt hier. Verwende {{args}} für die Parameter-Injektion.
FeldErforderlichBeschreibungBeispiel
descriptionOptionalBefehlsbeschreibung (wird in /help angezeigt)description: Code analysis tool
Prompt-BodyErforderlichPrompt-Inhalt, der an das Modell gesendet wirdBeliebiger Markdown-Inhalt nach dem Frontmatter

TOML-Dateiformat (Deprecated)

Warning

Deprecated: Das TOML-Format wird weiterhin unterstützt, aber in einer zukünftigen Version entfernt. Bitte migriere zum Markdown-Format.

FeldErforderlichBeschreibungBeispiel
promptErforderlichPrompt-Inhalt, der an das Modell gesendet wirdprompt = "Please analyze code: {{args}}"
descriptionOptionalBefehlsbeschreibung (wird in /help angezeigt)description = "Code analysis tool"

Parameterverarbeitungsmechanismus

VerarbeitungsmethodeSyntaxAnwendungsfälleSicherheitsfunktionen
Kontextbewusste Injektion{{args}}Präzise Parametersteuerung erforderlichAutomatisches Shell-Escaping
Standard-ParameterverarbeitungKeine spezielle MarkierungEinfache Befehle, Parameter anhängenUnverändert anhängen
Shell-Befehlsinjektion!{command}Dynamische Inhalte erforderlichBestätigung der Ausführung vorher erforderlich

1. Kontextbewusste Injektion ({{args}})

SzenarioTOML-KonfigurationAufrufmethodeTatsächliche Auswirkung
Raw-Injektionprompt = "Fix: {{args}}"/fix "Button issue"Fix: "Button issue"
In Shell-Befehlprompt = "Search: !{grep {{args}} .}"/search "hello"Führt grep "hello" . aus

2. Standard-Parameterverarbeitung

EingabesituationVerarbeitungsmethodeBeispiel
Hat ParameterAn das Ende des Prompts anhängen (getrennt durch zwei Zeilenumbrüche)/cmd parameter → Original-Prompt + Parameter
Keine ParameterPrompt unverändert senden/cmd → Original-Prompt

🚀 Dynamische Content-Injektion

InjektionstypSyntaxVerarbeitungsreihenfolgeZweck
Dateiinhalt@{file path}Wird zuerst verarbeitetStatische Referenzdateien injizieren
Shell-Befehle!{command}Wird in der Mitte verarbeitetDynamische Ausführungsergebnisse injizieren
Parameterersetzung{{args}}Wird zuletzt verarbeitetBenutzerparameter injizieren

3. Shell-Befehlsausführung (!{...})

VorgangBenutzerinteraktion
1. Befehl und Parameter parsen-
2. Automatisches Shell-Escaping-
3. Bestätigungsdialog anzeigen✅ Benutzerbestätigung
4. Befehl ausführen-
5. Ausgabe in Prompt injizieren-

Beispiel: Git-Commit-Message-Generierung

--- description: Generiert eine Commit-Message basierend auf gestageten Änderungen --- Bitte generiere eine Commit-Message basierend auf dem folgenden Diff: ```diff !{git diff --staged} ```

4. Dateiinhalt-Injektion (@{...})

DateitypSupport-StatusVerarbeitungsmethode
Textdateien✅ Voller SupportInhalt direkt injizieren
Bilder/PDF✅ Multimodaler SupportKodieren und injizieren
Binärdateien⚠️ Eingeschränkter SupportKönnen übersprungen oder gekürzt werden
Verzeichnis✅ Rekursive InjektionFolgt den .gitignore-Regeln

Beispiel: Code-Review-Befehl

--- description: Code-Review basierend auf Best Practices --- Reviewe {{args}}, Referenzstandards: @{docs/code-standards.md}

Praktisches Erstellungsbeispiel

Schrittetabelle für die Erstellung des “Pure Function Refactoring”-Befehls

VorgangBefehl/Code
1. Verzeichnisstruktur erstellenmkdir -p ~/.qwen/commands/refactor
2. Befehlsdatei erstellentouch ~/.qwen/commands/refactor/pure.md
3. Befehlsinhalt bearbeitenSiehe den vollständigen Code unten.
4. Befehl testen@file.js/refactor:pure
--- description: Code in eine Pure Function refaktorisieren --- Bitte analysiere den Code im aktuellen Kontext und refaktoriere ihn zu einer Pure Function. Anforderungen: 1. Refaktorisierten Code bereitstellen 2. Wichtige Änderungen und die Implementierung der Pure-Function-Charakteristika erklären 3. Funktion unverändert lassen

Zusammenfassung der Best Practices für benutzerdefinierte Befehle

Empfehlungstabelle für das Befehlsdesign

PraxispunkteEmpfohlener AnsatzVermeiden
BefehlsbenennungNamespaces zur Organisation verwendenÜbermäßig generische Namen vermeiden
Parameterverarbeitung{{args}} explizit verwendenSich auf das Standard-Anhängen verlassen (leicht verwirrend)
FehlerbehandlungShell-Fehlerausgabe nutzenAusführungsfehler ignorieren
DateiorganisationNach Funktion in Verzeichnissen organisierenAlle Befehle im Stammverzeichnis
BeschreibungsfeldImmer eine klare Beschreibung angebenSich auf automatisch generierte Beschreibungen verlassen

Übersicht der Sicherheitsfunktionen

SicherheitsmechanismusSchutzwirkungBenutzeraktion
Shell EscapingVerhindert Command InjectionAutomatische Verarbeitung
AusführungsbestätigungVerhindert versehentliche AusführungBestätigung im Dialog
FehlerausgabeHilft bei der Diagnose von ProblemenFehlerinformationen anzeigen

5. CLI-Subbefehle

Diese Befehle werden in der Shell als qwen <subcommand> ausgeführt, bevor eine interaktive Sitzung gestartet wird.

Sitzungsverwaltung

BefehlBeschreibungAnwendungsbeispiele
qwen sessions listZeigt die letzten Konversationssitzungen anqwen sessions list, qwen sessions list --json --limit 50
qwen sessions psZeigt aktuell laufende interaktive Sitzungenqwen sessions ps, qwen sessions ps --json

qwen sessions list

Zeigt deine letzten Qwen Code-Sitzungen mit Metadaten an.

Flags:

FlagTypStandardwertBeschreibung
--jsonbooleanfalseAusgabe als JSON Lines (ein JSON-Objekt pro Zeile)
--limitnumber20Maximale Anzahl der anzuzeigenden Sitzungen

Menschenlesbare Ausgabe (Standard):

Eine Tabelle mit den Spalten: SESSION ID, STARTED (UTC-Zeitstempel), TITLE, BRANCH, PROMPT.

JSON-Ausgabe (--json):

Gibt JSON Lines auf stdout aus. Jede Zeile ist ein JSON-Objekt mit den folgenden Feldern:

sessionId, startTime, mtime, prompt, gitBranch, customTitle, titleSource, filePath, cwd

Der Hinweis “has more sessions” wird über stderr ausgegeben, sodass das Piping zu jq sicher bleibt.

Beispiele:

# Zeigt die letzten 20 Sitzungen an (Standard) qwen sessions list # Zeigt die letzten 50 Sitzungen an qwen sessions list --limit 50 # Ausgabe als JSON für Skripte qwen sessions list --json | jq .

qwen sessions ps

Zeigt die interaktiven Qwen Code-Sitzungen an, die gerade auf diesem Rechner laufen. sessions list durchsucht gespeicherte Transkripte (“woran habe ich gearbeitet”); dies durchsucht das Live-Prozess-Register (“was läuft gerade”). Zurückgelassene Records einer beendeten Sitzung werden beim Auffinden bereinigt. Headless-Sitzungen (qwen -p) registrieren sich nicht im Live-Prozess-Register und werden daher nicht angezeigt.

Flags:

FlagTypStandardwertBeschreibung
--jsonbooleanfalseAusgabe als JSON Lines (ein JSON-Objekt pro Zeile)

Menschenlesbare Ausgabe (Standard):

Eine Tabelle mit den Spalten: NAME, PID, AGE, DIRECTORY.

JSON-Ausgabe (--json):

Gibt JSON Lines auf stdout aus, neueste Sitzung zuerst. Jede Zeile ist ein JSON-Objekt mit den folgenden Feldern:

schemaVersion, pid, procStart, pidNs, sessionId, cwd, name, startedAt, qwenVersion

Nichts anderes wird auf stdout geschrieben – eine leere Auflistung gibt überhaupt nichts aus – daher ist qwen sessions ps --json | jq . sicher zum Skripten.

JSON-Ausgabe sind Rohdaten: Feldwerte werden genau wie aufgezeichnet ausgegeben, ohne Terminal-Sanitization. Behandle sie als Daten und sanitiere sie vor dem Rendern in einem Terminal.

Beispiele:

# Zeigt die anderen Live-Sitzungen qwen sessions ps # Welche Verzeichnisse sind gerade belegt? # Hinweis: `jq -r` gibt den rohen aufgezeichneten Wert in deinem Terminal # aus (siehe Rohdaten-Hinweis oben); pipe durch einen Sanitizer, wenn der # Pfad nicht vertrauenswürdig ist. qwen sessions ps --json | jq -r .cwd
Last updated on