Flera Claude Code-konton på en enhet
Hur du använder två (eller fler) Claude Code-konton parallellt — personligt och företag — med fullständig isolation med en enda miljövariabel.
Jag använder Claude Code dagligen — för personliga projekt och för jobbet. Problemet: det är två helt olika konton med olika OAuth-sessioner, olika CLAUDE.md-instruktioner, olika MCP-servrar och separerat projektminne. Så här kör jag dem parallellt på en enhet med ett enda shell-alias.
Problemet
Claude Code lagrar allt i ~/.claude som standard — OAuth-token, konversationshistorik, global CLAUDE.md, projektminne, MCP-serverkonfigurationer och inställningar. Med två konton behöver du två helt separata världar:
- Personligt konto: egen Max/Pro-prenumeration, personlig CLAUDE.md med dina preferenser, dina MCP-servrar (Obsidian, personliga verktyg)
- Företagskonto: företagsplan, arbets-CLAUDE.md med Jira/Slack-integrationsinstruktioner, företagets MCP-servrar
- Olika OAuth-sessioner: du kan inte vara inloggad på två konton i samma konfigurationskatalog
- Separerat projektminne: du vill inte att arbetskontext läcker in i personliga sessioner och vice versa
Att logga ut och in varje gång du byter kontext är inte ett alternativ. Du förlorar sessionstillståndet, och det är helt enkelt smärtsamt.
Lösningen: CLAUDE_CONFIG_DIR
Claude Code respekterar en enda miljövariabel: CLAUDE_CONFIG_DIR. Sätt den till vilken sökväg som helst, och Claude använder den katalogen istället för ~/.claude för allt — auth, historik, inställningar, minne. Hela setupen tar 60 sekunder.
Steg 1: Skapa en andra konfigurationskatalog
Välj ett namn som passar ditt användningsfall:
mkdir ~/.claude-workKlart. Claude fyller den med nödvändig struktur vid första start.
Steg 2: Autentisera det andra kontot
Kör Claude en gång med den nya konfigurationskatalogen för att trigga OAuth-login:
CLAUDE_CONFIG_DIR=~/.claude-work claudeWebbläsaren öppnas. Logga in med ditt företagskonto. OAuth-token sparas i ~/.claude-work — helt separat från din personliga session i ~/.claude.
Steg 3: Lägg till ett shell-alias
Lägg till detta i din shell-konfiguration så du inte behöver komma ihåg variabeln:
alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'Ladda om din shell:
source ~/.zshrcVad du får
Nu har du två helt isolerade Claude-miljöer:
claude— startar med personligt konto, personlig CLAUDE.md, personligt minneclaude-work— startar med företagskonto, arbetsspecifik CLAUDE.md, separat minne- Isolerad historik: arbetskonversationer stannar i arbetet, personliga stannar personliga
- Separata MCP-servrar: din personliga Obsidian vault MCP syns inte i arbetssessioner
- Oberoende inställningar: olika tillåtna verktyg, olika behörighetsnivåer, olika modellpreferenser per konto
Hur det fungerar under huven
Konfigurationskatalogen är den enda sanningskällan för Claude Codes tillstånd. Här är vad som lever inuti varje:
~/.claude/ ← personal account
├── CLAUDE.md ← personal global instructions
├── projects/ ← personal project memory
├── settings.json ← personal permissions & MCP servers
└── ... ← OAuth session, history, cache
~/.claude-work/ ← corporate account
├── CLAUDE.md ← company-specific instructions (Jira, Slack, etc.)
├── projects/ ← separate project memory
├── settings.json ← different MCP servers, permissions
└── ... ← separate OAuth sessionNär du kör claude-work läser Claude allt från ~/.claude-work. Den vet inte att ~/.claude existerar. De två instanserna är helt oberoende — du kan till och med köra dem samtidigt i olika terminalflikar.
Skalning till N konton
Mönstret utökas till valfritt antal konton. Frilansare med flera kunder? Lägg till fler alias:
# Personal (default — no alias needed)
# Just run: claude
# Corporate
alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'
# Freelance client
alias claude-client='CLAUDE_CONFIG_DIR=~/.claude-client claude'Varje alias får sin egen konfigurationskatalog, sin egen OAuth-session, sin egen CLAUDE.md med kundspecifika instruktioner.
Praktiska tips
- Namnge kataloger tydligt:
~/.claude-work,~/.claude-clientname— du tackar dig själv när det finns tre eller fyra - Skriv skräddarsydd CLAUDE.md för varje: arbets-CLAUDE.md kan innehålla företagsspecifika instruktioner (Jira-tickets, Slack-kanaler, deployment-procedurer). Den personliga förblir mager.
- Olika MCP-servrar per konto: konfigurera arbetsverktyg (Jira MCP, Slack MCP, interna API:er) bara i arbetskonfigurationen. Håll din personliga ren.
- Kolla vilket konto som är aktivt: kör
claude config listi en session om du är osäker — visar sökvägen till konfigurationskatalogen
Där den här lösningen inte räcker till
CLAUDE_CONFIG_DIR isolerar per konto, inte per projekt. Inuti en enskild profil ser Claude varje MCP-server du någonsin har registrerat för det kontot — tvärs över alla dina projekt. För rent personlig användning är det oftast okej. I det ögonblick du har flera produktionskritiska projekt under ett konto, särskilt i överlappande domäner som fakturering, adminverktyg eller infrastruktur, introducerar det en konkret risk mellan projekt: en AI-assistent kan anropa ett verktyg från projekt A medan den jobbar med projekt B, särskilt när båda exponerar liknande namngivna operationer.
Profilmönstret besvarar frågan which account am I in?. Det besvarar inte frågan which project's tools should be active right now?. För arbete med högre insatser, stapla ett andra isolationslager ovanpå kontouppdelningen:
- En profil per produktionskritiskt projekt, inte bara per konto: istället för
~/.claudeoch~/.claude-work, skapa~/.claude-work-billingoch~/.claude-work-admin. Varje profil ser bara de MCP-servrar den faktiskt behöver. - Projektspecifik MCP via
.mcp.json: commit:a en.mcp.jsoni projektroten som listar bara det projektets MCP-servrar. Claude plockar upp dem när den startas från den katalogen. Håll din globala konfiguration minimal — bara universella verktyg (anteckningar, sökning), inga produktionsendpoints. - Namnge MCP-servrar otvetydigt: undvik generiska namn som
admin,billing,mcp-server. Prefixa med projektet:acme_billing_prod,acme_admin_stage. Ett beskrivande namn tvingar fram en paus när något är på väg att anropas från fel kontext. - Granska varje MCP-verktygsanrop innan du godkänner: anrop som
*_create_*,*_delete_*,*_charge_*förtjänar en medveten andra blick. Vilken hastighet du än vinner på rakt av automatiskt godkännande avdunstar första gången ett verktyg från fel projekt avfyras mot produktion.
Den allmänna regeln: dela upp profiler aggressivt, håll produktionsklar MCP utanför default-profilen, och behandla överlapp i verktygsnamn mellan projekt som en smell värd att refaktorera.
Slutsats
En miljövariabel. Ett alias. Fullständig isolation mellan konton. Ingen logout/login-dans, inga konfigurationskonflikter, inget kontextläckage. Den typen av lösning som är nästan besvikande enkel — men det är precis det som gör den bra. Sätt upp en gång och tänk aldrig på det igen.