Nice go libraries

I enjoy libraries that makes my software development both easier and more fun. It's also important to me that they are minimal and easy to plug in, rather than the big framework type libraries that I have to shape my entire app around. I thought I'd post a collection of them here, so I remember to use them in the future.

LibraryDescription
go-git/go-billyFilesystem abstraction layer for Go. Provides a clean interface for working with different filesystem backends (in-memory, OS, etc.) without changing application code.
bitfield/scriptShell-like scripting in Go. Lets you write the kind of quick file and text manipulation pipelines you'd normally reach for Bash for, but with Go's type safety.
expr-lang/exprA Go expression language and evaluator. Useful for building configurable business logic, rule engines, and dynamic filtering without embedding a full scripting language.
skratchdot/open-golangOpens URLs, files, and directories with the OS default application. A tiny cross-platform utility for launching things the way a user would double-click them.
charmbracelet/bubbleteaA functional framework for building terminal UIs in Go, based on The Elm Architecture. The core of the Charmbracelet TUI ecosystem.
charmbracelet/lipglossStyle definitions for terminal layouts. Provides CSS-like composable styling for building beautiful CLI output.
charmbracelet/glamourMarkdown rendering for the terminal. Turns Markdown into stylized, ANSI-colored terminal output.
charmbracelet/bubblesA collection of reusable TUI components (spinners, text inputs, lists, tables, etc.) for use with Bubbletea.
charmbracelet/glowA terminal-based Markdown reader. Browse and read Markdown files with rendered formatting right in the CLI.
charmbracelet/vhsWrite terminal GIFs as code. Define a script of terminal interactions and VHS renders them into clean demo recordings.
charmbracelet/gumA tool for writing glamorous shell scripts. Provides interactive prompts, spinners, confirmations, and other UI elements you can call from Bash.
charmbracelet/modsAI on the command line. Pipe terminal output and files to LLMs and get formatted responses, built on top of the Charm stack.
charmbracelet/wishAn SSH server framework for building Bubbletea apps accessible over SSH. Lets you serve TUI applications to remote users.
charmbracelet/freezeGenerate images of code and terminal output. Takes terminal text and produces clean PNG/SVG screenshots.
charmbracelet/wishlistAn SSH directory that lists and connects to multiple Wish-powered SSH apps. Acts as a menu for your SSH-served TUI applications.
dominikbraun/graphA generic graph library for Go. Supports directed/undirected graphs, weighted edges, traversals, shortest paths, and cycle detection — useful for procedural generation and structural modeling.
tidwall/gjsonFast, surgical JSON reads in Go using a path syntax. Lets you pull values out of JSON without unmarshaling into structs.
tidwall/sjsonThe write counterpart to gjson. Set or delete values in JSON strings by path without full unmarshaling.
tidwall/pinholeA 3D wireframe drawing library for Go. Renders simple 3D scenes to PNG images using a pinhole camera model — no OpenGL required.
pocketbase/pocketbaseA lightweight, embeddable backend in a single Go binary. Bundles SQLite, auth, file storage, a REST API, and a real-time subscriptions layer — great for side projects and internal tools.
FiloSottile/ageA simple, modern encryption tool and Go library. Designed as a replacement for GPG with small explicit keys, no config options, and UNIX-style composability.
faiface/beepAudio playback and processing built around a composable Streamer interface. Decode MP3/WAV/OGG/FLAC, mix, resample, loop, and play through speakers. The io.Reader of sound.
Evertras/bubble-tableA nice-looking interactive table component for charmbracelet/bubbletea.