111 lines
3.7 KiB
Markdown
111 lines
3.7 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/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/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) |
|
|
| `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
|