Skip to content

Configuration Reference

Complete reference for every configurable field in Bivvy. See the annotated YAML files for copy-paste examples:

Config File (.bivvy/config.yml)

Top-Level Fields

FieldTypeDefaultDescription
app_namestringDisplay name for the project
settingsSettings{}Global defaults
stepsmap of Step{}Named setup tasks
workflowsmap of Workflow{}Step sequences
template_sourceslist of TemplateSource[]Remote template registries
secretsmap of Secret{}External secret providers
requirementsmap of CustomRequirement{}Custom requirement definitions
varsmap of VarDefinition{}User-defined variables for interpolation
extendslist of {url}Base configs to inherit

Settings

FieldTypeDefaultDescription
default_outputverbose | quiet | silentverboseOutput verbosity
loggingboolfalseWrite logs to file
log_pathpathLog file path (relative to project root)
envmap{}Global environment variables
env_filepathGlobal env file to load
secret_envlist[]Additional patterns to mask in output
parallelboolfalseEnable parallel execution
max_parallelint4Max concurrent steps
history_retentionint50Execution history entries to keep
default_environmentstringDefault environment when --env is not set
environmentsmap of EnvironmentConfig{}Custom environment definitions

Step

At minimum, a step needs either command or template.

FieldTypeDefaultDescription
commandstringShell command to execute
templatestringTemplate name from registry
inputsmap{}Inputs to pass to template
titlestringstep keyDisplay title
descriptionstringHuman-readable description
depends_onlist[]Steps that must run first
completed_checkCompletedCheckDetect if already done
preconditionCompletedCheckGate that must pass before step runs (not bypassed by --force)
skippablebooltrueUser can skip interactively
requiredboolfalseCannot be skipped
prompt_if_completebooltrueAsk before re-running
allow_failureboolfalseContinue workflow on failure
retryint0Retry attempts on failure
envmap{}Step-specific env vars
env_filepathEnv file for this step
env_file_optionalboolfalseDon’t fail if env file missing
required_envlist[]Env vars that must be set
watcheslist[]Files triggering re-run on change
promptslist of Prompt[]Interactive prompts
outputStepOutputOutput settings override
sensitiveboolfalseHide command and suppress output
requires_sudoboolfalseNeeds elevated permissions
beforelist[]Commands to run before step
afterlist[]Commands to run after step
requireslist[]System-level prerequisites
only_environmentslist[]Limit step to these environments (empty = all)
environmentsmap of StepEnvironmentOverride{}Per-environment field overrides

Completed Check

Tagged union — the type field determines which other fields apply.

TypeFieldsDescription
file_existspathCheck if file/directory exists
command_succeedscommandCheck if command exits 0
markerUse Bivvy’s internal tracking
allchecks (list)Every sub-check must pass
anychecks (list)At least one sub-check must pass

Prompt

FieldTypeDefaultDescription
keystringrequiredUnique key (used in ${key} interpolation)
questionstringrequiredQuestion to display
typeselect | multiselect | confirm | inputrequiredPrompt type
optionslist of {label, value}[]Choices (for select/multiselect)
defaultvariesDefault value

Step Output

FieldTypeDefaultDescription
defaultverbose | quiet | silentOutput mode for this step
loggingboolOverride logging for this step

Workflow

FieldTypeDefaultDescription
descriptionstringHuman-readable description
stepslist[]Ordered step names to execute
overridesmap of StepOverride{}Per-step behavior overrides
settingsWorkflowSettingsWorkflow-level settings
envmap{}Workflow-level env vars
env_filepathWorkflow-level env file

Step Override

Used inside workflows.<name>.overrides.<step> to tweak step behavior for a specific workflow.

FieldTypeDefaultDescription
skip_promptboolfalseSkip prompts, just run
requiredboolOverride step’s required flag
prompt_if_completeboolOverride step’s prompt_if_complete flag

Workflow Settings

FieldTypeDefaultDescription
non_interactiveboolfalseForce non-interactive mode

Template Source

