Skip to content

Feature: Multi-account support for quota distribution #280

@colek42

Description

@colek42

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:

  1. Claude processes exit
  2. Daemon health check (2 min) detects dead PIDs
  3. 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

  1. Add account or credentials_file field to agent state
  2. Modify linkGlobalCredentials() in daemon.go to use per-agent credential paths
  3. Add CLI commands for managing account assignments
  4. Optionally: round-robin workers across multiple accounts

Credential Setup

Users would need to:

  1. claude logout
  2. Login to account 2
  3. cp ~/.claude/.credentials.json ~/.claude/.credentials-account2.json
  4. Repeat for additional accounts
  5. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions