1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# zcolorizer config — copy to $XDG_CONFIG_HOME/zcolorizer/config.toml
# (usually ~/.config/zcolorizer/config.toml) and edit freely.
#
# Everything here is optional. Omit a section and the builtin defaults apply.
# Three independent things you can control:
# 1. which theme is active (theme = "...")
# 2. how colors map to tokens ([[themes]])
# 3. what text matches a token ([[rules]])
# ---------------------------------------------------------------------------
# 1. Active theme. Any builtin (see `zcolorizer --list-themes`) or one you
# define below. Defaults to "cyberpunk".
# ---------------------------------------------------------------------------
= "cyberpunk"
# How your [[rules]] combine with the builtin generic ruleset:
# "prepend" (default) yours first, then builtins — yours win on overlap
# "extend" builtins first, then yours — builtins win on overlap
# "replace" only yours, builtins dropped — total control
= "prepend"
# Format modules (ports of ccze's plugins) to enable. Each adds structured rules
# for a specific log format; they sit between your [[rules]] and the generic
# builtins. Use "all" to enable every module, or list specific ones. See
# `zcolorizer --list-modules`. Equivalent to the CLI `-m/--module` flag.
# modules = ["syslog", "httpd", "squid"]
# modules = ["all"]
= []
# ---------------------------------------------------------------------------
# 2. Theme override / definition.
# Giving the name of a builtin overlays just the tokens you set, keeping the
# rest. A new name defines a whole theme (set `base` so unlisted tokens have
# a color).
#
# Color forms:
# "#ff00aa" truecolor hex (24-bit)
# "red" / "bright_cyan" one of the 16 named ANSI colors
# { index = 213 } 256-color palette index
# Style flags: bold, dim, italic, underline, blink, reverse (all bool).
# ---------------------------------------------------------------------------
[[]]
= "cyberpunk" # overlay the builtin cyberpunk theme
= "my tweaked cyberpunk"
# make errors even louder
[]
= "#ff003c"
= true
= true
# tone PIDs down to a muted violet
[]
= "#b14bff"
# An example of a brand-new theme defined from scratch:
# [[themes]]
# name = "matrix"
# description = "green-on-black, Wachowski-core"
# base = { fg = "#00aa00" }
# [themes.styles.error] = { fg = "#aaffaa", bold = true }
# [themes.styles.date] = { fg = "#33ff33", bold = true }
# [themes.styles.host] = { fg = "#66ff66" }
# ---------------------------------------------------------------------------
# 3. Custom rules. Each rule is a regex that tags text with a token.
# Two styles:
# - Named capture groups ARE the token: (?P<date>...) colors that group
# with the theme's `date` style. One regex can paint many fields.
# - No named groups: the whole match gets `token` (default "default").
# `ignore_case = true` adds (?i). Rules run top-to-bottom; first to claim a
# span of text wins, so put specific rules above generic ones.
# ---------------------------------------------------------------------------
# Highlight your service name wherever it appears.
[[]]
= "my-service"
= '\bauth-gateway\b'
= "keyword"
# A structured line for your app's own log format, painting several fields:
# [2026-06-27 14:00:00] LEVEL request_id=abc123 ...
[[]]
= "app-request-id"
= 'request_id=(?P<keyword>[a-f0-9]+)'
# Treat UUIDs as addresses (your token of choice).
[[]]
= "uuid"
= '\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b'
= "address"
= true