Skip to main content

Environment

Environment

Runtime Requirements

Prepare the Python, Git, working-directory, terminal, editor, and optional tooling boundaries used by Custy.

Commandcusty

Category

Reference

Quick Command

project root + installed custy + Git repository

Python 3.14+GitUTF-8 terminaleditor

Runtime Requirements​

Requirements

Python 3.14+

Required
The package metadata requires Python 3.14 or newer.

Git

Required
Custy's core workflows inspect and modify Git repository state. Docker images install Git inside the container.

pip or installed package

Required
The custy entrypoint must resolve from the intended virtual environment, release installation, or container.

UTF-8-capable terminal

Recommended
Rich output contains Unicode symbols and emoji; compatible encoding avoids display and redirected-output failures.

Configured Editor

Recommended
Install at least one editor from the active tool.custy.editor candidate list. Docker includes Micro, Nano, Vim, and Vi.

Commitizen

Optional
The external cz executable is needed only by Commitizen-dependent validation or strategy paths.

Docker

Optional
Use the supported container workflow without installing Custy and Git directly on the host.

Make

Optional
Use repository Makefile helpers; it is not required by the installed core CLI.

Working Directory

Run Custy from the project root that contains .config/custy/config.toml, the configured project source, and the target Git repository. Relative configuration, template, backup, log, version, and changelog paths are resolved from the process working directory.

Verify the intended environment
bash
custy --version
custy --no-banner validate
git status

Custy Theme Variables

The active application reads these environment variables only to customize Rich colors and progress presentation:

Color Overrides

CUSTY_PRIMARY / CUSTY_SECONDARYPrimary accent and secondary text.
CUSTY_INFO / CUSTY_WARNING / CUSTY_SUCCESS / CUSTY_ERRORSemantic output colors.
CUSTY_DRY_RUN / CUSTY_POINTINGDry-run and pointer or hint colors.
CUSTY_HELP_TITLE / CUSTY_HELP_TEXT / CUSTY_HELP_HINTHelp heading, body, and hint styles.
CUSTY_HELP_OPTION / CUSTY_HELP_EXAMPLEHelp option and example styles.
CUSTY_PROGRESS_TITLE / CUSTY_PROGRESS_STEP / CUSTY_PROGRESS_DONEProgress heading, active step, and completion styles.

Values must be valid Rich color or style-compatible color strings. These variables do not replace project configuration, command arguments, Git credentials, or file paths.


Editor Environment Variables

Custy does not define an editor environment variable automatically. It inherits the variables supplied to its process and checks the following exact names when tool.custy.editor.prefer_environment = true:

Editor Runtime Variables

VISUALPrimary editor command. May contain a trusted executable and optional arguments, such as code --wait or micro.
EDITORSecondary editor command, checked after VISUAL, such as notepad, nano, vim, or nvim -f.
PATHIndirectly controls executable discovery. PATH does not select an editor by itself.
CUSTY_CONTAINERSelects container candidates when set to 1, true, yes, or on. The official image sets it; it is not an editor command.

Only VISUAL and EDITOR accept editor commands. Use the uppercase names exactly for portable behavior. If either is empty, undefined, or names an unavailable executable, Custy moves to the next candidate allowed by the editor policy.

Set values before starting Custy
bash
# PowerShell
$env:VISUAL = "code --wait"
$env:EDITOR = "notepad"

# POSIX shell

export VISUAL="micro"
export EDITOR="nano"

# Docker

docker run --rm -it -e VISUAL=micro -e EDITOR=nano -v "${PWD}:/workspace" -w /workspace custy-prod:latest run release

The operating system, shell profile, IDE, Docker/Compose service, or CI job must supply these values before Custy starts. Custy does not directly load a .env file. It reads VISUAL and EDITOR when a workflow reaches commit or tag message editing, so changing another terminal does not modify an existing Custy process. See Editor Configuration for setup examples, accepted commands, container behavior, and the complete prefer_environment/allow_fallback matrix.


External Tools and Credentials

  • Custy invokes git and relies on the normal Git executable lookup.
  • Remote authentication belongs to Git and the configured credential helper, SSH agent, CI secret setup, or container environment. Custy does not read a dedicated GitHub or GitLab token variable in the active core path.
  • The editor launcher reads VISUAL, then EDITOR, when environment precedence is enabled. It then follows container or platform candidate lists from tool.custy.editor.
  • Windows executable discovery resolves command shims such as code.CMD before launch. A normal Linux container cannot open VS Code or Notepad from the host; use its bundled terminal editors and an interactive TTY.
  • Commitizen strategy behavior invokes cz as an external subprocess.
  • Docker bind mounts determine which host project appears as the container's working directory.


Continue