Files
claude_settings/README.md

114 lines
3.9 KiB
Markdown

# 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