Skip to content

Comments

feat: Support for Amazon Bedrock#41

Open
gopinaath wants to merge 1 commit intonumman-ali:mainfrom
gopinaath:main
Open

feat: Support for Amazon Bedrock#41
gopinaath wants to merge 1 commit intonumman-ali:mainfrom
gopinaath:main

Conversation

@gopinaath
Copy link

Summary

Add Amazon Bedrock as a provider for cc-mirror, enabling users to use Claude models via AWS Bedrock with isolated configuration.

  • Add bedrock provider with native AWS SDK authentication
  • Add AWS-themed brand preset (orange/amber colors)
  • Add Amazon Bedrock splash art for wrapper scripts
  • No hardcoded model IDs (user must provide via --model-* flags)

Usage

# Regional model IDs (routes to specific region)
npx cc-mirror quick --provider bedrock --name br \
  --model-sonnet "us.anthropic.claude-sonnet-4-5-20250929-v1:0" \
  --model-opus "us.anthropic.claude-opus-4-5-20251101-v1:0" \
  --model-haiku "us.anthropic.claude-haiku-4-5-20251001-v1:0"

# Global inference profiles (cross-region routing)
npx cc-mirror quick --provider bedrock --name br-global \
  --model-sonnet "global.anthropic.claude-sonnet-4-5-20250929-v1:0" \
  --model-opus "global.anthropic.claude-opus-4-5-20251101-v1:0" \
  --model-haiku "global.anthropic.claude-haiku-4-5-20251001-v1:0"

# Custom inference profile ARN
npx cc-mirror quick --provider bedrock --name br-profile \
  --model-sonnet "arn:aws:bedrock:us-east-1:123456789012:inference-profile/my-profile"

Authentication

Amazon Bedrock uses native AWS SDK credential chain (no API key needed):

  1. AWS_BEARER_TOKEN_BEDROCK - Bearer token (highest priority)
  2. AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY - Explicit credentials
  3. AWS_SESSION_TOKEN - For temporary credentials
  4. AWS_PROFILE - AWS profile name
  5. Default credential chain (~/.aws/credentials, IAM roles)

Implementation Details

  • Sets CLAUDE_CODE_USE_BEDROCK=1 to enable Claude Code's native Bedrock mode
  • Uses authMode: 'none' (like mirror provider) - AWS handles authentication
  • Uses requiresModelMapping: true (like OpenRouter) - no hardcoded model IDs
  • Default AWS_REGION=us-east-1 (overridable)

Test plan

  • E2E tests for Amazon Bedrock provider configuration
  • Tests for regional and global model ID formats
  • Tests for inference profile ARN support
  • Tests for AWS_REGION override via extraEnv
  • Tests for AWS_BEARER_TOKEN_BEDROCK passthrough
  • Verified splash art and brand theme

Files Changed

File Lines Description
src/providers/index.ts +26/-2 Amazon Bedrock provider + buildEnv fix for authMode:'none'
src/brands/bedrock.ts +215 AWS-themed brand preset for Amazon Bedrock (new)
src/brands/index.ts +7 Register Amazon Bedrock brand
src/core/wrapper.ts +26/-1 Amazon Bedrock splash art and colors
src/cli/help.ts +5/-1 Add Amazon Bedrock to provider/brand lists
test/e2e/bedrock.test.ts +491 Comprehensive Amazon Bedrock tests (new)
test/e2e/providers.ts +8 Add Amazon Bedrock to test matrix
README.md +52/-5 Amazon Bedrock documentation
AGENTS.md +47 Amazon Bedrock configuration reference
docs/architecture/overview.md +35/-19 Provider comparison updates for Amazon Bedrock

🤖 Generated with Claude Code

Add Amazon Bedrock as a provider for cc-mirror, enabling users to run
Claude Code with Claude models via AWS Bedrock.

## Key Features

- Native Bedrock mode via `CLAUDE_CODE_USE_BEDROCK=1`
- AWS SDK credential chain authentication (no API key needed)
- Model mapping like OpenRouter - users provide Bedrock model IDs
- Support for regional (us.), global, and inference profile ARN formats
- AWS-themed brand with orange/amber colors

## Usage

```bash
npx cc-mirror quick --provider bedrock --name br \
  --model-sonnet "us.anthropic.claude-sonnet-4-5-20250929-v1:0" \
  --model-opus "us.anthropic.claude-opus-4-5-20251101-v1:0" \
  --model-haiku "us.anthropic.claude-haiku-4-5-20251001-v1:0"
```

## Authentication

AWS credentials are resolved via the standard SDK chain:
- AWS_BEARER_TOKEN_BEDROCK (highest priority)
- AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY
- AWS_PROFILE
- Default credential chain (~/.aws/credentials, IAM roles)

## Files Changed

- src/providers/index.ts - Bedrock provider definition
- src/brands/bedrock.ts - AWS-themed brand preset (new)
- src/brands/index.ts - Register bedrock brand
- src/core/wrapper.ts - Bedrock splash art
- src/cli/help.ts - Add bedrock to CLI help
- test/e2e/bedrock.test.ts - Comprehensive tests (new)
- Documentation updates (README, AGENTS.md, architecture)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant