---
title: Color Support
product: ebcprep-orchestrator
doc_type: guide
version: main
source: git2docs (code-derived, validation-filtered)
canonical: https://git2docs.com/jan-mark-holzer/docs/ebcprep-orchestrator/ebcprep/color-support
---

# Color Support

_Detecting terminal color support_

## Overview

ebcprep outputs color-coded status messages, section headers, and sync summaries to your terminal using the [Rich](https://github.com/Textualize/rich) library. This page explains how ebcprep detects whether your terminal supports color, what controls that detection, and how to force color on or off when the defaults do not match your environment — for example when running inside a CI pipeline, a log file redirect, or a terminal emulator that reports color support incorrectly.

## Prerequisites

Before working through this page, you should have:

- ebcprep installed (`uv tool install --from ~/path/to/ebcprep-orchestrator ebcprep`)
- A terminal emulator (macOS Terminal, iTerm2, VS Code integrated terminal, or similar)
- Basic familiarity with environment variables

No additional packages are required — Rich is already a dependency of ebcprep.

## Configuration

ebcprep inherits Rich's standard color-detection behavior. Rich inspects the terminal environment automatically on startup and enables or disables color accordingly. You can override that detection with the following standard environment variables — set them in your shell, in a CI environment, or in your `.env` file.

| Variable | Effect | Default |
|---|---|---|
| `NO_COLOR` | Set to any non-empty value to strip all color and styling from output. Respected by Rich and most other color-aware tools. | *(unset)* |
| `FORCE_COLOR` | Set to `1` to force color on even when the terminal does not advertise support (e.g. inside `nohup`, a pipe, or CI). | *(unset)* |
| `TERM` | Rich reads this to identify terminal capabilities. Most modern terminals set this automatically (e.g. `xterm-256color`). | Set by your terminal emulator |
| `COLORTERM` | Set to `truecolor` or `24bit` by terminals that support 24-bit color. Rich uses this for richer gradient output. | Set by your terminal emulator |

**Why these matter for ebcprep specifically:**

- When you redirect output to a log file (e.g. `nohup ebcprep --verbose sync > data/sync.log 2>&1 &`), Rich detects that stdout is not a TTY and automatically disables color — so `data/sync.log` will contain clean plain text suitable for `grep` and `tail`.
- If you run `ebcprep sync` inside a CI pipeline that supports ANSI color (GitHub Actions, GitLab CI), set `FORCE_COLOR=1` so the colored summary is visible in the pipeline log.
- If your terminal renders raw escape codes as literal characters (e.g. `\x1b[32m✓`), set `NO_COLOR=1` to disable them.
