Offline wrapper for Gogh themes, built as a single gogh binary.
- Works fully offline (no runtime downloads/web calls)
- Embeds Gogh assets in the binary
apply-colors.shapply-alacritty.pyapply-terminator.pyinstalls/*.shdata/themes.json
- Extracts assets idempotently to cache:
$XDG_CACHE_HOME/gogh(preferred)~/.cache/gogh(fallback)
- Keeps existing env compatibility (
TERMINAL,GOGH_NONINTERACTIVE,GOGH_USE_NEW_THEME, etc.)
cmd/gogh/main.go— CLI entrypoint (--list,apply,tui, interactive)internal/assets— embedded assets + extraction + theme cataloginternal/apply— shared theme apply flow used by CLI and TUIinternal/tui— Bubble Tea/Lip Gloss TUI implementationdist/— local build outputMakefile— build/release tasksgo.mod/go.sum— module + dependencies
gogh --version
gogh --list
gogh apply "Dracula"
gogh tui
goghDownload the dist/gogh artifact and run it:
curl -fL -o gogh "https://raw.githubusercontent.com/Gogh-Co/Gogh/main/cli/dist/gogh"
chmod +x gogh
./gogh tui
# or
./gogh apply "Dracula"Run without build and without keeping the binary (temporary file):
curl -fL -o /tmp/gogh "https://raw.githubusercontent.com/Gogh-Co/Gogh/main/cli/dist/gogh" && \
chmod +x /tmp/gogh && \
/tmp/gogh apply "Dracula"Features:
- Responsive multi-column theme grid
- Live search filtering
- Arrow navigation (also
hjkl) Enterinstalls selected theme- Install screen with spinner + live logs (scrollable viewport)
- Success/error result screen and return to browser
Keys:
↑↓←→/hjklmoveEnterinstall selected theme/focus searchEscclear search / backPgUp/PgDnpage moveHome/Endjump start/endbback from resultqquit
From repo root:
make buildBuild with explicit version:
make build VERSION=0.2.0Cross-build Linux/macOS:
make release VERSION=0.2.0# version
./dist/gogh --version
# list (offline)
./dist/gogh --list
# TUI opens
./dist/gogh tui
# apply from CLI
TERMINAL=gnome-terminal ./dist/gogh apply "Dracula"
# non-interactive apply
GOGH_NONINTERACTIVE=1 TERMINAL=gnome-terminal ./dist/gogh apply "Dracula"Manual TUI checks:
- Filter updates as you type
- Grid navigation works across terminal resizes
- Install runs and logs stream in the install panel
