id = "copier"
name = "Copier"
homepage = "https://copier.readthedocs.io"
description = "A library and command-line utility for rendering projects templates."
executables = ["copier"]
[dotfiles]
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"]