boshu2/agentops-account-rotation
Switch a caller-selected coding-agent account and report the observed identity. Triggers: "switch account", "rotate coding-agent account".
This is a copy. The original lives at boshu2/account-rotation.
npx skills add https://github.com/boshu2/agentops --skill account-rotation
Choose the credential tool from both host and agent family, perform only the
explicit account switch, and report the identity observed by the matching
runtime.
Verifying identity through the target runtime works because the runtime is the
only party whose opinion matters: credential files can be swapped perfectly
and still authenticate as the old account in an already-running process.
Named failure mode — stale-process identity: declaring the rotation done
while every live session still holds the previous account's tokens in memory.
Anti-pattern: confirming a switch by diffing credential file bytes.
Corrective: ask the matching runtime who it is now, and report whether a new
process is required for the answer to hold.
mutates host credential state and is never implied by repository access.
the names below are this operator's routes, not a universal prescription. On
macOS with Claude credentials the route is claude-acct (Keychain-backed);
file-backed Codex, Gemini, Linux, or WSL credentials use caam. Never use
caam for macOS Claude account operations.
identity.
available, report that absence as a disclosed fact and stop. Never fall back to
diffing credential-file bytes to declare a switch done.
affects a new process.
state, or decide what happens after the switch.
Return the host, agent family, selected tool, requested account/profile, the
identity observed before and after the switch, whether any live runtime still
holds the previous account (a partial rotation), the command exit code, and
whether a new process is required for the new identity to hold.
Take boshu2/agentops-account-rotation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.