Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
boshu2 avatar

Account Rotation

  • 22 installs
  • 416 repo stars
  • Updated August 5, 2026
  • boshu2/agentops

account-rotation is a Claude skill that routes coding-agent account swaps to the right tool (claude-acct or caam) by host and agent when you hit a rate limit or spread swarm lanes.

About

A router skill for switching coding-agent accounts when you hit a usage or rate limit, or to spread parallel swarm lanes across accounts for more quota. It routes to the right tool by host and agent: claude-acct swaps the Keychain token plus identity for Claude on macOS, and caam swaps the auth file for Codex, Gemini, and Claude on Linux/WSL. It exists because caam's file swap is a no-op for Claude on macOS, whose token lives in the login Keychain.

  • Routes coding-agent account swaps by host and agent: claude-acct for macOS+Claude Keychain, caam for file-based auth
  • Explains why caam is a no-op for Claude on macOS because the token lives in the login Keychain
  • Spreads swarm lanes across separate accounts for parallel quota before launch

Account Rotation by the numbers

  • 22 all-time installs (skills.sh)
  • Ranked #1,273 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

account-rotation capabilities & compatibility

Capabilities
account rotation · swarm lane management · rate limit handling
Platforms
macOS · Linux · WSL
From the docs

What account-rotation says it does

caam swaps the auth **file** (`~/.claude/.credentials.json`, codex/gemini auth files). Correct for file-based auth — **Codex, Gemini, and Claude-on-Linux.**
SKILL.md
A running agent process holds its token in memory; rotation changes what a **new** process picks up, not the live session.
SKILL.md
Parallel quota = put each lane on a different account **before** launching it:
SKILL.md
npx skills add https://github.com/boshu2/agentops --skill account-rotation

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs22
repo stars416
Last updatedAugust 5, 2026
Repositoryboshu2/agentops

What it does

Switch coding-agent accounts on a rate limit and spread swarm lanes across accounts for parallel quota, routing by host and agent.

Who is it for?

Operators running multi-account agent swarms who need to rotate past Claude Max / Codex Pro / Gemini usage limits.

Skip if: Single-account developers who never hit rate limits or run parallel agent lanes.

When should I use this skill?

When you hit a usage limit on a subscription agent and want to keep working on a fresh account, or when spreading swarm lanes across accounts.

What you get

The account swap actually takes on the correct credential layer, and swarm lanes run on separate accounts for parallel quota.

  • Active account swapped per host+agent
  • Swarm lanes on separate accounts

By the numbers

  • 3-line quick-start routing table (macOS+Claude, macOS+Codex/Gemini, Linux/WSL)
  • 2 capture-discipline traps

Files

SKILL.mdMarkdownGitHub ↗

<!-- TOC: Quick Start | Why the Route Exists | claude-acct (Mac+Claude) | caam (everything else) | Capture Discipline | Live-Session Caveat | Swarm Lanes -->

account-rotation — switch coding-agent accounts on a rate limit

The moment: you hit a usage limit on a Claude Max / Codex Pro / Gemini
subscription and want to keep working on a fresh account, or you're spreading
swarm lanes across accounts for parallel quota. The tool depends on the host
— because the credential layer differs by OS+agent. This skill routes; the
tools do the swap.

Quick Start — route first

macOS + Claude            → claude-acct  (Keychain layer)
macOS + Codex/Gemini      → caam         (file layer)
Linux / WSL  + anything   → caam         (file layer)

Why the route exists (the load-bearing fact)

caam swaps the auth file (~/.claude/.credentials.json, codex/gemini auth files). Correct for file-based auth — Codex, Gemini, and Claude-on-Linux. But current Claude Code on macOS stores its token in the login Keychain (security service Claude Code-credentials) and ignores that file. So caam activate/next for Claude on Mac are no-ops — they swap a file Claude doesn't read. That one exception is the whole reason this router exists.

macOS + Claude → claude-acct (Keychain swap)

A full Claude account on Mac = two pieces, both swapped together: the Keychain token + the ~/.claude.json `.oauthAccount` identity block (claude auth status reads the email from the latter; a token-only swap leaves the identity pinned to the last login → "only the current account works"). claude-acct swaps both via security add/delete-generic-password -A (-A = no GUI prompt, so headless workers don't stall) + a JSON splice of .oauthAccount.

claude-acct list                 # captured accounts → real email each maps to
claude-acct current              # which account a NEW claude starts on
claude-acct use <name>           # swap (token + identity)
claude-acct login <name> [email] # one-time capture (see Capture Discipline)

Tool: dotfiles/bin/claude-acct.

macOS+Codex/Gemini & all Linux/WSL → caam (file swap)

caam is the adopted file-based rotator and is correct here. It self-documents (there is intentionally no caam skill — the CLI is the doc):

caam status <tool>            # vault + health
caam next <tool>              # rotate to next non-cooldown account
caam use <tool> <profile>
caam --help                   # full surface

On bushido (Ubuntu) this is the only rotator you need — file-based auth means caam's swap actually takes.

Capture Discipline (the two traps — apply to both tools)

1. Distinct token bytes ≠ distinct accounts. OAuth re-issues a fresh token each login, so N logins to the same account produce N different hashes. Verify by account email, not token hash. (claude-acct warns on collision.) 2. The browser captures whichever account the provider is signed into. Email login-hints are ignored when a session exists. Log out (or use a Private/Incognito window) before each capture login, or it re-grabs the current account.

Live-Session Caveat

A running agent process holds its token in memory; rotation changes what a new process picks up, not the live session. To move the session you're in: rotate, then relaunch the CLI. Exactly right for spawning swarm lanes.

Swarm Lanes (the real unlock)

Parallel quota = put each lane on a different account before launching it:

# Mac (Claude)
claude-acct use acct-a && <spawn lane A>;  claude-acct use acct-b && <spawn lane B>
# Linux / Codex
caam use codex acct-a   && <spawn lane A>;  caam next codex      && <spawn lane B>

A dispatcher's limit-hit hook calls claude-acct use on Mac / caam next on Linux, then re-dispatches the lane's work.

Navi-rotate (the cross-model helper rotates a peer — trilateral)

In the trilateral (2 Claude builders + 1 Codex Navi), the Navi runs on a DIFFERENT runtime/account, so it is UNAFFECTED by a builder's Claude rate limit — making it the right agent to rotate a limited builder. navi-rotate (dotfiles/bin/navi-rotate) wraps claude-acct with rotation-order + peer-relaunch signaling, so the move is one repeatable command:

navi-rotate <peer-tmux-session> [--to <account>] [--dry-run]
# Navi: next account (claude-acct list order) -> claude-acct use <next>
#       -> am + atm signal the peer to relaunch.

Per the Live-Session Caveat: the swap lands on the peer's NEXT launch, not its live session — continuity rides the durable substrate (worktree + bead + handoff), so the peer resumes from its last bead on the fresh account. This is the repeatable, cross-model-driven form of the dispatcher limit-hit hook above. Routed correctly: the swap is always claude-acct for Mac+Claude (NEVER caam).

Related skills

FAQ

Why doesn't caam work for Claude on macOS?

Claude Code on macOS stores its token in the login Keychain and ignores the auth file caam swaps, so caam activate/next are no-ops for Claude on Mac; use claude-acct instead.

Does rotation move my live session?

No. A running agent holds its token in memory; rotation changes what a new process picks up, so you must relaunch the CLI to move to the new account.

Automation & Workflowsagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.