tint
termenv
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tint
- Slogor: The colorful slog handler is now stable with version 1.1.2!
-
Slog: Zero-dependency structured logging in Go
A guide covering how to write custom handlers is out of scope for this post, but you can find one such guide written by the author of slog here. Thankfully, you don’t need to write a handler from scratch to use one. There are several community-contributed handlers, including handlers that allow you to output colored logs, and a handler that lets you implement sampling. You can find a full list here.
- slog module, colorize output based on level
- [Golang] tint: 🌈 slog.Handler that writes tinted logs
- tint: 🌈 slog.Handler that writes tinted logs
termenv
-
go playground code doesn't work locally?
For example: https://github.com/muesli/termenv // Clear the visible portion of the terminal output := termenv.NewOutput(os.Stdout) output.ClearScreen()
-
tint: 🌈 slog.Handler that writes tinted logs
Why not let termenv do the hard part of making this portable across terminals? It also supports lesser-known conventions like NO_COLOR.
-
Tran - 🖥 Securely transfer and send anything between computers with TUI.
Termenv
- Show HN: Lip Gloss a CSS-like layout library for the terminal for Go
-
Tz: A Time Zone Helper
Look, you and I may have sane ANSI 16 colours, but it’ll be a very significant fraction of people that don’t (and almost no one will customise the next 240 colours). Remember things like that there’s a fairly high chance that blue is almost invisible against black, and even bright blue’s contrast is commonly much too low—to say nothing of the limited palette range.
But what this program is doing is using termenv’s HasDarkBackground function to decide whether the terminal is light or dark, and is then specifying RGB colours. I’d guess that it’ll try to guess whether to use 16 colours, 256 colours or 24-bit colour, but I don’t know. But the way it figures out the terminal’s background colour… ugh. Some terminals will support it, but for many it’ll fail and just assume black. Looks like on unix you could set an environment variable COLORFGBG to override this, https://github.com/muesli/termenv/blob/6bb55115565c27f4cc681..., but if you’re on Windows, tough luck, apparently you’re not allowed to have run `color f0` (Command Prompt) or similar: https://github.com/muesli/termenv/blob/537e36cb0472a69a3c828....
The simple fact of the matter is that there are no particularly good solutions for handling colour in terminals if you want the colours to cohere and map to real-world colour understanding, which is what something like this would prefer to be able to do.
What are some alternatives?
slogmw - Middleware for the go standard library log/slog package
pterm - ✨ #PTerm is a modern Go module to easily beautify console output. Featuring charts, progressbars, tables, trees, text input, select menus and much more 🚀 It's completely configurable and 100% cross-platform compatible.
zax - Zap logger with context
tcell - Tcell is an alternate terminal package, similar in some ways to termbox, but better in others.
slog-sampling - 🚨 slog sampling: drop repetitive log records
termbox-go - Pure Go termbox implementation
kemba - A tiny debug logging tool. Ideal for CLI tools and command applications. Inspired by https://github.com/visionmedia/debug
termdash - Terminal based dashboard.
glo - Logging library for Golang
go-isatty
logrus - Structured, pluggable logging for Go.
mpb - multi progress bar for Go cli applications