juggernaut-bedrock
Claude Code → Amazon Bedrock in one command.
Juggernaut is a cross-platform CLI that wires Claude Code to Amazon Bedrock instead of Anthropic's direct API. Install Claude Code with Anthropic's installer, run one apply, then keep typing claude.
Built for developers shipping with GenAI today: IAM and SSO for teams, API keys for solo runs, and a doctor command when something's off.
Install
curl -fsSL https://claude.ai/install.sh | bash
npm install -g juggernaut-bedrockOr try it without installing globally:
npx juggernaut-bedrock versionWorks on macOS, Linux, Windows, and WSL — x64 and arm64.
Upgrading
Older Juggernaut users can install v5 directly:
npm install -g juggernaut-bedrock@latest
juggernaut apply --auth=iamUsing a Bedrock API key from an old Windows v3 install? See the Windows v3 API-key bridge in the GitHub README. You do not need to install v4 first.
Quickstart
# 1. Install Claude Code and Juggernaut (above)
# 2. Configure - IAM/SSO (recommended) or interactive prompt
juggernaut apply --auth=iam
# 3. Restart/source your shell, then launch Claude Code
claudeBedrock API key auth? Run juggernaut apply --auth=bedrock-api-key; credentials land in your OS keychain, not your shell history.
What it does
juggernaut apply --auth=iam
That one command:
- Writes Bedrock config to
~/.claude/settings.json(or project scope) - Sets model IDs, region, effort level, permission mode, and
CLAUDE_CODE_USE_BEDROCK=1— only after credentials check out - Installs a marked shell activation block with a
claudefunction that delegates tojuggernaut launch
No overwriting the real Claude Code binary. No copying API keys into env vars.
Why Bedrock?
| Direct Anthropic API | Amazon Bedrock | |
|---|---|---|
| Billing | Separate account | Your AWS bill |
| Auth | API keys | IAM, SSO, roles |
| Region | Anthropic infra | Your chosen AWS region |
| Compliance | Anthropic certs | SOC, HIPAA, FedRAMP via AWS |
| Network | Public internet | VPC endpoints, PrivateLink |
Auth modes
| Mode | Command | Best for |
|---|---|---|
| IAM / SSO | juggernaut apply --auth=iam |
Teams, enterprise, existing AWS identity |
| Bedrock API key | juggernaut apply --auth=bedrock-api-key |
Solo devs, quick setup |
| Interactive | juggernaut apply (no flags) |
First run — guided prompts |
| Preview | juggernaut apply --dry-run |
See what would change, change nothing |
Commands
| Command | What it does |
|---|---|
apply |
Configure Bedrock + install shell activation |
show |
Print your current Juggernaut config |
doctor |
Diagnostics for settings, credentials, activation, Claude Code, and legacy v4.2.6 artifacts |
uninstall |
Remove config and token; --full also removes shell activation |
version |
Print installed version (--json for machines) |
Default models
| Tier | Model | Global inference profile |
|---|---|---|
| Primary | Claude Sonnet 4.6 | global.anthropic.claude-sonnet-4-6 |
| Opus | Claude Opus 4.8 | global.anthropic.claude-opus-4-8 |
| Fable alias | Claude Fable 5 | Configure with --fable-model=<bedrock-fable-model-id> |
| Fast | Claude Haiku 4.5 | global.anthropic.claude-haiku-4-5-20251001-v1:0 |
Juggernaut enables Claude Code's 1M context accounting for Opus and Sonnet by appending [1m] to the alias environment variables, and does the same for the configured Fable alias when it matches Claude Code's Fable ID. Claude Code strips the suffix before provider calls. Use --no-1m-context to opt out.
Fable is exposed as an opt-in Claude Code alias. Pass --fable-model with a model ID that is available in your Bedrock account and region; Juggernaut does not pin a default Fable ID until one is configured.
Override all aliases: juggernaut apply --auth=iam --model=global.anthropic.claude-sonnet-4-6
Override one tier: juggernaut apply --auth=iam --fable-model=<bedrock-fable-model-id>
Set native fallback chain: juggernaut apply --auth=iam --fallback-model=global.anthropic.claude-opus-4-8,global.anthropic.claude-sonnet-4-6
Effort levels
Controls adaptive thinking depth. Valid values: low | medium | high | xhigh | max | auto. Fixed persisted levels (low | medium | high | xhigh) are written to native effortLevel; max and auto are env-only because Claude Code settings do not accept them as persisted effortLevel values. Ultracode is separate from effortLevel and CLAUDE_CODE_EFFORT_LEVEL, so Juggernaut does not expose it as --effort.
juggernaut apply --auth=iam --effort=maxDefault: high. On Opus 4.8/4.7, effort level controls adaptive thinking depth — manual thinking mode is not supported.
Permission modes
Controls how Claude Code handles tool-use approvals:
| Mode | Behavior |
|---|---|
default |
Prompts for each action |
acceptEdits |
Auto-approves file edits |
plan |
Propose only, no execution |
auto |
Agentic safety classifier |
bypassPermissions |
Skip all prompts (containers/VMs only) |
juggernaut apply --auth=iam --mode=autoAuto mode on Bedrock requires CLAUDE_CODE_ENABLE_AUTO_MODE=1 — Juggernaut sets this automatically.
Other options
--always-thinking # enable extended thinking by default (alwaysThinkingEnabled)
--service-tier=flex # Bedrock service tier: default | flex | priority
--fable-model=<id> # override Claude Code Fable alias
--fallback-model=a,b # write Claude Code native fallbackModel chain
--opusplan # route /plan to Opus 4.8, execution to Sonnet 4.6
--mode=auto # auto-approve safe tool calls with background checks
--mantle # enable Mantle routing
--scope=project # write to ./.claude/settings.json instead of ~/.claude/Troubleshooting
Stuck? Start here:
juggernaut doctorCommon fixes: complete Anthropic model access in the Bedrock console (403), refresh SSO (aws sso login), or re-run juggernaut apply.
Documentation
Full docs, IAM policy, migration guide, and platform notes:
github.com/jpvelasco/juggernaut
License
MIT — see LICENSE.
Juggernaut is an independent tool, not affiliated with Anthropic or Amazon Web Services.