clog
A highly customizable structured logger for command-line tools with a zerolog-inspired fluent API, terminal-aware colours, hyperlinks, and animations.

Features
- Structured fields - typed field methods (
Str,Int,Bool,Duration,JSON, …) with a fluent builder API - Animations - spinners, progress bars, pulse, and shimmer effects with concurrent groups
- Hyperlinks - clickable file paths and URLs via OSC 8, with IDE presets for VS Code, Cursor, Sublime, and more
- JSON highlighting - syntax-highlighted JSON output with configurable rendering modes
- Styling - full visual customisation via lipgloss, including per-key, per-value, and per-type colours
log/slogintegration - drop-inslog.Handlerbacked by clogNO_COLOR- respects theNO_COLORconvention out of the box
Installation
go get github.com/gechr/clog
Quick Start
package main
import (
"fmt"
"github.com/gechr/clog"
)
func main() {
clog.Info().Str("port", "8080").Msg("Server started")
clog.Warn().Str("path", "/old").Msg("Deprecated endpoint")
err := fmt.Errorf("connection refused")
clog.Error().Err(err).Msg("Connection failed")
}
Output:
INF ℹ️ Server started port=8080
WRN ⚠️ Deprecated endpoint path=/old
ERR ❌ Connection failed error=connection refused