Skip to content

Repository files navigation

Claude Code Config

Opinionated Claude Code defaults for cost-aware, model-tiered development on Amazon Bedrock.

What's here

File Deploy to Purpose
CLAUDE.md ~/.claude/CLAUDE.md Global guidance loaded into every session: working style, scope discipline, subagent model tiers, memory rules
settings.json ~/.claude/settings.json User settings: plugin marketplaces, teammate mode, permission prompt config
managed-settings.opusplan.json /Library/Application Support/ClaudeCode/managed-settings.json Model defaults, effort level, env vars, Bedrock model ID pins, deny rules

Why

Default Claude Code sessions inherit the main-loop model for every subagent, silently multiplying cost on frontier sessions. This config:

  • Pins Sonnet 4.6 as the everyday default (cheap, capable, adaptive thinking)
  • Makes Opus 5, Fable 5, Haiku 4.5, and an opusplan hybrid available one /model keystroke away — escalating to frontier reasoning is deliberate, never accidental
  • Tiers subagents by value in CLAUDE.md so mechanical tasks run on Haiku and only judge/synthesis work runs on Opus
  • Pins exact Bedrock inference-profile IDs (on Bedrock, bare aliases like opus resolve to older model versions without these pins)

Install

git clone https://github.com/kaltura/claude-code-config.git
cd claude-code-config

cp CLAUDE.md ~/.claude/CLAUDE.md
cp settings.json ~/.claude/settings.json
cp managed-settings.opusplan.json \
  "/Library/Application Support/ClaudeCode/managed-settings.json"

Before you deploy

Not on Bedrock? Remove the ANTHROPIC_DEFAULT_*_MODEL env vars from managed-settings.opusplan.json. Bare aliases (sonnet, opus, etc.) will resolve against the Anthropic API directly.

Telemetry: settings.json includes OTLP env vars pointed at http://127.0.0.1:10198. Remove or update if you don't have a local collector. The OTEL_EXPORTER_OTLP_HEADERS field is where an auth token would go — never commit a value there.

Plugins: the enabledPlugins and extraKnownMarketplaces entries in settings.json are personal. Remove them or replace with your own. The ones registered here:

Plugin Repo What it does
message-timestamps zoharbabin/claude-code-message-timestamps Adds a timestamp to every user prompt submission
avatar-presentation-skill zoharbabin/avatar-presentation-skill Skill for generating avatar-driven presentations
kalt-ai-plugins kaltura/kalt-ai-plugin-marketplace Kaltura internal plugin marketplace

claudeMdExcludes: settings.json excludes /opt/homebrew/CLAUDE.md from auto-loading. This is a personal filesystem-layout fix, not a general recommendation: on Apple Silicon, brew --prefix is /opt/homebrew, and Homebrew commits its own contributor CLAUDE.md/AGENTS.md at that repo's root. Claude Code walks up the directory tree and loads every ancestor CLAUDE.md it finds, so any project nested under /opt/homebrew (e.g. /opt/homebrew/var/www/...) picks up Homebrew's Ruby/Sorbet/RuboCop guidance by accident. Excluding the one file also suppresses AGENTS.md, since it's only pulled in via an @AGENTS.md import inside that CLAUDE.md — excluding the importer means the import never fires. If your projects don't live under /opt/homebrew, remove this key entirely.

Further reading

The data and reasoning behind the defaults in this repo:

About

Claude Code configuration best practices: CLAUDE.md, settings.json, managed-settings.json

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors