# Claude Code Settings Zentrale Konfiguration für Claude Code, synchronisiert über alle Geräte. ## Setup auf neuem Gerät ### Basis-Setup (alle Geräte) ```bash # 1. Repository klonen git clone ssh://git@gitea.egonetix.de:222/root/claude_settings.git ~/dotfiles/claude_settings # 2. Symlinks erstellen mkdir -p ~/.claude/agents ~/.claude/rules ln -sf ~/dotfiles/claude_settings/settings.json ~/.claude/settings.json ln -sf ~/dotfiles/claude_settings/CLAUDE.md ~/.claude/CLAUDE.md ln -sf ~/dotfiles/claude_settings/statusline-command.sh ~/.claude/statusline-command.sh ln -sf ~/dotfiles/claude_settings/hooks ~/.claude/hooks ln -sf ~/dotfiles/claude_settings/plans ~/.claude/plans ln -sf ~/dotfiles/claude_settings/agents/* ~/.claude/agents/ ln -sf ~/dotfiles/claude_settings/rules/* ~/.claude/rules/ 2>/dev/null || true ``` ### Optional: Nextcloud-Sync (nur auf Geräten mit Nextcloud) Falls Nextcloud auf dem Gerät läuft und die Settings auch dort sichtbar sein sollen: ```bash # Prüfen ob Nextcloud existiert if [ -d ~/Nextcloud/entwicklung ]; then mkdir -p ~/Nextcloud/entwicklung/claude_settings ln -sf ~/dotfiles/claude_settings/settings.json ~/Nextcloud/entwicklung/claude_settings/settings.json ln -sf ~/dotfiles/claude_settings/CLAUDE.md ~/Nextcloud/entwicklung/claude_settings/CLAUDE.md ln -sf ~/dotfiles/claude_settings/statusline-command.sh ~/Nextcloud/entwicklung/claude_settings/statusline-command.sh ln -sf ~/dotfiles/claude_settings/hooks ~/Nextcloud/entwicklung/claude_settings/hooks ln -sf ~/dotfiles/claude_settings/plans ~/Nextcloud/entwicklung/claude_settings/plans ln -sf ~/dotfiles/claude_settings/agents ~/Nextcloud/entwicklung/claude_settings/agents ln -sf ~/dotfiles/claude_settings/rules ~/Nextcloud/entwicklung/claude_settings/rules ln -sf ~/dotfiles/claude_settings/README.md ~/Nextcloud/entwicklung/claude_settings/README.md echo "✓ Nextcloud-Symlinks erstellt" else echo "Nextcloud nicht gefunden - übersprungen" fi ``` **Hinweis:** Nextcloud ist optional. Das Git-Repo ist die "Source of Truth". Die Nextcloud-Symlinks dienen nur dazu, die Dateien auch in der Nextcloud-Oberfläche sichtbar zu machen. ## Inhalt | Datei/Ordner | Zweck | |--------------|-------| | `settings.json` | Globale Einstellungen (Model, Plugins, StatusLine, Hooks) | | `CLAUDE.md` | Globale Instruktionen für Claude | | `statusline-command.sh` | Custom StatusLine Script | | `hooks/` | Session-Hooks (automatische Skripte) | | `plans/` | Implementierungspläne (geräteübergreifend) | | `agents/` | Benutzerdefinierte Agenten | | `rules/` | Modulare Regeln | ## Hooks ### SessionStart Hook Der `session-start.sh` Hook wird bei jedem Start einer Claude Code Session ausgeführt und prüft automatisch auf Updates im Repository. **Was er tut:** - Führt `git fetch` aus - Vergleicht lokalen Stand mit Remote - Zeigt Warnung wenn neue Commits verfügbar sind **Beispiel-Ausgabe bei Updates:** ``` ⚠ Claude Settings: 3 neue Commits verfügbar! → cd ~/dotfiles/claude_settings && git pull ``` ### Eigene Hooks hinzufügen 1. Script in `hooks/` erstellen 2. Ausführbar machen: `chmod +x hooks/mein-hook.sh` 3. In `settings.json` registrieren: ```json { "hooks": { "SessionStart": [...], "PreToolUse": [...], "PostToolUse": [...] } } ``` **Wichtig:** Keine CRLF-Zeilenumbrüche verwenden (nur LF). ## Workflow **Bei Session-Start:** - Hook prüft automatisch auf Updates - Bei Warnung: `cd ~/dotfiles/claude_settings && git pull` **Nach Änderungen:** ```bash cd ~/dotfiles/claude_settings git add -A && git commit -m "Beschreibung" && git push ``` ## Dateien die NICHT synchronisiert werden Diese Dateien sind in `.gitignore` und bleiben lokal: - `.credentials.json` - OAuth-Token - `*.local.json` - Lokale Overrides - `cache/`, `debug/`, `history.jsonl` - Session-Daten