The Jerusalem PostQatari electricity lifeline for Lebanon includes two power plants, LNG supply dealESPN DeportesAmérica: 30 jugadores en 11 partidos y es líderESPNSources: Hurts to miss season after blood clots discovered in QB's lungsRTP DesportoCristiano Ronaldo suspenso 30 dias por abandonar estágio da SeleçãoDaily MaverickDIGITAL POLITICS OP-ED: Borders, ballots, court clashes — how the anti-immigrant movement is setting SA’s elections agendaZDF heuteEntdecken Sie das ZDF-NachrichtenstudioFootball ItaliaYaya Touré: ‘Slovan come to Roma to win, Gasperini was incredible at Atalanta’Business AMLeveringen van Patriot-raketten nemen af terwijl Zelensky om Amerikaanse hulp vraagtWirtualna PolskaPutin chce "nowej Jałty" i zatrzymanie żołnierza podejrzanego o szpiegostwo [SKRÓT DNIA]سكاي نيوز عربيةعلى الملأ.. نتنياهو ينشر فيديو لـ"مكالمة الدعم" مع ترامبThe Independent‘We are the shame of Europe’: France imposes curfews to stop growing riotsCBS SportsArch Manning remains Texas starting QB, but Steve Sarkisian says he needs a 'better version' of Longhorns star
The Daily Newsstand · Free, Always
Monday, October 19, 2026

Два аккаунта Claude Code на одной машине

Translate

У меня два аккаунта Claude. Первый - корпоративный. Второй - личный, за него я плачу сам и пользуюсь им в своих проектах. Оба живут на одной машине, и довольно быстро стало ясно, что держать их желательно раздельно.

Причин несколько. Рабочий код должен идти через рабочий аккаунт, потому что у компании на этот счёт свои правила. Свои проекты я, наоборот, не хочу гонять за счёт работодателя и оставлять в корпоративной истории. Переключаться вручную через /logout и /login можно, но "разве это жизнь".

Хотелось, чтобы аккаунт выбирался сам, в зависимости от того, какой проект я открыл. Оказалось, это очень легко было сделать. Ниже расскажу, как это настроить на Linux. Для Windows делается по аналогии - думаю, разберетесь.

Где Claude Code хранит свои файлы

Всё, что относится к пользователю, Claude Code держит в одной папке. По умолчанию это ~/.claude (папка пользователя в windows). Рядом с ней лежит ещё файл ~/.claude.json.

Что

Где (Linux)

Токен авторизации

~/.claude/.credentials.json

Глобальные настройки

~/.claude/settings.json

Глобальные инструкции

~/.claude/CLAUDE.md

Агенты, skills, плагины

~/.claude/agents/, ~/.claude/skills/, ~/.claude/plugins/

История сессий

~/.claude/projects/

Состояние, MCP-серверы

~/.claude.json

Расположение этой папки меняется переменной окружения CLAUDE_CONFIG_DIR (переменные окружения). Если она задана, Claude Code ищет всё в указанном месте, и .claude.json тоже переезжает внутрь. Две папки дают два независимых Claude Code, у каждого свой аккаунт, свои настройки и своя история.

Личный аккаунт я оставил на старом (стандартном) месте, а для рабочего создал ~/.claude-work:

~/.claude        личный аккаунт
~/.claude-work   рабочий аккаунт
CLAUDE_CONFIG_DIR=~/.claude-work

Осталось добиться, чтобы переменная выставлялась сама и только там, где нужно. Начнём с терминала.

Разделяй и влавствуй

Linux / macOS

Сначала один раз запускаем Claude с новой директорией и логинимся рабочим аккаунтом:

CLAUDE_CONFIG_DIR=“$HOME/.claude-work” claude

Директория пустая, поэтому Claude Code пройдёт первичную настройку и предложит авторизацию. Если не предложит, можно его заставить через /login. Входим рабочим аккаунтом.

Затем добавляем короткую команду ( в данном случае для шелла bash / zsh, строка в ~/.bashrc или ~/.zshrc):

alias claude-work='CLAUDE_CONFIG_DIR="$HOME/.claude-work" claude'

Проверим теперь в любом терминале:

  • claude запускает личный аккаунт

  • claude-work запускает рабочий

Неплохое начало, пол дела сделано. Но что там по vscode?

Используем профили VSCODE

С терминалом разобрались. В VS Code сложнее, потому что расширение Claude Code само запускает процесс claude и про наш алиас не в курсе от слова совсем.

