← Back to home

Provider Setup

Configure Anthropic, AWS Bedrock, Google Vertex, or Anthropic-compatible proxies in AAA Code.

AAA Code can route conversations through multiple LLM backends. This guide covers how to connect each supported provider.

Quick start — Anthropic direct (zero config)

Easiest path. Requires the Claude Code CLI.

  1. Install: npm i -g @anthropic-ai/claude-code
  2. Log in: claude login
  3. Launch AAA Code. That’s it — your existing Claude Code credentials are reused automatically.

Adding a provider

In AAA Code, open Settings → Providers and click + Add Provider. Pick a provider type, fill in the form, then click Add. The first provider you add becomes the active one automatically; switch providers later from the same dropdown.

Provider types

Anthropic direct

  • Where to get a key: console.anthropic.com/settings/keys
  • What to paste: the sk-ant-… string into the API key field.
  • Tip:leave the API key blank if you’ve already run claude login — AAA Code will fall back to the ambient OAuth token.
  • Subscription usage: once logged in via claude login, the /usage panel will display your Pro / Max / Team rate-limit windows after the first turn. See the usage guide for what each provider exposes.

Anthropic-compatible presets

For providers that speak Anthropic’s wire format at their own endpoint. Presets fill in the base URL for you; you only paste the API key.

PresetWhere to get a key
DeepSeekplatform.deepseek.com/api_keys
Zhipu GLMbigmodel.cn/usercenter/apikeys
Kimiplatform.moonshot.cn/console/api-keys
MiniMaxminimaxi.com/user-center/…/interface-key

After pasting the key, fill in the Main / Haiku / Sonnet / Opusmodel-ID slots with each provider’s actual model names (check their docs — typically things like deepseek-chat, moonshot-v1-8k, etc). Leave any slot blank to mark it “not available” on that provider.

Anthropic-compatible custom

For self-hosted proxies like LiteLLM, OpenRouter’s Anthropic-compat endpoint, or your own reverse proxy.

  • Base URL: the full URL to the Anthropic-format endpoint (e.g. https://litellm.example.com/anthropic).
  • API key: whatever your proxy expects.

AWS Bedrock

Requires an AWS account with Bedrock model access for the Anthropic models you want to use.

  • Ambient credentials: if your ~/.aws/credentials or aws sso login is already set up, AAA Code auto-detects this. You only need to fill in the AWS Region.
  • Inline credentials: otherwise, paste an access key ID + secret. Optional session token for temporary credentials.
  • Model IDsuse Bedrock’s versioned ARN format, e.g. anthropic.claude-sonnet-4-6-20251022-v1:0. Find the exact strings in the Bedrock model catalog.

Google Vertex

Requires a GCP project with the Vertex AI API enabled and Claude model access via partner marketplace.

  • Project ID + Region: the GCP project ID and the Vertex region (e.g. us-central1).
  • Ambient ADC: run gcloud auth application-default login once. AAA Code detects the resulting credentials file automatically.
  • Service-account JSON: alternatively, provide a path to a GCP service-account JSON file.
  • Model IDs use Vertex’s naming, e.g. claude-sonnet-4-6@20251022. See the Vertex partner model docs.

Switching providers

Use the Active dropdown in Settings → Providers. The switch takes effect for new chats; chats already open continue with whatever provider was active when they started.

Picking a model per chat

The chat input bar has a small dropdown next to the permission-mode selector. It shows the 4 logical slots (Main / Haiku / Sonnet / Opus) — each slot maps to the active provider’s corresponding model ID (from the form fields when you added the provider).

If a slot is greyed out, that means the active provider doesn’t have a model ID configured for that tier. Edit the provider in Settings → Providers to add one.

You can also type /model <slot-name> in the chat input — for example /model sonnet. To override the model for a single message, type a raw model ID instead: /model claude-sonnet-4-6-20251022.

Storage and security

Provider configurations and API keys are stored in plaintext JSON at ~/.claude/aaa-code/providers.json with 0o600 permissions. This matches how Claude Code CLI itself stores credentials cross-platform (via ~/.claude/.credentials.json).

If your threat model requires encrypted-at-rest credentials, consider full-disk encryption (FileVault on macOS, BitLocker on Windows, LUKS on Linux).