Можливості

Перемикання на наступний обліковий запис

Останнє оновлення 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 його не чіпає, тож пробний запуск не просуває ротацію вперед.