9 min Lesezeit

Claude Code Slash Commands: Custom Commands & Workflows 2026

Built-in /commit, /review, /test — und dann Custom Commands in .claude/commands/: So automatisierst du komplette Entwickler-Workflows direkt im Terminal.

Slash Commands sind das Herzstück von Claude Codes Terminal-Interface. Mit einem einzigen Befehl wie /commit oder /review löst du komplexe mehrstufige Workflows aus — kein Copy-Paste von Prompts, keine umständlichen Kontextwechsel. Und das Beste: Du kannst beliebig viele eigene Commands erstellen und mit deinem Team teilen.

In diesem Guide lernst du, welche Built-in Commands es gibt, wie du eigene Custom Commands schreibst, und wie du Hooks nutzt um Automatisierungen auszulösen — ohne einen einzigen Klick.

1. Built-in Slash Commands: Die Grundausstattung

Claude Code kommt mit einer Reihe von eingebauten Slash Commands die direkt einsatzbereit sind. Sie decken die häufigsten Entwickler-Workflows ab und können jederzeit per /help aufgerufen werden.

Command Was er macht Typ
/help Zeigt alle verfügbaren Commands — built-in und custom Built-in
/clear Leert den Konversations-Kontext, startet frischen Dialog Built-in
/compact Komprimiert langen Kontext auf Kern-Informationen (spart Tokens) Built-in
/commit Analysiert Änderungen, generiert Commit-Message, führt git commit aus Built-in
/review Code-Review der aktuellen Änderungen oder eines bestimmten Files Built-in
/test Führt Test-Suite aus, analysiert Fehler, schlägt Fixes vor Built-in
/doctor Diagnostiziert Setup-Probleme (API-Keys, Pfade, Permissions) Built-in
/init Initialisiert CLAUDE.md im aktuellen Projekt Built-in
/memory Memory-System verwalten: recall, save, list Built-in
/pr-comments Holt PR-Kommentare aus GitHub und listet offene Review-Punkte Built-in
/vim Wechselt in Vim-Eingabemodus für längere Prompt-Eingaben Built-in
/cost Zeigt Token-Verbrauch und Kosten der aktuellen Session Built-in
Tipp: /compact für lange Sessions

Nach 30–40 Minuten Arbeit sammeln sich Tokens an. /compact destilliert den Kontext auf das Wesentliche — du behältst den Überblick, sparst aber signifikant Tokens und bleibst responsiv.

Built-in Commands in Aktion

Typischer Workflow mit Built-in Commands: Du hast gerade Features implementiert und willst committen, reviewen und testen — alles in drei Befehlen:

# 1. Änderungen reviewen lassen /review # 2. Commit mit automatisch generierter Message /commit # 3. Tests ausführen + Fehler-Analyse /test

Claude analysiert dabei den kompletten Diff, versteht den Kontext deines Projekts durch CLAUDE.md, und generiert Commit-Messages die wirklich erklären warum die Änderung gemacht wurde — nicht nur was sich geändert hat.

Built-in

/doctor — Setup-Diagnose

/doctor prüft deinen kompletten Claude Code Setup: API-Keys gesetzt? CLAUDE.md gefunden? Permissions korrekt? Memory-System erreichbar? Ideal wenn Claude Code unerwartet verhält — statt manuell zu debuggen einfach /doctor aufrufen.

2. Custom Commands erstellen: .claude/commands/

Der echte Game-Changer in Claude Code sind Custom Commands. Du schreibst eine einfache Markdown-Datei in .claude/commands/ — und Claude Code macht daraus einen aufrufbaren Slash Command. Kein Code, kein Kompilieren, keine Installation.

Verzeichnisstruktur

mein-projekt/ ├── .claude/ │ ├── CLAUDE.md # Projekt-Kontext für Claude │ └── commands/ │ ├── deploy.md # → /deploy │ ├── create-component.md # → /create-component │ ├── db-migrate.md # → /db-migrate │ └── pr-review.md # → /pr-review ├── src/ └── package.json

Aufbau einer Command-Datei

Jede .md-Datei in .claude/commands/ wird automatisch als Command registriert. Der Dateiname (ohne .md) wird zum Command-Namen. Die Struktur ist simpel:

