← ClaudeAtlas

refresh-claude-accountlisted

Repair a dead or expired Claude Code account by restoring a full OAuth login — re-seed it from a machine that still has a live copy, or re-authenticate with `claude auth login` — then capture it with `cswap add` and export `claude-accounts.json` for the `sync-claude-accounts` skill to distribute. Use when `cswap list` says "re-login needed — refresh token dead", when `cux status` shows an account as EXPRD, when `cswap auto --dry-run` reports null headroom, or when `fleet-refresh-credentials` aborts because the refresh authority holds a dead account.
soulmachine/skills · ★ 3 · AI & Automation · score 76
Install: claude install-skill soulmachine/skills
# Repair a dead Claude account (OAuth) Restores an account to a **full OAuth login** — `accessToken` + `refreshToken` + `expiresAt` + the complete scope set — and produces a `claude-accounts.json` that the `sync-claude-accounts` skill distributes to the rest of the fleet. OAuth is the only credential that works end to end here. It is the only one that can report usage (`/api/oauth/usage` needs `user:profile`), and usage is what drives rotation at all — `cswap auto` is purely usage-polling. cux, which is what the fleet actually rotates with (it is the only layer that can continue an unattended session through a rate limit), is built around the `/login` credential bundle and cannot hold anything else. So a repair that does not end in a full OAuth bundle leaves the account unrotatable. See "Why not setup-tokens" at the bottom. ## Pick the cheap path first | | Path A — re-seed | Path B — re-authenticate | |---|---|---| | **Use when** | Any machine still holds a live copy of this account | The account is dead everywhere | | **Needs a browser** | No | Yes, and the user must drive it | | **Interrupts sessions** | No | Yes — rewrites the machine-global login | | **Effort** | Two commands | Interactive OAuth round trip | Always check Path A first. On a fleet, an account that died on one machine is very often still alive on another — the refresh-token race has a *winner*, not just losers, and the winner's credential is a perfectly good seed. ## Why the refresh token died `cswap