Claude Code ist das Command Line Interface zum Arbeiten mit Claude in deinen lokalen Projekten. Du steuerst es über Slash-Commands und konfigurierst es über CLAUDE.md Dateien.
Installation
macOS (Homebrew)
brew install anthropic/claude-code/claude-code
Linux / Windows (npm)
npm install -g @anthropic-ai/claude-code
Nach Installation die Version prüfen:
claude --version
Autocompletion
# Bash
eval "$(claude --completion bash)"
# Zsh
eval "$(claude --completion zsh)"
# Fish
claude --completion fish | source
Projekt initialisieren
Beim ersten Start in einem Verzeichnis:
cd /dein/projekt
claude /init
Das erstellt automatisch:
.claude/CLAUDE.md— Projekt-Level Instruktionen.claude/rules/— Regel-Verzeichnis (optional).claude/skills/— Custom Skills (optional).claude/agents/— Agent-Definitionen (optional)
Wichtigste Commands
/init
Initialisiert ein neues Projekt mit .claude/-Struktur.
claude /init
/compact
Speichert den aktuellen Context und startet eine neue Session. Der alte Context bleibt erhalten und wird bei Bedarf geladen.
claude /compact
# Erstellt einen Checkpoint — danach ist der Chat leer
Wann nutzen: Bei langen Sessions (> 50 Turns) wenn der Context zu groß wird.
/clear
Löscht die lokale Chat-History der aktuellen Session, nicht die Dateien.
claude /clear
/model
Wechselt das Modell für die aktuelle Session.
claude /model sonnet # haiku, sonnet, oder opus
Verfügbar: haiku (schnell, einfach), sonnet (Standard), opus (komplex).
/permissions
Zeigt und verwaltet Tool-Berechtigungen.
claude /permissions
# Listet verfügbare Tools auf
/cost
Zeigt Input- und Output-Token der aktuellen Session.
claude /cost
/doctor
Diagnostiziert Probleme mit deinem Setup.
claude /doctor
# Prüft: Git, Node.js, .claude/ Struktur, Credentials
/review
Erstellt einen Code-Review eines bestimmten Files.
claude /review src/main.py
/pr
Generiert einen Pull-Request aus den lokalen Änderungen.
claude /pr
# Basiert auf git diff gegen main
CLAUDE.md Struktur
CLAUDE.md Dateien konfigurieren Claude für dein Projekt. Sie können auf mehreren Ebenen existieren:
Ebenen
- User-Level —
~/.claude/CLAUDE.md(optional, global für alle Projekte) - Projekt-Level —
/dein/projekt/.claude/CLAUDE.md(PFLICHT, überschreibt User-Level) - Rules —
.claude/rules/*.md(granulare Regeln, werden vom Projekt-CLAUDE.md geladen)
Aufbau einer CLAUDE.md
# Mein Projekt — AI Engineering Standards
## Sicherheit
- Keine API Keys in Code
- Alle Credentials vom Vault laden
## Tool-Regeln
- File-Operationen NUR in /src und /docs
- Bash-Befehle IMMER nach Rückfrage
## Git-Workflow
- Immer auf Feature-Branch
- Commit-Messages: Imperative Form
- Vor Merge: CI/CD muss grün sein
## Projekt-Kontext
ERPNext läuft auf dein-server:8082
n8n Workflows in ./n8n-workflows/
Test-Suite: npm run test
Wichtig: CLAUDE.md ist im Repository — jeder Entwickler erbt die gleichen Regeln.
Hooks System
Hooks erlauben es, eigene Logik vor/nach Tool-Einsatz auszuführen.
Verfügbare Hook-Punkte
hooks:
PreToolUse: [...] # VOR jedes Tool wird ausgeführt
PostToolUse: [...] # NACH jedes Tool
PreAction: [...] # VOR jeder Aktion (File schreiben, Git commit, etc.)
PostAction: [...] # NACH jeder Aktion
Hook-Format
hooks:
PreToolUse:
- matcher: "Write|Edit" # Regex: welche Tools betroffen
action: "confirm" # confirm = fragen, log = melden, block = blocken
message: "Datei wird geändert: $file"
Beispiel: Backup VOR jeder File-Bearbeitung
hooks:
PreAction:
- matcher: "file_modify"
action: "backup_first"
retention: 5 # letzte 5 Backups behalten
Agent SDK Basics
Wenn du Custom-Agents bauen möchtest, nutze das Agent SDK:
import { Anthropic } from "@anthropic-ai/sdk";
const client = new Anthropic();
const response = await client.messages.create({
model: "claude-opus-4-1",
max_tokens: 4096,
tools: [
{
name: "read_file",
description: "Liest eine Datei",
input_schema: {
type: "object",
properties: {
path: { type: "string", description: "Dateipfad" }
},
required: ["path"]
}
}
],
messages: [
{
role: "user",
content: "Lese die README.md Datei"
}
]
});
Das SDK ist auf npm verfügbar:
npm install @anthropic-ai/sdk
IDE-Integration
VS Code
- Extension installieren: "Claude Code" (Anthropic Official)
- Befehlspalette:
Cmd+Shift+P→ "Claude: Initialize Project" - Chat öffnet sich im Editor-Panel
Shortcuts:
Cmd+Shift+C— Claude Chat öffnenCmd+Shift+A— Datei als Context hinzufügen
JetBrains (IntelliJ, PyCharm, etc.)
- Settings → Plugins → "Claude Code" installieren
- Tools → Claude Code → Initialize Project
- Chat panel öffnet sich rechts
Shortcuts:
Cmd+K/Ctrl+K— Chat öffnenCmd+Shift+K— Code-Block erzeugen
Vim / Neovim
Kein offizielles Plugin, aber Claude Code CLI funktioniert:
claude /review src/main.py # Output im Terminal
Alternative: coc-claude Extension für coc.nvim.
Print Mode (-p Flag)
Print Mode führt eine Anfrage aus und beendet sich sofort — no interactive session.
claude -p "Schreibe einen Unit Test für main.py"
Anwendung:
- Einmalige Anfragen
- Skripte/Automation
- CI/CD Pipelines
Wichtig: Mit -p wird keine Session gespeichert. Für längere Arbeit /init verwenden.
Headless Mode
Claude Code kann ohne Benutzer-Interaktion über Skripte gesteuert werden:
# Nicht-interaktiv einen Skill ausführen
echo "Fix the bug in main.py" | claude
MCP Integration
Claude Code kann MCP (Model Context Protocol) Server nutzen. Konfiguration in .mcp.json:
{
"mcpServers": {
"filesystem": {
"command": "node",
"args": ["~/.mcp-servers/filesystem/index.js"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."
}
}
}
}
Nach Änderung neustarten:
claude /doctor # zeigt MCP-Verbindung
Tips & Best Practices
1. Große Projekte strukturieren
Nutze .claude/rules/ für verschiedene Bereiche:
.claude/
├── CLAUDE.md
├── rules/
│ ├── 01-safety.md
│ ├── 02-architecture.md
│ ├── 03-testing.md
│ └── 04-git-workflow.md
└── skills/
2. Context Noise reduzieren
Mit /compact regelmäßig den Context aufräumen:
# Nach 50 Turns
claude /compact
3. Kosten monitoren
Regelmäßig /cost ausführen um zu sehen welche Models teuer sind:
claude /cost
# Output: Haiku: 1234 tokens (€0.18), Opus: 567 tokens (€0.28)
4. Git vor AI-Änderungen
Vor großen Änderungen:
git add -A && git commit -m "Before AI session"
Dann kann Claude auf Basis von git diff arbeiten.
5. File-Kontext gezielt geben
Statt ganz . zu indexieren:
claude /init
# Dann manuell nur relevante Dateien hinzufügen via IDE oder /add
Troubleshooting
"CLAUDECODE env var is set" Error
unset CLAUDECODE
# Oder neue Session starten
Grund: Zwei Claude Code Instanzen laufen parallel. Nur eine Instanz pro Projekt erlaubt.
Skills werden nicht gefunden
# Sicherstellen, dass Claude Code im Projekt-Root startet
pwd # sollte die Datei mit .claude/ zeigen
claude /doctor # zeigt verfügbare Skills
MCP-Server verbindet nicht
claude /doctor
# "MCP connections: 0" bedeutet Config-Problem
# Prüfe .mcp.json auf Syntax
Context zu groß
claude /compact
# Neuer Checkpoint wird erstellt
Checkliste
- Claude Code installiert (
claude --versionfunktioniert) - Projekt initialisiert (
ls .claude/CLAUDE.mdexistiert) -
.claude/CLAUDE.mdangepasst (Projekt-spezifische Regeln) - IDE-Extension installiert (VS Code / JetBrains / Vim)
- MCP-Server konfiguriert (falls benötigt)
- Erste Session erfolgreich (
claude /doctorzeigt grüne Checkmarks) - Git-Workflow etabliert (Commits vor großen Changes)