# Datei: .claude/commands/deploy.md --- description: "Deployed die App auf Staging und verifiziert die Erreichbarkeit" allowed-tools: ["Bash", "Read", "WebFetch"] --- ## Deploy auf Staging Führe folgende Schritte aus: 1. Prüfe ob alle Tests grün sind: `npm test` 2. Baue die App: `npm run build` 3. Deploye auf Staging: `./scripts/deploy-staging.sh` 4. Verifiziere HTTP 200 unter: `curl -s -o /dev/null -w "%{http_code}" $STAGING_URL` 5. Melde Ergebnis mit Staging-URL Falls ein Schritt fehlschlägt: stoppe sofort und erkläre was schiefgelaufen ist.
$ARGUMENTS — dynamische Parameter

Mit dem Platzhalter $ARGUMENTS übergibst du Parameter an deinen Command. /deploy feature/auth setzt dann $ARGUMENTS auf feature/auth im Prompt. Perfekt für Branch-Namen, Umgebungen oder Dateinamen.

Command mit $ARGUMENTS

# Datei: .claude/commands/create-component.md --- description: "Erstellt eine neue React-Komponente mit Tests und Storybook-Story" allowed-tools: ["Write", "Read", "Bash"] --- Erstelle eine neue React-Komponente namens **$ARGUMENTS**. Folge dabei exakt unserer Projekt-Konvention: 1. `src/components/$ARGUMENTS/$ARGUMENTS.tsx` — Hauptkomponente 2. `src/components/$ARGUMENTS/$ARGUMENTS.test.tsx` — Unit-Tests mit Vitest 3. `src/components/$ARGUMENTS/$ARGUMENTS.stories.tsx` — Storybook Story 4. `src/components/$ARGUMENTS/index.ts` — Barrel Export Verwende TypeScript mit strikten Types. Keine any-Typen. Props mit JSDoc-Kommentaren versehen. Tests: min. 3 Testfälle (render, props, events).

Aufruf: /create-component Button — Claude erstellt alle 4 Dateien, schreibt echte Tests und befüllt die Story mit sinnvollen Beispiel-Props.

3. Praktische Custom Commands: Echte Beispiele

Hier sind vier Custom Commands die in echten Entwickler-Workflows täglich eingesetzt werden. Jeder löst ein konkretes Problem und spart zwischen 5 und 30 Minuten manueller Arbeit.

deploy-staging.md — Sicheres Staging-Deployment

# .claude/commands/deploy-staging.md --- description: "Vollständiges Staging-Deploy mit Pre-Flight Checks" allowed-tools: ["Bash", "Read"] --- Führe ein sicheres Staging-Deployment durch: **Pre-Flight Checks:** - `git status` — keine uncommitteten Änderungen? - `npm run lint` — kein Lint-Fehler? - `npm test -- --run` — alle Tests grün? **Falls eine Prüfung fehlschlägt:** Sofort stoppen, Problem erklären. **Deploy-Schritte:** 1. `npm run build` — Production Build 2. `rsync -avz dist/ staging-server:/var/www/app/` — Upload 3. `ssh staging-server "pm2 restart app"` — Restart 4. `curl -sf https://staging.example.com/health` — Health Check 5. Zeige Deployment-Summary: Version, Zeitstempel, URL
Custom

db-migrate.md — Datenbankmigrationen

Erstellt und führt Datenbankmigrationen sicher aus: prüft Backup-Status, generiert Migration aus Schema-Diff, führt Dry-Run durch, fragt nach Bestätigung, führt Migration aus und verifiziert Tabellenstruktur. Aufruf: /db-migrate add-user-preferences

# .claude/commands/db-migrate.md --- description: "Erstellt und führt Datenbankmigrationen aus mit Safety-Checks" allowed-tools: ["Bash", "Write", "Read"] --- Erstelle und führe eine Datenbankmigration für: **$ARGUMENTS** 1. Analysiere aktuelles Schema: `cat prisma/schema.prisma` 2. Erstelle Migration: `npx prisma migrate dev --name $ARGUMENTS --create-only` 3. Zeige generierte SQL — frage nach Review 4. Führe Migration aus: `npx prisma migrate deploy` 5. Verifiziere: `npx prisma db pull && npx prisma validate` 6. Generiere Prisma Client: `npx prisma generate` **NIEMALS** Migration ausführen wenn Schema-Validierung fehlschlägt.

pr-review.md — Automatisierter PR-Review

# .claude/commands/pr-review.md --- description: "Vollständiger Code-Review eines Pull Requests" allowed-tools: ["Bash", "Read", "Glob", "Grep"] --- Führe einen gründlichen Code-Review von PR #$ARGUMENTS durch. 1. Hole PR-Details: `gh pr view $ARGUMENTS` 2. Analysiere Diff: `gh pr diff $ARGUMENTS` 3. Prüfe auf: - Security-Probleme (SQL Injection, XSS, unsichere Dependencies) - Performance-Probleme (N+1 Queries, unnötige Re-Renders) - Code-Style (Konsistenz mit bestehendem Code) - Fehlende Tests für neue Funktionalität - Typen-Sicherheit (TypeScript) 4. Erstelle strukturierten Review-Report: - 🔴 Must-Fix: Kritische Probleme - 🟡 Should-Fix: Empfehlungen - 🟢 Looks Good: Was gut gelöst wurde 5. Optional: Review posten mit `gh pr review $ARGUMENTS --comment`
Zeitersparnis in der Praxis

Teams die Custom Commands für ihre Standard-Workflows einsetzen berichten von 30–50% weniger Zeit für repetitive Aufgaben wie Deploy-Vorbereitung, Migrations-Handling und PR-Reviews. Der Aufwand für einen neuen Custom Command: unter 15 Minuten.

4. Team Commands: Shared Workflows im Git-Repo

Custom Commands in .claude/commands/ werden mit dem Git-Repository eingecheckt — damit teilst du deine Commands automatisch mit dem gesamten Team. Kein separates Setup, keine Dokumentation nötig: jeder der git pull macht, hat sofort alle Team-Commands verfügbar.

Versionierung und Pflege

Command entwickeln
In .claude/commands/ ablegen
git commit + push
Team hat Command sofort
Team

Shared Prompt Library

Behandle .claude/commands/ wie deine interne Prompt-Library. Jede Datei ist versioniert, reviewbar und iterierbar. Gute Commands entstehen iterativ: erst grob schreiben, dann nach Feedback von Teamkollegen verfeinern. Nach 3–4 Iterationen sind die Commands so präzise dass Claude zuverlässig das Gewünschte macht.

Team-Workflow: Empfohlene Command-Sammlung

.claude/commands/ ├── deploy-staging.md # /deploy-staging — Staging Deploy ├── deploy-prod.md # /deploy-prod — Prod Deploy + Rollback ├── create-component.md # /create-component $NAME ├── create-api-route.md # /create-api-route $NAME ├── db-migrate.md # /db-migrate $NAME ├── db-seed.md # /db-seed — Testdaten einspielen ├── pr-review.md # /pr-review $PR_NUMBER ├── release-notes.md # /release-notes — Changelog generieren ├── security-audit.md # /security-audit — OWASP Check └── onboard.md # /onboard — Setup für neue Devs

Der onboard-Command: Neues Teammitglied in 5 Minuten

Ein besonders wertvoller Team-Command ist onboard.md: Er erklärt neuen Entwicklern automatisch die Projekt-Architektur, zeigt wichtige Konfigurationsdateien, erklärt Namenskonventionen und listet die wichtigsten Custom Commands auf. Kein händisches Onboarding mehr.

# .claude/commands/onboard.md --- description: "Erklärt das Projekt für neue Teammitglieder" allowed-tools: ["Read", "Glob", "Bash"] --- Begrüße den neuen Entwickler und führe durch das Projekt: 1. Lies `README.md`, `CLAUDE.md`, `package.json` 2. Erkläre die Ordnerstruktur: src/, tests/, scripts/ 3. Zeige die wichtigsten npm-Scripts und was sie tun 4. Erkläre die Custom Commands in `.claude/commands/` 5. Zeige wie Branches benannt werden (z.B. feature/JIRA-123-beschreibung) 6. Erkläre den PR-Prozess und Merge-Kriterien 7. Checke ob alle Dependencies installiert sind: `npm install` 8. Führe erste Tests aus: `npm test` Am Ende: Zeige 3 gute erste Tasks für neue Entwickler.
Achtung: allowed-tools bewusst setzen

