Skip to content

Project Config (.ccpod.yml)

A profile is global to your machine. A project config lives in a repo and overlays the profile for that project. ccpod walks up from $PWD to find a .ccpod.yml, so any subdirectory of the repo works.

  • Pin which profile this repo uses (profile:).
  • Add domains to a restricted network policy.
  • Expose extra ports.
  • Forward extra env vars.
  • Add sidecar services that only this project needs.
  • Append to (or replace) CLAUDE.md.
  • Pass extra flags to claude on every run (claudeArgs).
# .ccpod.yml at the repo root
profile: personal # which profile to base on
merge: deep # "deep" (default) | "override"
claudeArgs:
- "--dangerously-skip-permissions"
config:
claudeMd: append # "append" (default) | "override"
network:
policy: restricted
allow:
- api.github.com
- registry.npmjs.org
ports:
list:
- "4000:4000"
env:
- STRIPE_SECRET_KEY
services:
redis:
image: redis:7
ports:
- "6379:6379"
FieldTypeNotes
profilestringWhich profile to use. Falls back to default.
mergedeep | overrideHow to combine with the profile (see Merge Strategies).
claudeArgsstring[]Extra CLI flags passed to claude. Deep: appended after profile args. Override: replaces.
config.claudeMdappend | overrideHow to combine CLAUDE.md files.
networkpartial network blockAdds to (or replaces) the profile’s network config.
portsarrayExtra port mappings.
servicesobjectExtra sidecars; merged by key.
envstring[]Extra env-var names to forward.
Terminal window
ccpod config show # print resolved merged config
ccpod config validate # validate without running

ccpod config show is the source of truth — what you see is what ccpod run will use.