From ecf731d17c4661e1e0ea9663533c297c08387d3a Mon Sep 17 00:00:00 2001 From: rene Date: Thu, 26 Mar 2026 17:17:29 +0100 Subject: [PATCH] setup-claude-profiles: claude-account Funktion fuer Re-Login claude-account priv|work fuehrt logout, Browser-Oeffnung und login in einem Schritt durch. Dokumentation in CLAUDE.md ergaenzt. --- CLAUDE.md | 6 +++ setup-claude-profiles.sh | 99 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100755 setup-claude-profiles.sh diff --git a/CLAUDE.md b/CLAUDE.md index 1489a62..441dc05 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -115,6 +115,12 @@ die Setup-Skripte nicht heruntergeladen werden. - gitcheck Alias funktioniert in interaktiver Shell (nicht via `zsh -l -c`, das ist normal) - Powerlevel10k Instant Prompt: `POWERLEVEL9K_INSTANT_PROMPT=quiet` muss VOR dem source stehen, nicht in .p10k.zsh (wird sonst ueberschrieben) +### Claude Code Multi-Profile +- Zwei Profile: `claude-priv` (mail@motocamp.de) und `claude-work` (rene@rm202.de) +- Config-Dirs: `~/.claude-priv` und `~/.claude-work` +- `claude-account priv|work` fuer Re-Login (logout, Browser, login) +- Setup: `setup-claude-profiles.sh` richtet Verzeichnisse und Shell-Aliases ein + ### asciiquarium - benoetigt Perl-Modul Term::Animation (nicht in apt verfuegbar) - Abhaengigkeiten: libcurses-perl (apt) + Term::Animation (CPAN) diff --git a/setup-claude-profiles.sh b/setup-claude-profiles.sh new file mode 100755 index 0000000..c3539c9 --- /dev/null +++ b/setup-claude-profiles.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash + +# setup-claude-profiles.sh +# Richtet zwei getrennte Claude-Code-Profile ein (priv/work) +# Verwendung: bash setup-claude-profiles.sh + +set -euo pipefail + +# ── Farben ────────────────────────────────────────────────────────────── +RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m' +ok() { echo -e "${GREEN}[OK] $*${NC}"; } +warn() { echo -e "${YELLOW}[!!] $*${NC}"; } +fail() { echo -e "${RED}[FAIL] $*${NC}"; } + +MARKER="claude-profiles-start" +ZSHRC="$HOME/.zshrc" + +echo "" +echo "============================================" +echo " Claude-Code Multi-Profile Setup" +echo "============================================" + +# ── Claude Code installiert? ──────────────────────────────────────────── +if ! command -v claude &>/dev/null; then + warn "claude nicht gefunden - bitte zuerst installieren (npm install -g @anthropic-ai/claude-code)" +fi + +# ── Bestehende ~/.claude migrieren ────────────────────────────────────── +echo -e "\n=== Migration ===" +if [[ -d "$HOME/.claude" && ! -d "$HOME/.claude-priv" ]]; then + mv "$HOME/.claude" "$HOME/.claude-priv" + ok "~/.claude nach ~/.claude-priv verschoben" +elif [[ -d "$HOME/.claude" && -d "$HOME/.claude-priv" ]]; then + warn "~/.claude und ~/.claude-priv existieren beide - manuelle Migration noetig" +else + ok "Nichts zu migrieren" +fi + +# ── Config-Verzeichnisse anlegen ──────────────────────────────────────── +echo -e "\n=== Verzeichnisse ===" +mkdir -p "$HOME/.claude-priv" "$HOME/.claude-work" +ok "~/.claude-priv angelegt (mail@motocamp.de)" +ok "~/.claude-work angelegt (rene@rm202.de)" + +# ── Aliases in .zshrc ────────────────────────────────────────────────── +echo -e "\n=== Shell-Aliases ===" +if [[ ! -f "$ZSHRC" ]]; then + fail "$ZSHRC existiert nicht" + exit 1 +fi + +if grep -qF "$MARKER" "$ZSHRC"; then + warn "$ZSHRC - Aliases bereits vorhanden" +else + { + echo "" + echo "# claude-profiles-start" + echo "alias claude-priv='CLAUDE_CONFIG_DIR=~/.claude-priv command claude' # mail@motocamp.de" + echo "alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work command claude' # rene@rm202.de" + echo 'alias claude='"'"'echo "Bitte claude-priv oder claude-work verwenden."'"'"'' + cat << 'FUNC' +claude-account() { + local profile="$1" + if [[ "$profile" != "priv" && "$profile" != "work" ]]; then + echo "Verwendung: claude-account priv|work" + return 1 + fi + local config_dir="$HOME/.claude-${profile}" + echo "==> Claude Code abmelden (${profile})..." + CLAUDE_CONFIG_DIR="$config_dir" command claude /logout + echo "" + echo "==> Browser oeffnen - bitte ab- und neu anmelden..." + open "https://console.anthropic.com" + read -r "?Wenn im Browser fertig, Enter druecken..." + echo "" + echo "==> Claude Code anmelden (${profile})..." + CLAUDE_CONFIG_DIR="$config_dir" command claude /login +} +FUNC + echo "# claude-profiles-end" + } >> "$ZSHRC" + ok "$ZSHRC - Aliases eingefuegt" +fi + +# ── Zusammenfassung ───────────────────────────────────────────────────── +echo "" +echo "============================================" +echo " Fertig! Profil-Zuordnung:" +echo " claude-priv -> mail@motocamp.de" +echo " claude-work -> rene@rm202.de" +echo "============================================" +echo "" +echo "Naechste Schritte:" +echo " 1. source ~/.zshrc" +echo " 2. claude-priv (mit mail@motocamp.de einloggen)" +echo " 3. claude-work (mit rene@rm202.de einloggen)" +echo "" +echo "Account wechseln: claude-account priv oder claude-account work" +echo ""