Commands mit allowed-tools: ["Bash"] können beliebige Shell-Befehle ausführen. Für Team-Commands empfiehlt sich ein Review im Code-Review-Prozess — genau wie bei anderen Scripts. Gib nur die Werkzeuge frei die der Command wirklich braucht.

5. CLAUDE.md Integration: Kontext trifft Commands

CLAUDE.md und Custom Commands sind kein getrenntes System — sie arbeiten zusammen. Claude liest CLAUDE.md automatisch beim Start jeder Session und kennt damit den Projektkontext wenn dein Custom Command ausgeführt wird.

CLAUDE.md als Grundlage für Commands

# .claude/CLAUDE.md — Projekt-Kontext ## Projekt: E-Commerce Backend ### Stack - Runtime: Bun 1.2, TypeScript 5.4 - Framework: Hono.js - Datenbank: PostgreSQL 16 via Prisma ORM - Tests: Vitest + Supertest für API-Tests - Deploy: Docker → Kubernetes (namespace: ecommerce-prod) ### Konventionen - Branches: `feature/SHOP-{nummer}-{beschreibung}` - Commit-Format: `[type] SHOP-{nummer}: kurze Beschreibung` - API-Routen: REST, kebab-case URLs, Versionierung via Header - Fehlerhandling: NIEMALS stumme Catches — immer loggen ### Custom Commands verfügbar - `/deploy-staging` — Deploy auf Staging (requires VPN) - `/create-component` — React-Komponente mit Tests - `/db-migrate` — Prisma Migration erstellen + ausführen - `/pr-review` — PR-Review via GitHub CLI

Wenn du nun /create-component ProductCard aufrufst, weiß Claude bereits: TypeScript, Vitest für Tests, Hono.js ist kein React-Projekt (also keine JSX-Komponenten im Backend), und Commits folgen dem SHOP-Format. Der Custom Command muss das nicht nochmals erklären.

Startup Commands in CLAUDE.md

In CLAUDE.md kannst du auch Startup-Verhalten definieren — was Claude beim Session-Start automatisch tun soll:

# .claude/CLAUDE.md — Startup-Sektion ## Session-Start (automatisch ausführen) Bei jeder neuen Session: 1. `git status` — prüfe ob uncommittete Änderungen vorhanden 2. `npm run typecheck 2>&1 | tail -5` — TypeScript-Fehler checken 3. Falls Fehler: sofort melden, BEVOR anderer Task begonnen wird 4. Zeige aktuellen Branch und letzten Commit ## Pflicht-Regeln - NIEMALS `any` in TypeScript verwenden - NIEMALS Migrations ohne Backup-Check ausführen - IMMER Tests nach Code-Änderungen ausführen - Commit-Message auf Englisch
Built-inCustom

Commands + CLAUDE.md: Das Zusammenspiel

CLAUDE.md definiert das Was (Kontext, Regeln, Stack) — Custom Commands definieren das Wie (konkrete Workflows). Zusammen entsteht ein System das Claude in deinem Projektkontext agieren lässt als würde es das Projekt seit Monaten kennen. Neue Teammitglieder profitieren sofort vom akkumulierten Kontextwissen.

6. Hooks & Automatisierung: PreToolUse / PostToolUse

Hooks sind die fortgeschrittenste Automatisierungsebene in Claude Code. Sie werden in settings.json konfiguriert und feuern automatisch vor oder nach Werkzeug-Aufrufen — ohne dass du einen Slash Command eingeben musst.

Hook-Typen

HookWann er feuertTypischer Einsatz
PreToolUse Bevor Claude ein Werkzeug aufruft Validierung, Safety-Checks, Logging
PostToolUse Nachdem ein Werkzeug erfolgreich war Format-on-save, Lint-Trigger, Notifications
PreSessionStart Beim Start jeder Session Environment-Setup, Dependency-Check
PostSessionEnd Beim Beenden der Session Cleanup, Summarizing, Reporting

Hooks konfigurieren: settings.json

