Summary
Support using multiple Claude Max accounts to distribute quota across agents, avoiding rate limits and enabling continuous operation.
Problem
When running multiple agents, a single Claude Max account's quota can be exhausted quickly. Currently, all agents share the same ~/.claude/.credentials.json via symlinks, so there's no way to spread load across multiple accounts.
When quota runs out:
- Claude processes exit
- Daemon health check (2 min) detects dead PIDs
- Persistent agents restart in a loop until quota restores
This creates a bad experience when hitting quota limits frequently.
Proposed Solution
Allow configuring multiple Claude accounts and assigning them to different agents.
Configuration
Add account configuration to repo settings:
accounts:
- name: primary
credentials: ~/.claude/.credentials.json
agents: [supervisor, merge-queue]
- name: secondary
credentials: ~/.claude/.credentials-secondary.json
agents: [default]
- name: worker-pool
credentials: ~/.claude/.credentials-workers.json
agents: [workers] # special: all worker agents use this
Or simpler CLI approach:
multiclaude config set-account supervisor ~/.claude/.credentials-account1.json
multiclaude config set-account workers ~/.claude/.credentials-account2.json
Implementation
- Add
account or credentials_file field to agent state
- Modify
linkGlobalCredentials() in daemon.go to use per-agent credential paths
- Add CLI commands for managing account assignments
- Optionally: round-robin workers across multiple accounts
Credential Setup
Users would need to:
claude logout
- Login to account 2
cp ~/.claude/.credentials.json ~/.claude/.credentials-account2.json
- Repeat for additional accounts
- Login back to primary account
Or add a helper command:
multiclaude accounts add secondary # prompts for OAuth login, saves to separate file
Benefits
- Distribute quota across accounts for longer continuous operation
- Isolate high-volume workers from critical supervisor/merge-queue agents
- Enable team scenarios where different team members contribute their quotas
Additional Context
Related code locations:
internal/daemon/daemon.go: linkGlobalCredentials()
internal/state/state.go: Agent struct
pkg/config/paths.go: Path configuration
Summary
Support using multiple Claude Max accounts to distribute quota across agents, avoiding rate limits and enabling continuous operation.
Problem
When running multiple agents, a single Claude Max account's quota can be exhausted quickly. Currently, all agents share the same
~/.claude/.credentials.jsonvia symlinks, so there's no way to spread load across multiple accounts.When quota runs out:
This creates a bad experience when hitting quota limits frequently.
Proposed Solution
Allow configuring multiple Claude accounts and assigning them to different agents.
Configuration
Add account configuration to repo settings:
Or simpler CLI approach:
Implementation
accountorcredentials_filefield to agent statelinkGlobalCredentials()indaemon.goto use per-agent credential pathsCredential Setup
Users would need to:
claude logoutcp ~/.claude/.credentials.json ~/.claude/.credentials-account2.jsonOr add a helper command:
multiclaude accounts add secondary # prompts for OAuth login, saves to separate fileBenefits
Additional Context
Related code locations:
internal/daemon/daemon.go:linkGlobalCredentials()internal/state/state.go: Agent structpkg/config/paths.go: Path configuration