Skip to main content

Reference setup

The argument is general; the setup it describes is specific. This page is the working configuration ccp runs against. Copy what fits; the launcher and templates ship in packages/ccp.

Profiles

namedescriptionmodeleffort
defaultBaseline with anti-accumulation rules and safety gates(inherit)(inherit)
maxMax effort. Deeper reasoning, higher token spend(inherit)max
fastLow effort. Quick, terse responses for cost-sensitive work(inherit)low
codyCode writer. Tight, simple, idiomatic. Matches existing style(inherit)(inherit)
maggyTech-lead persona. Breaks down work and delegates to subagentsOpus 4.7 (1M)max
plutoPlanning agent. Investigates before writing code; hands off briefsOpusxhigh
rawMinimal system prompt. No boilerplate, maximum coding focus(inherit)(inherit)

(inherit) means the field is unset in the profile and the CLI falls back to its default (model from settings or last-used; effort level unset).

raw is the only profile that points at ~/.claude-shared/minimal-prompt.txt (~320 tokens) instead of the full replacement at ~/.claude-shared/system-prompt.txt (~4,500 tokens). Every other profile uses the same base prompt and only differs in its appended body and env.

Shared configuration

~/.claude-shared/settings.json is the single source of truth for everything that should apply to every session. Profile env blocks layer on top; profile flags override where applicable.

Environment

keyvalueeffect
CLAUDE_CODE_USE_BEDROCK1Route all requests through AWS Bedrock instead of the Anthropic API
AWS_REGION(your region)Bedrock region. Inherited from the shell if already set
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS1Enable multi-agent team coordination via the Agent tool
ANTHROPIC_DEFAULT_HAIKU_MODELclaude-sonnet-4-6Replace the default Haiku slot with Sonnet 4.6 for subagents and background work
CLAUDE_CODE_AUTO_COMPACT_WINDOW400000Run conversation compaction at 400K tokens
ENABLE_TOOL_SEARCHtrueDefer MCP tool schemas. Tool names load at startup, full schemas load on demand

Permissions

keyvalueeffect
defaultModedontAskAuto-approve tool calls without prompting
skipDangerousModePermissionPrompttrueSuppress the dangerous-mode confirmation banner

The launcher also passes --dangerously-skip-permissions so every session runs without permission prompts. Pair this with sandboxed working directories or use a stricter profile when needed.

Plugins

code-simplifier@claude-plugins-official
agent-sdk-dev@claude-plugins-official
rust-analyzer-lsp@claude-plugins-official
pyright-lsp@claude-plugins-official
typescript-lsp@claude-plugins-official
toolkit@anvil-toolkit
cortex-workflow@anvil-toolkit
example-skills@anthropic-agent-skills
codex@openai-codex

Each plugin pays its own token tax on every session. Audit yours with ccp tools-audit and /mcp before installing more.

Custom statusline

"statusLine": {
"type": "command",
"command": "$HOME/.claude-shared/bin/statusline-dispatch"
}

Renders as ccp <profile> | <model>[ 1M] [| <effort>] | branch | path | C/S/W/E ....

Disabled

keyvalueeffect
promptSuggestionEnabledfalseNo auto-suggested prompts
hooks{}No shell hooks fire on tool events

File layout

~/.claude-shared/
├── settings.json # shared across every profile
├── mcp.json # shared MCP servers
├── system-prompt.txt # the replacement system prompt (4.5K tokens)
├── baseline-prompt.txt # captured harness baseline, kept for reference and diffs
├── minimal-prompt.txt # used by `raw` (~320 tokens)
└── profiles/
├── default.md max.md fast.md
└── cody.md maggy.md pluto.md raw.md

ccp itself lives wherever npm installed it. ccp init writes this layout into ~/.claude-shared/ (or any path you pass to --to). Adding a new profile is one new file in profiles/, no code change.