// .claude/settings.json { "hooks": { "PostToolUse": [ { "matcher": "Write", "hooks": [ { "type": "command", "command": "npx prettier --write \"$TOOL_INPUT_FILE_PATH\" 2>/dev/null || true" } ] }, { "matcher": "Write", "hooks": [ { "type": "command", "command": "npx eslint --fix \"$TOOL_INPUT_FILE_PATH\" 2>/dev/null || true" } ] } ], "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "echo \"[$(date -u +%H:%M:%S)] Bash: $TOOL_INPUT_COMMAND\" >> /tmp/claude-audit.log" } ] } ] } }

Dieses Beispiel macht Folgendes: Jedes Mal wenn Claude eine Datei schreibt, wird Prettier und ESLint automatisch darüber laufen. Jeder Bash-Befehl wird in ein Audit-Log geschrieben. Du musst nie wieder manuell formatieren oder dich fragen was Claude in der Shell gemacht hat.

Praktischer Hook: TypeScript-Fehler sofort prüfen

// PostToolUse Hook — TypeScript nach jeder Write-Operation prüfen { "hooks": { "PostToolUse": [ { "matcher": "Write", "hooks": [ { "type": "command", "command": "npx tsc --noEmit 2>&1 | head -20" } ] } ] } }
Hook

Format-on-Save: Automatisch und unsichtbar

Mit dem PostToolUse Write-Hook läuft Prettier automatisch nach jeder Datei-Änderung durch Claude. Das bedeutet: Claude schreibt Code in seinem Format, Prettier bringt ihn sofort in Projekt-Standard. Kein manuelles npm run format, kein "vergessen zu formatieren" vor dem Commit mehr.

Sicherheits-Hook: Gefährliche Befehle abfangen

# PreToolUse Safety-Hook via Shell-Script #!/bin/bash # .claude/hooks/pre-bash-check.sh COMMAND="$TOOL_INPUT_COMMAND" # Blockiere gefährliche Befehle if echo "$COMMAND" | grep -qE "(rm -rf /|DROP TABLE|DELETE FROM [a-z]+ WHERE 1)"; then echo "BLOCKED: Gefährlicher Befehl erkannt: $COMMAND" >&2 exit 1 fi # Produktionsdatenbank-Schutz if echo "$COMMAND" | grep -q "prod-db" && [ "$NODE_ENV" != "production" ]; then echo "BLOCKED: Prod-DB-Zugriff nur aus Production-Environment erlaubt" >&2 exit 1 fi exit 0
// settings.json — Safety-Hook einbinden { "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": ".claude/hooks/pre-bash-check.sh" } ] } ] } }

Wenn der Hook mit Exit-Code 1 beendet wird, bricht Claude den Werkzeug-Aufruf ab und erklärt dem Benutzer warum. So verhinderst du destruktive Aktionen — auch in automatisierten Workflows.

Best Practices für Hooks

Hooks in CI/CD-Umgebungen

In CI-Pipelines (GitHub Actions, GitLab CI) werden Hooks aus .claude/settings.json nur ausgeführt wenn Claude Code explizit im non-interaktiven Modus gestartet wird. Prüfe mit claude --doctor ob Hooks korrekt geladen werden.

Fazit: Slash Commands als Team-Multiplier

Slash Commands — built-in wie custom — sind kein Nice-to-have. Sie sind der Unterschied zwischen Claude Code als "schlaues Autocomplete" und Claude Code als vollständigem Entwickler-Workflow-System.

Die Progression ist logisch: Erst Built-in Commands für Grundaufgaben nutzen. Dann Custom Commands für projekt-spezifische Workflows schreiben. Commands ins Git einchecken damit das Team profitiert. Hooks für automatische Qualitäts-Gates einrichten. Am Ende entsteht ein System das Konventionen durchsetzt, Workflows automatisiert und Wissen kodiert — ohne dass jemand es aktiv erklären muss.

Der Einstieg ist einfach: Schreib heute einen Custom Command für deinen häufigsten Workflow. Wahrscheinlich sparst du morgen schon 20 Minuten.

Claude Code für dein Team einrichten?

SpockyMagicAI zeigt dir wie du Custom Commands, CLAUDE.md und Hooks zu einem kompletten Workflow-System verbindest — fertig konfiguriert für dein Projekt.

Kostenlos testen →