Skip to main content
← Tillbaka till bloggen
claude-codeproductivityclidevtools

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.

Publicerad 5 maj 20264 min läsning

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:

Terminal
mkdir ~/.claude-work

Klart. 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:

Terminal
CLAUDE_CONFIG_DIR=~/.claude-work claude

Webblä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:

~/.zshrc
alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'

Ladda om din shell:

Terminal
source ~/.zshrc

Vad du får

Nu har du två helt isolerade Claude-miljöer:

  • claude — startar med personligt konto, personlig CLAUDE.md, personligt minne
  • claude-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 session

Nä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:

~/.zshrc
# 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 list i 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 ~/.claude och ~/.claude-work, skapa ~/.claude-work-billing och ~/.claude-work-admin. Varje profil ser bara de MCP-servrar den faktiskt behöver.
  • Projektspecifik MCP via .mcp.json: commit:a en .mcp.json i 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.