# Agent accounts

> Every Claude and ChatGPT/Codex account of your organization in one list, with how much of each usage window is left and when it resets.

## Your accounts in one place

Your organization's Claude and ChatGPT/Codex accounts, subscription sign-ins and API keys alike, sit in one list.
Each shows its plan, its status, the threads on it and every usage window with its reset time, so you see how much
room is left before you start work. The account you signed in to cloud Claude with, and your synced Codex login, are
already in it.

```text
$ shard agents accounts
Claude
  claude:1  marc@example.com (Max, in use) · Signed in
            5-hour 43% (resets in 2h 10m) · Weekly 18% (resets in 4d 8h)
ChatGPT / Codex
  codex:1   marc@example.com (Pro, in use) · Signed in
            5-hour 12% (resets in 3h 30m) · Weekly 35% (resets in 4d 23h)
```

`shard agents accounts usage` draws every window as a bar; `--json` prints the list as the API returns it. The macOS
menu bar (0.6.0+) shows the same accounts under **Accounts**.

## Usage windows

| Provider | Windows | Read from |
| --- | --- | --- |
| Claude subscription | `five_hour`, `seven_day`, and the weekly `seven_day_opus` and `seven_day_sonnet` limits where the plan has them | Every response while threads run, and a regular check |
| ChatGPT / Codex subscription | `primary` (5 hours) and `secondary` (weekly) | Every Codex turn |
| API key | None: pay as you go | |

Each window has `used_percent` and `resets_at`. `as_of` says when the newest reading was taken.

## Status

| Status | Meaning |
| --- | --- |
| Signed in (`signed_in`) | Ready for threads |
| Low (`low`) | A usage window is at 90 % or more |
| Limited (`limited`) | The provider takes new work on it again at the window's `resets_at` |
| Expired (`expired`) | Sign in again: `shard agents accounts add claude` (or `codex`) |

## Add, move and remove accounts

| | CLI 0.18.0+ | TypeScript SDK 0.24.0+ | Python SDK 0.20.0+ |
| --- | --- | --- | --- |
| List | `shard agents accounts [--provider claude\|codex]` | `cloud.agentAccounts.list()` | `client.agent_accounts.list()` |
| Sign in another account | `shard agents accounts add claude\|codex` | `signIn()`, then `completeSignIn()` | `sign_in()`, then `complete_sign_in()` |
| Add an API key | `pbpaste \| shard agents accounts add claude --api-key-stdin` | `addApiKey(provider, key)` | `add_api_key(provider, key)` |
| Move | `shard agents accounts move claude:2 up` | `update(id, { position })` | `update(id, position=...)` |
| Remove | `shard agents accounts remove claude:2` | `remove(id)` | `remove(id)` |

A sign-in runs the provider's own login (`claude auth login`, `codex login --device-auth`) in a cloud VM: the CLI
opens the sign-in page in your browser and the login goes straight to your account's encrypted vault. API keys are
write-only. Accounts are named by `claude:<n>` or `codex:<n>` (their place in the list), email, label or id.

Agents read the list with the MCP tool `agent_accounts_list` (MCP 0.17.0+) to see the room each account has before
they start work; adding and removing accounts stays with you.
