Configuration

Configure rendering, status behavior, and symbols.

Configuration is a small key-value file with optional environment overrides. All settings have defaults and work without a config file.

View active config

To see every setting that is currently in effect (file + env overrides combined):

gitflect config

Each enumerated setting shows its valid options in a comment on the line above.

Interactive settings explorer

The fastest way to browse and change settings without opening any files:

gitflect settings

Use ↑/↓ to navigate, ←/→ or Enter to cycle enum and boolean values, Enter to edit text fields inline, and s to save all changes at once.

Config file path

To see where the file lives:

gitflect config path

Lookup order

  1. $GITFLECT_CONFIG (if set)
  2. $XDG_CONFIG_HOME/gitflect/config
  3. ~/.config/gitflect/config

Environment variables are applied after the file, so they always win.

Settings reference

KeyDefaultValid values
themeposh-roundedposh-rounded, posh, plain, nerd, emoji, minimal, retro, custom
colorautoauto, always, never
enable_prompt_statustruetrue, false
enable_file_statustruetrue, false
enable_stash_statusfalsetrue, false
untracked_filesnormalno, normal, all
show_zero_countstruetrue, false
status_firstfalsetrue, false
abbreviate_hometruetrue, false
abbreviate_git_dirfalsetrue, false
branch_displayfullfull, compact, minimal
branch_name_limit0integer (0 = off)
prompt_suffix> any string
prompt_prefix(empty)any string; auto-set to [user@host]: over SSH
path_status_separator any string
show_exit_statusfalsetrue, false

Environment overrides

Every key has a GITFLECT_ env var equivalent:

VariableConfig key
GITFLECT_THEMEtheme
GITFLECT_COLORcolor
GITFLECT_ENABLE_STASHenable_stash_status
GITFLECT_UNTRACKED_FILESuntracked_files
GITFLECT_SHOW_ZERO_COUNTSshow_zero_counts
GITFLECT_STATUS_FIRSTstatus_first
GITFLECT_BRANCH_NAME_LIMITbranch_name_limit
GITFLECT_DISABLED_REPOSITORIESdisabled_repositories

Themes

gitflect ships with four built-in themes:

ThemeDescription
poshUnicode symbols — the default, inspired by posh-git (↑ ↓ ↕ ≡ ×)
posh-roundedSame as posh but wraps the status block with ( ) instead of [ ]
plainASCII text labels only (ahead, behind, <>, =, gone)
nerdNerd Font glyph icons — requires a Nerd Font patched terminal font
emojiSingle-width Unicode symbols (⬆ ⬇ ⇅ ✔ ✘ ✚ ✎ ✖)
minimalSingle ASCII char per segment (^ v x = ~ + * -)
retroBracket-style labels (>> << >< [+] [~] [-] [!])
customYour own symbols — configure interactively with the wizard

Custom theme

Run the interactive wizard to define every symbol:

gitflect theme set custom

The wizard walks through all 12 status segments one at a time. Use ↑ / ↓ to navigate between fields, Enter to confirm a value, and q to cancel without saving. Pressing Enter on an empty field keeps the current value.

After you confirm all symbols the wizard shows a summary and asks for confirmation before writing to your config file. It then prompts for an optional name — enter one to save the theme as a shareable file.

Save and share themes

Save the current custom symbol set as a named theme:

gitflect theme save mytheme

Load it on any machine that has the file:

gitflect theme load mytheme

List saved themes:

gitflect theme saved

Named theme files live at ~/.config/gitflect/themes/<name>.conf and contain only symbol_* keys, so they are easy to share or version-control.

You can also set individual symbols manually without the wizard:

# theme must be custom for symbol_* keys to take effect without override
theme=custom
symbol_ahead=▲
symbol_behind=▼
symbol_identical=✓

Symbols

Override any symbol with ASCII, Nerd Font glyphs, or any text:

symbol_added=+
symbol_modified=~
symbol_removed=-
symbol_conflicted=!
symbol_ahead=↑
symbol_behind=↓
symbol_identical=≡
symbol_diverged=↕
symbol_gone=gone

Or via env with GITFLECT_SYMBOL_ prefix:

export GITFLECT_SYMBOL_AHEAD="▲"
export GITFLECT_SYMBOL_BEHIND="▼"

Large repositories

Disable file status for specific worktrees (branch and operation state still show):

disabled_repositories=/work/huge-repo:/work/generated-repo