Возможности

Переключение на следующий аккаунт

Обновлено 19 октября 2026 г.
Проверено с ccam 0.6.0 и Claude Code 2.1.302

Эта страница переведена с английского машинным способом. Исправления приветствуются. Редактировать эту страницу на GitHub

На этой странице

ccam next открывает Claude Code от имени другого аккаунта, не требуя указывать его имя. Используйте его, когда аккаунт достиг лимита использования: обычный ccam next берёт аккаунт, следующий за последним использованным, --auto берёт аккаунт с наибольшим запасом в 5-часовом окне, а --continue продолжает последний разговор в новом аккаунте.

Использование

ccam next                       # the account after the one you used last
ccam next --auto                # the account with the lowest 5-hour usage
ccam next --continue            # the next account that shares history, with claude --continue
ccam next -c --auto             # both: lowest usage among accounts sharing history
ccam next -- -p "summarize"     # pass arguments to claude after --
ccam --dry-run next --auto      # print the choice and the command, start nothing
$ ccam --dry-run next
→ personal → work
CLAUDE_CONFIG_DIR=/home/you/.local/share/ccam/profiles/work /usr/local/bin/claude

ccam выводит переключение в виде → <from> → <to> в стандартный поток ошибок, а затем запускает Claude Code от имени нового аккаунта так же, как ccam <name>. <from> означает последний использованный аккаунт. Аргументы после -- передаются в claude без изменений.

Параметры

Параметр Действие По умолчанию
--auto Выбрать аккаунт с входом и наименьшим использованием за 5 часов, пропуская аккаунты со 100% выкл.
-c, --continue Рассматривать только аккаунты, которые делят историю разговоров с последним использованным аккаунтом, и запускать claude --continue выкл.
-- <claude args> Аргументы, передаваемые в claude после собственных аргументов ccam нет
--dry-run Учитывается: выводит → <from> → <to> и командную строку, которую выполнил бы, не запуская Claude Code и не записывая запуск выкл.

--auto и --continue можно использовать вместе. С --continue флаг --continue ставится перед вашими аргументами.

Как это работает

Каждый запуск через ccam записывает время в ~/.local/state/ccam/last-used/<name>. ccam next читает эти файлы, проверяет, в каких аккаунтах выполнен вход, и делает выбор.

  1. cli.candidates строит по одному next.Candidate на аккаунт из config.toml: аккаунт, время его последнего запуска (launcher.LastUsed) и наличие входа (creds.Has: читаемый .credentials.json или, в macOS, элемент Связки ключей).
  2. Без --auto next.Rotate сортирует аккаунты по номеру слота и находит аккаунт, запущенный последним. С него вы и переключаетесь. Если ни один аккаунт ещё не запускался, это аккаунт с наименьшим слотом.
  3. Оттуда он идёт вперёд по порядку слотов, переходя от последнего слота к первому, и возвращает первый аккаунт, в котором выполнен вход.
  4. launcher.LaunchWith подготавливает и запускает выбранный аккаунт точно так же, как ccam <name>: проверяет ссылки аккаунта, применяет общий доступ к MCP, регистрирует сессию и заменяет ccam на claude через syscall.Exec.

Обход начинается с последнего использованного аккаунта и останавливается на первом аккаунте с входом после него:

work запускался последним, поэтому обход начинается после него. У side нет входа, он пропускается, и выбирается lab. Если бы из lab тоже был выполнен выход, обход вернулся бы к personal (% len на схеме). Ротация никогда не возвращает аккаунт, с которого она началась: если другого аккаунта с входом нет, она завершается ошибкой.

--auto

--auto выбирает по использованию, а не по порядку слотов. cli.pickAuto оставляет аккаунты с входом, одновременно запрашивает использование всех этих аккаунтов через тот же Fetcher.FetchAll, что и ccam usage, и передаёт выбор usage.Best():

usage.Best() берёт наименьший процент за 5 часов и пропускает аккаунты со 100% или с неизвестным использованием за 5 часов. Запрос подчиняется правилам ccam usage: данные моложе 60 секунд используются повторно, на каждый аккаунт отводится 3 секунды, а аккаунт, который не отвечает или чей вход истёк, оценивается по сохранённым данным. Сохранённое окно, время сброса которого прошло, считается за 0%, поэтому аккаунт, окно которого с тех пор сбросилось, не пропускается. --auto никогда не обновляет токены. В отличие от обычной ротации, --auto может выбрать последний использованный аккаунт, если у него по-прежнему наибольший запас.

--continue

--continue в Claude Code открывает самый последний разговор в текущей папке, а это работает, только если новый аккаунт видит этот разговор. Поэтому с --continue ccam рассматривает только аккаунты из той же группы history, что и последний использованный аккаунт, а затем ставит --continue перед вашими аргументами. Аккаунты, у которых история local, ни с кем её не делят, поэтому --continue из такого аккаунта всегда завершается ошибкой. Сначала включите общий доступ командой ccam share <name> --history on (см. общий доступ).

Безопасность и особые случаи

  • Аккаунты без входа никогда не выбираются. Если другого аккаунта с входом нет, обычный ccam next завершается с сообщением no logged-in account other than <name>.
  • С --continue, если ни один аккаунт не делит историю: no other account shares conversation history with <name>. Turn it on with `ccam share <name> --history on`.
  • С --auto, если нет ни одного аккаунта с входом: no logged-in account to pick. Если каждый аккаунт заполнен или его использование неизвестно: no account with known usage and headroom (see `ccam usage`).
  • --auto выполняет сетевые запросы даже с --dry-run. Он только читает и никогда не записывает файлы токенов.
  • Выбранный аккаунт запускается тем же путём, что и ccam <name>, поэтому действуют те же проверки, включая предупреждение, когда в этой папке уже работает другой Claude Code с той же историей.
  • last-used записывается, только когда Claude Code действительно запускается. --dry-run его не трогает, поэтому пробный запуск не сдвигает ротацию.