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

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

Source: https://ccam.dev/ru/features/next/ · Updated 2026-10-19

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

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

```sh
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
```

```console
$ 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` (см. [общий доступ](https://ccam.dev/ru/docs/sharing.md)).

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

- Аккаунты без входа никогда не выбираются. Если другого аккаунта с входом нет, обычный `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` его не трогает, поэтому пробный запуск не сдвигает ротацию.

## См. также

- [Лимиты использования](https://ccam.dev/ru/features/usage.md)
- [Лимиты использования и переключение аккаунтов](https://ccam.dev/ru/docs/usage-limits.md)
- [Общие MCP-серверы, настройки и история](https://ccam.dev/ru/docs/sharing.md)
- [Порядок работы при достижении лимита](https://ccam.dev/ru/guides/usage-limit-workflow.md)
