Manifest Schema Reference

The cc-deck-build.yaml manifest defines the desired contents of a container image. For usage context, see Manifest Reference in the Images module.

This page provides the complete field reference.

Schema Version

version: 1

Required. Currently only version 1 is supported.

image

Field Type Required Description

name

string

Yes

Image name (e.g., my-team-image)

base

string

No

Base image reference. Default: quay.io/cc-deck/cc-deck-base:latest

tag

string

No

Image tag. Default: latest

tools

Type: list of strings. Optional.

Free-form text descriptions of required tools. Resolved to concrete install commands during /cc-deck.build.

tools:
  - "Go compiler >= 1.25"
  - "Python 3.12 with uv package manager"

sources

Type: list of objects. Optional. Populated by /cc-deck.extract.

Field Type Description

url

string

Repository URL

ref

string

Branch or tag

path

string

Local checkout path

detected_tools

list

Tools discovered in this repo

detected_from

list

Files the tools were detected from

plugins

Type: list of objects. Optional.

Field Type Description

name

string

Plugin name

source

string

marketplace or git:<url>

mcp

Type: list of objects. Optional.

Field Type Description

name

string

MCP server name

image

string

Container image reference

transport

string

sse or stdio

port

integer

Port number (for sse transport)

auth.type

string

Authentication type (e.g., token)

auth.env_vars

list

Environment variable names for credentials

description

string

Human-readable description

github_tools

Type: list of objects. Optional.

Field Type Description

repo

string

GitHub repository (e.g., cc-deck/cc-setup)

binary

string

Binary name to extract from the release

network

Type: object. Optional.

Controls network filtering for containerized sessions deployed with cc-deck deploy --compose. When this section is present, a tinyproxy sidecar is generated alongside the session container, restricting outbound traffic to the listed domains.

Field Type Required Description

allowed_domains

list of strings

No

Domain group names or literal domain patterns to allow

Each entry in allowed_domains is resolved as follows:

  • Names without dots (e.g., python, github) are treated as domain group names and expanded to their full domain list.

  • Names containing dots (e.g., pypi.internal.corp) are treated as literal domain patterns and passed through directly.

Built-in group names include: anthropic, docker, github, gitlab, golang, nodejs, python, quay, rust, vertexai. If neither anthropic nor vertexai appears in the list, the anthropic group is injected automatically to ensure Claude Code connectivity.

network:
  allowed_domains:
    - anthropic
    - github
    - python
    - golang
    - artifacts.internal.corp

settings

Type: object. Optional.

Field Type Description

zshrc

string

Path to curated .zshrc file

zellij_config

string

current, vanilla, or a file path

claude_md

string

Path to global Claude instructions

claude_settings

string

Path to Claude preferences JSON (merged with hooks)

hooks

string

Path to additional hooks JSON (merged)

mcp_settings

string

Path to npx-based MCP configs (merged)

cc_setup_mcp

string

Path to cc-setup MCP cache file

Validation

Required fields: version (must be 1), image.name. All other sections are optional.

Validate with:

cc-deck image diff <build-dir>