id = "copier" name = "Copier" homepage = "https://copier.readthedocs.io" description = "A library and command-line utility for rendering projects templates." executables = ["copier"] [dotfiles] # Copier documents settings.yml below the platform configuration root. The # environment override COPIER_SETTINGS_PATH is user-selected and cannot be # represented as a static catalog path. # https://copier.readthedocs.io/en/stable/settings/ paths = [ "[configHome]/copier/settings.yml", "[appData]/copier/settings.yml", "%LOCALAPPDATA%/copier/settings.yml", "%LOCALAPPDATA%/copier/copier/settings.yml", ] secret = [] [commands] format = 1 label = "Copy a template" description = "Bootstrap or overwrite a project from a Copier template with `copier copy`. Update, recopy, data files and answer overrides are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["copy"] label = "Copy from a template" [[commands.subcommand.source]] id = "cli" kind = "help" url = "https://github.com/copier-org/copier/blob/master/copier/_cli.py" revision = "master 2026-10" evidence = """ ["-x", "--exclude"], ["-r", "--vcs-ref"], pretend = cli.Flag(["-n", "--pretend"], help="Run but do not make any changes") ["-s", "--skip"], help="Skip specified files if they exist already", quiet = cli.Flag(["-q", "--quiet"], help="Suppress status output") ["--UNSAFE", "--trust"], ["-T", "--skip-tasks"], ["-d", "--data"], "VARIABLE=VALUE", ["-C", "--no-cleanup"], ["-l", "--defaults"], ["-f", "--force"], help="Same as `--defaults --overwrite`.", ["-w", "--overwrite"], help="Overwrite files that already exist, without asking.", """ [[commands.subcommand.field]] id = "template_src" label = "Template source" description = "Local path or git URL of the template." type = "string" position = 0 sources = ["cli"] [[commands.subcommand.field]] id = "destination" label = "Destination" type = "path" position = 1 path = { kind = "directory", role = "output" } sources = ["cli"] [[commands.subcommand.field]] id = "vcs_ref" label = "Template git ref" type = "string" option = ["--vcs-ref", "-r"] sources = ["cli"] [[commands.subcommand.field]] id = "data" label = "Answers (VARIABLE=VALUE)" type = "string" option = ["--data", "-d"] multiple = true sources = ["cli"] [[commands.subcommand.field]] id = "exclude" label = "Exclude patterns" type = "string" option = ["--exclude", "-x"] multiple = true sources = ["cli"] [[commands.subcommand.field]] id = "defaults" label = "Use default answers" type = "boolean" option = ["--defaults", "-l"] sources = ["cli"] [[commands.subcommand.field]] id = "overwrite" label = "Overwrite existing files" type = "boolean" option = ["--overwrite", "-w"] effect = "overwrite" sources = ["cli"] [[commands.subcommand.field]] id = "force" label = "Force (defaults + overwrite)" type = "boolean" option = ["--force", "-f"] effect = "overwrite" sources = ["cli"] [[commands.subcommand.field]] id = "pretend" label = "Pretend (no changes)" type = "boolean" option = ["--pretend", "-n"] sources = ["cli"] [[commands.subcommand.field]] id = "trust" label = "Trust template (allow tasks and extensions)" type = "boolean" option = ["--trust"] effect = "exec" sources = ["cli"] [[commands.subcommand.field]] id = "skip_tasks" label = "Skip template tasks" type = "boolean" option = ["--skip-tasks", "-T"] sources = ["cli"] [[commands.subcommand.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["--quiet", "-q"] sources = ["cli"] [[commands.subcommand.task]] id = "copy" label = "Copy template" fields = ["template_src", "destination", "vcs_ref", "data", "defaults"] required = ["template_src", "destination"] [[commands.subcommand.task]] id = "preview" label = "Preview only" set = { pretend = [true] } lock = ["pretend"] fields = ["template_src", "destination", "pretend", "data", "defaults"] required = ["template_src", "destination"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["template_src", "destination", "vcs_ref", "data", "defaults", "pretend"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["exclude", "overwrite", "force", "trust", "skip_tasks", "quiet"]