Slash-Befehle bieten eine Möglichkeit, Claude Code-Sitzungen mit speziellen Befehlen zu steuern, die mit / beginnen. Diese Befehle können über das SDK gesendet werden, um Aktionen wie das Löschen des Gesprächsverlaufs, das Komprimieren von Nachrichten oder das Abrufen von Hilfe durchzuführen.
Das Claude Agent SDK stellt Informationen über verfügbare Slash-Befehle in der Systeminitialisierungsnachricht bereit. Greifen Sie auf diese Informationen zu, wenn Ihre Sitzung startet:
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "Hallo Claude",
options: { maxTurns: 1 }
})) {
if (message.type === "system" && message.subtype === "init") {
console.log("Verfügbare Slash-Befehle:", message.slash_commands);
// Beispielausgabe: ["/compact", "/clear", "/help"]
}
}Senden Sie Slash-Befehle, indem Sie sie in Ihren Prompt-String einschließen, genau wie normalen Text:
import { query } from "@anthropic-ai/claude-agent-sdk";
// Einen Slash-Befehl senden
for await (const message of query({
prompt: "/compact",
options: { maxTurns: 1 }
})) {
if (message.type === "result") {
console.log("Befehl ausgeführt:", message.result);
}
}/compact - Gesprächsverlauf komprimierenDer /compact-Befehl reduziert die Größe Ihres Gesprächsverlaufs, indem er ältere Nachrichten zusammenfasst und dabei wichtigen Kontext bewahrt:
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "/compact",
options: { maxTurns: 1 }
})) {
if (message.type === "system" && message.subtype === "compact_boundary") {
console.log("Komprimierung abgeschlossen");
console.log("Token vor Komprimierung:", message.compact_metadata.pre_tokens);
console.log("Auslöser:", message.compact_metadata.trigger);
}
}/clear - Gespräch löschenDer /clear-Befehl startet ein neues Gespräch, indem er den gesamten vorherigen Verlauf löscht:
import { query } from "@anthropic-ai/claude-agent-sdk";
// Gespräch löschen und neu starten
for await (const message of query({
prompt: "/clear",
options: { maxTurns: 1 }
})) {
if (message.type === "system" && message.subtype === "init") {
console.log("Gespräch gelöscht, neue Sitzung gestartet");
console.log("Sitzungs-ID:", message.session_id);
}
}Zusätzlich zur Verwendung eingebauter Slash-Befehle können Sie Ihre eigenen benutzerdefinierten Befehle erstellen, die über das SDK verfügbar sind. Benutzerdefinierte Befehle werden als Markdown-Dateien in bestimmten Verzeichnissen definiert, ähnlich wie Subagenten konfiguriert werden.
Benutzerdefinierte Slash-Befehle werden in bestimmten Verzeichnissen basierend auf ihrem Geltungsbereich gespeichert:
.claude/commands/ - Nur im aktuellen Projekt verfügbar~/.claude/commands/ - In allen Ihren Projekten verfügbarJeder benutzerdefinierte Befehl ist eine Markdown-Datei, bei der:
.md-Erweiterung) zum Befehlsnamen wirdErstellen Sie .claude/commands/refactor.md:
Refaktorisieren Sie den ausgewählten Code, um Lesbarkeit und Wartbarkeit zu verbessern.
Konzentrieren Sie sich auf Clean-Code-Prinzipien und bewährte Praktiken.Dies erstellt den /refactor-Befehl, den Sie über das SDK verwenden können.
Erstellen Sie .claude/commands/security-check.md:
---
allowed-tools: Read, Grep, Glob
description: Sicherheitsvulnerabilitätsscan durchführen
model: claude-3-5-sonnet-20241022
---
Analysieren Sie die Codebasis auf Sicherheitsvulnerabilitäten einschließlich:
- SQL-Injection-Risiken
- XSS-Vulnerabilitäten
- Exponierte Anmeldedaten
- Unsichere KonfigurationenSobald sie im Dateisystem definiert sind, sind benutzerdefinierte Befehle automatisch über das SDK verfügbar:
import { query } from "@anthropic-ai/claude-agent-sdk";
// Einen benutzerdefinierten Befehl verwenden
for await (const message of query({
prompt: "/refactor src/auth/login.ts",
options: { maxTurns: 3 }
})) {
if (message.type === "assistant") {
console.log("Refaktorisierungsvorschläge:", message.message);
}
}
// Benutzerdefinierte Befehle erscheinen in der slash_commands-Liste
for await (const message of query({
prompt: "Hallo",
options: { maxTurns: 1 }
})) {
if (message.type === "system" && message.subtype === "init") {
// Wird sowohl eingebaute als auch benutzerdefinierte Befehle enthalten
console.log("Verfügbare Befehle:", message.slash_commands);
// Beispiel: ["/compact", "/clear", "/help", "/refactor", "/security-check"]
}
}Benutzerdefinierte Befehle unterstützen dynamische Argumente mit Platzhaltern:
Erstellen Sie .claude/commands/fix-issue.md:
---
argument-hint: [issue-nummer] [priorität]
description: Ein GitHub-Issue beheben
---
Beheben Sie Issue #$1 mit Priorität $2.
Überprüfen Sie die Issue-Beschreibung und implementieren Sie die notwendigen Änderungen.Verwendung im SDK:
import { query } from "@anthropic-ai/claude-agent-sdk";
// Argumente an benutzerdefinierten Befehl übergeben
for await (const message of query({
prompt: "/fix-issue 123 high",
options: { maxTurns: 5 }
})) {
// Befehl wird mit $1="123" und $2="high" verarbeitet
if (message.type === "result") {
console.log("Issue behoben:", message.result);
}
}Benutzerdefinierte Befehle können Bash-Befehle ausführen und deren Ausgabe einschließen:
Erstellen Sie .claude/commands/git-commit.md:
---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
description: Einen Git-Commit erstellen
---
## Kontext
- Aktueller Status: !`git status`
- Aktueller Diff: !`git diff HEAD`
## Aufgabe
Erstellen Sie einen Git-Commit mit angemessener Nachricht basierend auf den Änderungen.Schließen Sie Dateiinhalte mit dem @-Präfix ein:
Erstellen Sie .claude/commands/review-config.md:
---
description: Konfigurationsdateien überprüfen
---
Überprüfen Sie die folgenden Konfigurationsdateien auf Probleme:
- Paket-Konfiguration: @package.json
- TypeScript-Konfiguration: @tsconfig.json
- Umgebungs-Konfiguration: @.env
Prüfen Sie auf Sicherheitsprobleme, veraltete Abhängigkeiten und Fehlkonfigurationen.Organisieren Sie Befehle in Unterverzeichnissen für bessere Struktur:
.claude/commands/
├── frontend/
│ ├── component.md # Erstellt /component (project:frontend)
│ └── style-check.md # Erstellt /style-check (project:frontend)
├── backend/
│ ├── api-test.md # Erstellt /api-test (project:backend)
│ └── db-migrate.md # Erstellt /db-migrate (project:backend)
└── review.md # Erstellt /review (project)Das Unterverzeichnis erscheint in der Befehlsbeschreibung, beeinflusst aber nicht den Befehlsnamen selbst.
Erstellen Sie .claude/commands/code-review.md:
---
allowed-tools: Read, Grep, Glob, Bash(git diff:*)
description: Umfassendes Code-Review
---
## Geänderte Dateien
!`git diff --name-only HEAD~1`
## Detaillierte Änderungen
!`git diff HEAD~1`
## Review-Checkliste
Überprüfen Sie die obigen Änderungen auf:
1. Codequalität und Lesbarkeit
2. Sicherheitsvulnerabilitäten
3. Performance-Auswirkungen
4. Testabdeckung
5. Dokumentationsvollständigkeit
Geben Sie spezifisches, umsetzbares Feedback organisiert nach Priorität.Erstellen Sie .claude/commands/test.md:
---
allowed-tools: Bash, Read, Edit
argument-hint: [test-muster]
description: Tests mit optionalem Muster ausführen
---
Tests ausführen, die dem Muster entsprechen: $ARGUMENTS
1. Test-Framework erkennen (Jest, pytest, etc.)
2. Tests mit dem bereitgestellten Muster ausführen
3. Falls Tests fehlschlagen, analysieren und beheben
4. Erneut ausführen, um Korrekturen zu verifizierenVerwenden Sie diese Befehle über das SDK:
import { query } from "@anthropic-ai/claude-agent-sdk";
// Code-Review ausführen
for await (const message of query({
prompt: "/code-review",
options: { maxTurns: 3 }
})) {
// Review-Feedback verarbeiten
}
// Spezifische Tests ausführen
for await (const message of query({
prompt: "/test auth",
options: { maxTurns: 5 }
})) {
// Testergebnisse behandeln
}