Первое, что приходит на ум, это настройка claudeCode.environmentVariables: список переменных окружения, с которыми оно запускает Claude. Первое, что приходит в голову, — положить её в .vscode/settings.json рабочего проекта. Но увы, это не сработает.

Почему не работает .vscode/settings.json

В package.json расширения у этой настройки указан "scope": "machine". Для VS Code это значит:

  • свойство нельзя задать на уровне рабочей области (.vscode/settings.json): VS Code её просто игнорирует. Это и логично: иначе любой склонированный репозиторий мог бы подменить окружение процесса.

  • настройку можно задать в пользовательских настройках, а у каждого профиля VS Code они свои. На все профили сразу действуют только настройки со scope application, а machine хранится в каждом профиле отдельно.

Отсюда решение: отдельный профиль VS Code для работы.

И тут на помощь нам приходят профили vscode.

Создаем новый профиль:

Ctrl+Shift+P → Profiles: New Profile... (или оно же File → Preferences → Profile → Profiles).

  • Name: например Work

  • Copy from: Default. Таким образом новый профиль унаследует все ваши настройки из базового профиля Default (ну, если вы не использовали профили до этого. Или же скопируйте из того, что используете из нужного вам профиля).

Далее, переключаем vscode в новый профиль (File → Preferences → Profile → Profile (Work)).

переключаемся в новый профиль

переключаемся в новый профиль

И открываем настройки vscode для нашего пользователя (но уже для нового профиля - File → Preferences → Settings):

Важно убедиться, что мы правим настройки для User, не для Workspace

Важно убедиться, что мы правим настройки для User, не для Workspace

Нажимаем редактировать настройку и добавляем в открывшийся json файл (обратите внимание, что claudeCode.environmentVariables - массив, туда и добавляем):

{
  "claudeCode.environmentVariables": [
    { "name": "CLAUDE_CONFIG_DIR", "value": "/home/<user>/.claude-work" }
  ],
  "terminal.integrated.env.linux": {
    "CLAUDE_CONFIG_DIR": "/home/<user>/.claude-work"
  }
}

Также, внимание на <user> - очевидно нужно заменить своим аккаунтом.

Два важных момента:

  1. Путь только абсолютный. ~, $HOME и %USERPROFILE% расширение не распознает: строка передаётся как есть, и Claude будет искать конфиг где угодно, но не там, где нам надо. К сожалению.

  2. Вторая настройка (terminal.integrated.env.*) нужна для встроенного терминала. claudeCode.environmentVariables действует только на панель расширения. Без второй настройки команда claude, набранная во встроенном терминале рабочего окна, запустится под личным аккаунтом. Это ровно та ошибка, от которой мы защищаемся.

Для macos это будет terminal.integrated.env.osx а для винды terminal.integrated.env.windows соотвественно.

Привязываем рабочие папки к профилю

Конечно, переключать вручную профили куда проще, чем переключать аккаунты Клода. Но, vscode позволяет даже это автоматизировать.

Переходим снова в настройки профиля, выбираем наш профиль Work.
В разделе `Folders & Workspaces` добавляем наши рабочие папки с проектами.

Всё. Теперь vscode при открытии любого проекта, будет автоматически переключаться в рабочий профиль, а тем самым - запускать claude-work вместо стандартного claude (а значит авторизовываться под нашим рабочим аккаунтом).
Осталось лишь перезагрузить IDE и проверить, что все работает, как мы настроили.

Проверяем

Открываем любой рабочий проект в редакторе.

  • В рабочем окне VS Code открываем панель Claude и выполняем /status. Мы должны увидеть наш рабочий аккаунт.

  • В встроненном терминале можно выполнить echo $CLAUDE_CONFIG_DIR

  • В обычном терминале ОС можно также проверить /status в claude и claude-code.

Итог

  • Одна переменная CLAUDE_CONFIG_DIR даёт два (или более) полностью независимых Claude Code.

  • В терминале это разные cli-команды: claude , claude-work и тп.

  • В VS Code это профиль Work с claudeCode.environmentVariables и terminal.integrated.env.*.

  • Рабочие папки привязаны к профилю, поэтому аккаунт выбирается тем, какой проект мы открыли.

  • /status помогает быстро убедиться, не слетело ли что-то и в каком аккаунте исполняется текущая сессия. На всякий пожарный.

Если вы решаете ту же задачу иначе, (может через отдельных пользователей ОС, контейнеры или dev containers, или еще как-то) расскажите в комментариях. Интересно сравнить.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.