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.

  • go-git/go-billy — Filesystem abstraction layer for Go. Provides a clean interface for working with different filesystem backends (in-memory, OS, etc.) without changing application code.
  • bitfield/script — Shell-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/expr — A Go expression language and evaluator. Useful for building configurable business logic, rule engines, and dynamic filtering without embedding a full scripting language.
  • skratchdot/open-golang — Opens 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/bubbletea — A functional framework for building terminal UIs in Go, based on The Elm Architecture. The core of the Charmbracelet TUI ecosystem.
  • charmbracelet/lipgloss — Style definitions for terminal layouts. Provides CSS-like composable styling for building beautiful CLI output.
  • charmbracelet/glamour — Markdown rendering for the terminal. Turns Markdown into stylized, ANSI-colored terminal output.
  • charmbracelet/bubbles — A collection of reusable TUI components (spinners, text inputs, lists, tables, etc.) for use with Bubbletea.
  • charmbracelet/glow — A terminal-based Markdown reader. Browse and read Markdown files with rendered formatting right in the CLI.
  • charmbracelet/vhs — Write terminal GIFs as code. Define a script of terminal interactions and VHS renders them into clean demo recordings.
  • charmbracelet/gum — A tool for writing glamorous shell scripts. Provides interactive prompts, spinners, confirmations, and other UI elements you can call from Bash.
  • charmbracelet/mods — AI on the command line. Pipe terminal output and files to LLMs and get formatted responses, built on top of the Charm stack.
  • charmbracelet/wish — An SSH server framework for building Bubbletea apps accessible over SSH. Lets you serve TUI applications to remote users.
  • charmbracelet/freeze — Generate images of code and terminal output. Takes terminal text and produces clean PNG/SVG screenshots.
  • charmbracelet/wishlist — An SSH directory that lists and connects to multiple Wish-powered SSH apps. Acts as a menu for your SSH-served TUI applications.
  • dominikbraun/graph — A 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/gjson — Fast, surgical JSON reads in Go using a path syntax. Lets you pull values out of JSON without unmarshaling into structs.
  • tidwall/sjson — The write counterpart to gjson. Set or delete values in JSON strings by path without full unmarshaling.
  • tidwall/pinhole — A 3D wireframe drawing library for Go. Renders simple 3D scenes to PNG images using a pinhole camera model — no OpenGL required.
  • pocketbase/pocketbase — A 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/age — A 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/beep — Audio 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.