FieldTypeDefaultDescription
urlstringrequiredURL to template repository
priorityint100Lower = higher priority
timeoutint30Network timeout (seconds)
cacheCacheCache configuration
authAuthAuthentication

Cache

FieldTypeDefaultDescription
ttlstringrequiredTime-to-live ("7d", "24h")
strategyetag | gitetagCache invalidation strategy

Auth

FieldTypeDefaultDescription
typebearer | headerrequiredAuth type
token_envstringrequiredEnv var containing the token
headerstringCustom header name (for type: header)

Secret

FieldTypeDefaultDescription
commandstringrequiredCommand whose stdout is the secret

Environment Config

Used inside settings.environments.<name>.

FieldTypeDefaultDescription
detectlist of EnvironmentDetectRule[]Auto-detection rules
default_workflowstringWorkflow to use when this environment is active
provided_requirementslist[]Requirements assumed satisfied

Environment Detect Rule

FieldTypeDefaultDescription
envstringrequiredEnvironment variable name to check
valuestringExpected value (omit to match on presence)

Step Environment Override

Used inside steps.<name>.environments.<env>. All fields are optional — only specified fields override the base step.

FieldTypeDescription
titlestringOverride display title
descriptionstringOverride description
commandstringOverride shell command
envmap of string → string|nullOverride env vars (null removes a key)
completed_checkCompletedCheckOverride completion check
preconditionCompletedCheckOverride precondition
skippableboolOverride skip permission
allow_failureboolOverride failure behavior
requires_sudoboolOverride sudo requirement
sensitiveboolOverride sensitive flag
beforelistOverride pre-step hooks
afterlistOverride post-step hooks
depends_onlistOverride dependencies
requireslistOverride system requirements
watcheslistOverride watched files
retryintOverride retry attempts

Var Definition

Each entry in the top-level vars map is either a static string or a computed value.

FormYAML SyntaxDescription
Staticname: "value"Plain string
Computedname: { command: "..." }Shell command whose trimmed stdout becomes the value

Computed variables run once at workflow start. If the command exits non-zero, the workflow fails.

Variables are resolved in priority order: prompts > preferences > vars > env > builtins.

Custom Requirement

Used inside the top-level requirements map.

FieldTypeDefaultDescription
checkCustomRequirementCheckrequiredHow to verify the requirement
install_templatestringTemplate for installation
install_hintstringHuman-readable install instructions

Custom Requirement Check

Tagged union — the type field determines which other fields apply.

TypeFieldsDescription
command_succeedscommandRun command, pass on exit 0
file_existspathCheck if file/directory exists
service_reachablecommandRun command that probes a service

Template File (.bivvy/templates/steps/<name>.yml)

FieldTypeDefaultDescription
namestringrequiredUnique template name
descriptionstringrequiredHuman-readable description
categorystringrequiredCategory (ruby, node, custom, etc.)
versionstring"1.0.0"Semantic version
min_bivvy_versionstringMinimum Bivvy version required
platformslist[macos, linux, windows]Supported platforms
detectslist of Detection[]Auto-detection rules for bivvy init
inputsmap of TemplateInput{}Parameterized inputs
stepTemplateSteprequiredStep definition
environment_impactEnvironmentImpactShell environment side effects

Detection

FieldTypeDescription
filestringSuggest template if this file exists
commandstringSuggest template if this command exits 0

Template Input

FieldTypeDefaultDescription
descriptionstringrequiredHuman-readable description
typestring | number | boolean | enumrequiredInput type
requiredboolfalseMust be provided
defaultvariesDefault value
valueslist[]Valid values (for enum type)

Template Step

FieldTypeDefaultDescription
titlestringDisplay title (supports ${input})
descriptionstringDescription
commandstringCommand (supports ${input})
completed_checkCompletedCheckCompletion detection
envmap{}Environment variables
watcheslist[]Files to watch

Environment Impact

FieldTypeDefaultDescription
modifies_pathboolfalseStep modifies PATH
shell_fileslist[]Shell config files affected
path_additionslist[]Paths added to PATH
notestringNote displayed after completion