Zum Inhalt

Claude Code

Konfiguration der Claude-Code-Installation auf der Dev-Workstation. Der maßgebliche, jeweils aktuelle Bestand steht in INVENTORY.md im Repo claude-code-setup; diese Seite beschreibt die Struktur und die Entscheidungen dahinter.

Die Dotfiles selbst liegen zentral im Repo dotfiles-claude und werden nach ~/.claude/ verlinkt.

Leitlinie: CLI-first

Wo es eine CLI gibt, wird die CLI genommen — nicht ein lokaler MCP-Server. Der Grund stammt noch vom Raspberry Pi mit seinen 4 GB, gilt aber weiter: Jeder lokale MCP-Server belegt dauerhaft 50–200 MB.

Bedarf Werkzeug Nicht
Doku-Lookup ctx7-CLI Context7 als lokaler Server
GitHub gh-CLI GitHub-MCP-Server
Web-Suche Exa (remote) lokale Suchserver
Supabase supabase-CLI Supabase-MCP

Remote-MCP-Server über claude.ai sind davon ausgenommen — sie laufen nicht auf der Maschine. Lokale Prozesse starten nur gitnexus und der Playwright-MCP, letzterer bei Bedarf über npx.

Absicherung

Zwei Ebenen greifen ineinander: eine Deny-Liste in settings.json und Hooks, die Befehle vor der Ausführung prüfen.

Deny-Liste

Gesperrt Grund
rm -rf *, rm -fr * Rekursives Löschen
sudo * Alle sudo-Befehle
mkfs *, dd * Disk-Operationen
curl * \| bash*, wget * \| bash* Pipe-to-Shell
git push --force* Force-Push
git reset --hard* Verwerfen lokaler Arbeit
Edit(~/.bashrc), Edit(~/.zshrc) Shell-Konfiguration
Edit(~/.ssh/**), Read(~/.ssh/**) SSH-Schlüssel
Read(~/.gnupg/**), Read(~/.aws/**), Read(~/.azure/**), Read(~/.kube/**) Zugangsdaten
Read(~/.git-credentials), Read(~/.docker/config.json) Weitere Secrets

Hooks

Zeitpunkt Hook Wirkung
PreToolUse (Bash) rtk-rewrite.sh Schreibt Befehle auf token-sparende rtk-Äquivalente um
PreToolUse (Edit/Write) block-sensitive.sh Blockiert .env, secrets/ und Lock-Dateien
PreToolUse (Grep/Glob/Bash) gitnexus-hook.cjs Reichert um Kontext aus dem Code-Graphen an
PostToolUse (Edit/Write) lint-on-write.sh Lintet automatisch: ruff, shellcheck, terraform fmt, yamllint, tsc, hadolint
PostToolUse (Bash) gitnexus-hook.cjs Prüft, ob der Index veraltet ist

Zwei Regeln des Force-Push-Schutzes haben praktische Folgen: Nach einem Rebase wird nicht force-gepusht, sondern ein neuer Branch gepusht und der alte PR mit Verweis geschlossen. Und .env-Dateien kann Claude nicht anlegen — dafür nutzen Compose-Dateien ${VAR:?meldung} und eine ENV-Tabelle in der Doku.

Agents und Skills

Zwei eigene Subagents:

Agent Modell Zweck
security-reviewer Opus OWASP Top 10, Injection, Auth, Secrets, Abhängigkeiten
infra-reviewer Sonnet Docker, Traefik, Terraform, Bash, Netz und Härtung

Dazu lokale Skills, unter anderem homelab-infra (Hosts, Ports, Storage, Domains — ohne Secrets), docker-compose-gotchas, infra-review, setup-dependabot-renovate und merk-global für den projektübergreifenden Wissens-Layer.

Regeln unter ~/.claude/rules/ gelten dauerhaft: context7.md (CLI statt MCP für Doku) und gotchas.md — eine gepflegte Liste von Fallstricken nach dem Muster Symptom → Fix, begrenzt auf 150 Zeilen, damit sie nicht ausufert.

Plugins

15 aktive Plugins aus acht Marketplaces. Die wichtigsten Gruppen:

Quelle Plugins
Anthropic superpowers, feature-dev, commit-commands, pr-review-toolkit, claude-md-management, frontend-design, playwright, ralph-loop, security-guidance
Trail of Bits ask-questions-if-underspecified, audit-context-building, insecure-defaults, modern-python
Weitere cloudflare, home-assistant-skills

Das Cloudflare-Plugin bringt elf Skills, zwei Commands und fünf remote MCP-Server mit.

MCP-Server aus Plugins nicht zusätzlich von Hand eintragen

Die Cloudflare-Server sind in ~/.claude/plugins/marketplaces/cloudflare/.mcp.json definiert. Ein zusätzlicher Eintrag in ~/.claude.json erzeugt Duplikate.

Bewusst nicht installiert: das TypeScript-LSP-Plugin (über 500 MB RAM) und WarpGrep (GitNexus deckt den Bedarf ab).

Modell-Einstellungen

"alwaysThinkingEnabled": true,
"effortLevel": "high"

Extended Thinking ist dauerhaft aktiv. Das erhöht die Token-Kosten je Anfrage, verbessert aber die Ergebnisse bei Architektur- und Debugging-Aufgaben deutlich.

Statusline

statusline.sh zeigt Modell, Verzeichnis, Branch, Kontextverbrauch, Kosten, Sitzungsdauer und Cache-Trefferquote:

[Opus 5] 📁 homelab-docs │ 🌿 docs/gesamtueberarbeitung-aiserver
████████⣿⣿⣿⣿ 67% │ $1.24 │ 14m 32s │ ↻82%

Der Balken färbt sich ab 50 % gelb und ab 80 % rot — dann steht die Kontext-Verdichtung bevor. Der Prozentwert stammt aus Claude Codes remaining_percentage und rechnet die Reserve dafür bereits ein.

Historisches

  • agentmemory lief von Mai bis Juli 2026 als sitzungsübergreifendes Projektgedächtnis und war die einzige bewusste Ausnahme von der CLI-first-Linie. Am 07.07.2026 abgeschaltet — Dienst, zwölf Hooks und der MCP-Eintrag entfernt. Der systemd-User-Service ist inaktiv, sein Port ist nicht mehr offen.
  • tmux für persistente Sitzungen war auf dem headless betriebenen Pi zwingend, weil ein SSH-Abbruch sonst die Sitzung mitnahm. Auf dem Laptop ist es nur noch Komfort.