Themes & Profiles
Profiles define behavior, themes define visual style, and alias packs remain independent.
Configuration model
[profile]
active = "developer"
[theme]
active = "tokyo-night"
[alias_packs]
enabled = ["git", "python"]
Built-in profiles
- ✓default — current PySH default behavior
- ✓minimal — quiet prompt and minimal visual noise
- ✓developer — daily software-engineering profile
- ✓server — remote/server-oriented profile with prominent host state
- ✓presentation — clean readable profile for demos
- ✓plain — no icons and low ANSI dependence
Built-in themes
- ✓default
- ✓minimal
- ✓dark
- ✓light
- ✓catppuccin-mocha
- ✓catppuccin-latte
- ✓tokyo-night
- ✓nord
- ✓gruvbox-dark
- ✓solarized-dark
- ✓solarized-light
- ✓plain
Custom themes
Custom themes live under [themes.NAME]. A theme can inherit from a built-in base and override prompt and syntax-highlight colors.
[themes.my-dark]
base = "dark"
description = "Personal dark terminal palette"
[themes.my-dark.colors.prompt]
user = "aqua"
host = "yellow"
cwd = "lime"
git = "fuchsia"
symbol = "white"
[themes.my-dark.colors.highlight]
builtin = "aqua"
alias = "fuchsia"
comment = "gray"
heredoc = "yellow"
Alias packs
Built-in alias packs include git, python, project, and files. Packs are opt-in and additive; project-local packs are not auto-enabled.
No-color and terminal fallbacks
- ✓NO_COLOR disables ANSI color
- ✓PYSH_COLOR=0 disables ANSI color
- ✓TERM=dumb uses the documented plain/readline fallback behavior
- ✓The plain theme avoids icons and minimizes ANSI dependence
- ✓Theme selection never changes command parsing or execution semantics
Accessibility
Preview a theme
$ config_theme preview nord
Theme preview renders representative prompt, diagnostic, paste-preview, reverse-search, and syntax-highlight lines without executing commands or writing configuration files.