grokbot-tui

Themes and the theme editor

The built-in themes, dark/light/system modes, theme files and the in-app editor. See the theme gallery for a screenshot of each.

Themes

Every theme, including default, is a TOML file in ~/.grokbot-tui/themes/<name>.toml (it follows --data-dir), and themes are read only from that folder: nothing is built into the binary and no system folder is searched. Each file has a [dark] and a [light] variant: a palette of 14 named colors and a style for each part of the screen.

schema = 1
name = "Default"
description = "The original grokbot-tui look"

[dark.colors]
text = 252                 # 0-255, "#rrggbb", "#rgb", a color name, or "reset" (terminal default)
background = 234
accent = "cyan"
# … subtle, muted, header, warn, danger, ok, on_accent, modal_text, modal_background,
#   logo_dark, logo_light

[dark.styles]              # fg, bg, border (boxes only), bold, italic, underline, reverse, dim
brand = { fg = "@on_accent", bg = "@accent", bold = true }   # "@name" = a palette color
panel_focused = { fg = "@text", border = "@accent" }
# …

[light.colors]
# …

Responsiveness

The screen never waits on the network. Every gateway call runs on a tokio task and posts its result back over a channel. Results that arrive after an account switch or logout are discarded.

Only the active bot is polled (getAgentTranscriptTail, last 100 entries): - after a send: about every 1 s, backing off to 8 s while waiting for the reply ("… is replying" spinner in the body title, up to 5 min); - otherwise: every 1 s, backing off to 15 s when nothing changes or on errors. The visible feed is re-read from local SQLite every 100 ms (no network).

Edit this page on GitHub